Proyecto completo de domótica para vivienda de 3 plantas y jardín

Hola, soy nuevo en este foro.
Me estoy construyendo mi futura casa y tengo la idea, ahora que estoy a tiempo, de domotizarla.
He comprobado que la oferta en el mercado de la domótica se sale de mis posibilidades por lo que he pensado en hacerlo yo mismo.
Mi idea es domotizar una vivienda de 3 plantas y jardín exterior.
Sistema centralizado en planta sótano controlado por pc, pero conectado por ip y wifi para poder ser gobernado mediante tablet en casa y mediante smartphone en la calle. (software arduino y cayenne por ejemplo)
Se pretende controlar:
Todas las persianas (subida, bajada, lluvia y sol)
Aire acondicionado en cada habitación
Alarma y vídeo (cámaras ippoe, software safe4cam)
Luces externas e interiores
Riego
Piscina
Música?
Videoportero?
Ampliable a todo lo que se me ocurra en un futuro.
Los dos problemas que veo en la instalación que pretendo hacer son la cantidad de cableado y la distancia de cableado.
Si suponemos que tengo un arduino ¿mega? conectado en el sótano a un pc y tengo que llevar hasta alli todos los cables de todas las entradas y salidas de las plantas baja, alta y sótano; aunque utilice un negativo común para todos, estamos hablando de una cantidad de cable considerable para reunir en un mismo punto. Por eso mi idea es diversificar la instalación y esto solo se puede hacer mediante un sistema enseriado (bus) en el cual cada punto tenga un código propio para reconocerlo (Creo que es el que utilizan muchas instalaciones domóticas) o establecer un sistema de nodos por lo que en cada planta habría un nodo, llamémosle esclavo (arduino o lo que sea) al cual irían todas las señales de entrada y salida de dicha planta (en estrella o serie-estrella) y estos comunicarían con un nodo, llamémosle servidor, que estaría en el sótano y que sería el núcleo del sistema. Este último comunicaría con el exterior por LAN Y WAN, mediante red y wifi.
He visto en internet sistemas domóticos comerciales y, por lo visto, un sólo aparato de estos sistemas costaría tanto como un sistema arduino completo.
Por otro lado, he ojeado un poco y, por lo visto, arduino se puede implementar mediante buses (SPI, CAN).
¿Qué opináis? ¿Conocéis alguna instalación similar en la que me pueda basar?. He visto cosas sueltas (control de luces, persianas, aire), pero nada semejante a lo que quiero.
Si me echáis una mano y logro hacer la instalación, mi idea es colgarla en el foro para que así, la gente que quiera hacer un proyecto similar no parta de cero sino que tenga ya gran parte del trabajo hecho.
Aceptaría todas vuestras sugerencias.
Gracias de antemano y saludos.

Los dos problemas que veo en la instalación que pretendo hacer son la cantidad de cableado y la distancia de cableado.

Yo jamás haría algo hoy cableado, en su lugar usaría WIFI con los ESP8266, radios como los nRF24L01, XBEE, etc.
Puedes usar toda la cantidad de nodos que quieras y solo vincularlos a travez de la red.

Hola surbyte. Agradezco tu respuesta pero no estoy de acuerdo.
Acepto la comunicación wifi por plantas pero no entre ellas. Habría que poner repetidores y esto incrementa el coste. Estamos hablando de una casa que se está construyendo. El poner ahora mismo una preinstalación para cableado no representa un alto coste y respecto a la RF, tengo muy mala experiencia (cortes de comunicación, interferencias, altibajos en la señal, etc.).
Mi duda es si utilizar un bus rs485 o un CAN, I2c, o lo que haya por descubrir.
Lo que si tengo claro es que no voy a llevar todos los cables de todas las salidas y entradas de todas las plantas a una central, asi que me tengo que inventar un sistema de nodos. Lo que pasa es que, aunque sabía de arduino, hasta ahora no me lo había tomado en serio y no tengo ni pajolera idea. Es decir, tengo que empezar desde cero y el proyecto no es simple.
Por eso quería saber si alguien ha hecho ya algo parecido para poder saltarme unos cuantos pasos.
Gracias de nuevo y saludos.

Por plantas? vas a poner cuantos sensores en cada planta? me parece algo excesivo, pero de todos modos estoy de acuerdo con tu comentario del cableado vs WIFI, yo imaginaba otra cosa.

3 plantas separadas. pero da igual.

Mi duda es si utilizar un bus rs485 o un CAN, I2c, o lo que haya por descubrir.

I2C olvidalo.. no da la distancias a menos que sean próximas al arduino.
CAN como gustes... resulta que me dices que WIFI es caro y acaso CAN no requiere interface x cada dispositivo... al final lo que le pongas a cada planta es mas caro que poner un ESP8266-07 o un nodemcu. Mira los costos.

MAX485 es lo mismo.

Cualquier cosa hoy que involucre ALGO mas Arduino vs ESP8266 esta muy próximo en costos e incluso prefiero el ESP por la flexibilidad de ubicarlo en cualquier lugar.

Pero esa es mi visión.

No impongo mi punto de vista, solo destaco el punto de vista del costo y de la flexibilidad.
Precios Aliexpress
NANO 3 USD
MAX485 10 modulos x 5.93 USD
CAN 1.62
ESP8266-05 10 unidades a 25.58 o 2.6 x unidad
ESP8266-12 o nodemcu 2.62

Asi que un Nodemcu es mas barato que un NANO y falta la interfaz

Hola de nuevo.
Creo que nuestros puntos de vista al fin y al cabo son muy aproximados, con la diferencia de que tu debes ser un experto en Arduino y yo no tengo ni puñetera idea.
Pero como de redes y buses si entendemos, ceo que la mejor opción es, efectivamente, comunicar las plantas por WIFI ya que necesito también tener comunicados portátiles y tablets. El BUS desde la planta alta al sotano aún no lo sé. Pero no es tanto por el tema de costes, como por la programación. No sé cual resultará más compleja; si programar un Bus o una red. Si lo hago como red, efectivamente, podría ser también WIFI, usando repetidores. Pero tendría que estar muy seguro de que eso funciona bien sin cableado entre plantas, aparte de saber como gestionar todo el sistema. (Hablamos de entes individuales gobernando con sus propios programas diferentes señales de entradas y salidas, pero estando de acuerdo entre si y gestionados a su vez desde un único programa que lo controle todo desde interfaces diferentes).
Al final he comprado un Nodemcu Esp12-E. Iba a comprar dos para establecer una red, pero no había mas que uno.
Ya he logrado comunicación entre la placa y el smartphone.
Intentaré consolidar la red y después me pondré con los detalles de entradas y salidas
Gracias por tus consejos y saludos.

Ahora te dire como seguir. Te daré unas librerías para que estudies/ensayes y verás que fácil es todo.

Pubsubclient library permite a un Arduino/ESP8266 comunicarse con un Broker MQTT usando telegramas.
Arduino Client for MQTT

Este es el hardware compatible. Yo te indiqué el más cómodo que es el ESP pero mira todos los que puedes usar

  • Arduino Ethernet
  • Arduino Ethernet Shield
  • Arduino YUN – use the included YunClient in place of EthernetClient, and be sure to do a Bridge.begin() first
  • Arduino WiFi Shield - si quieres enviar paquetes mayores a 90 bytes debes hacer cambios en MQTT_MAX_TRANSFER_SIZE del header PubSubClient.h.
  • Sparkfun WiFly Shield – when used with this library
  • Intel Galileo/Edison
  • ESP8266

O sea que el panorama esta abierto, y esto es importante porque me encanta el ESP8266 pero solo tiene un AD y a menos que uses el ESP32 que ya tiene varios, tendras que volver a un Arduino con algun shield y es bueno saberlo.

Acá tienes una buena guía MQTT Tutorial for Raspberry Pi, Arduino, and ESP8266

y este un ejemplo con leds Multiple MQTT Topics with Arduino PubSubClient, pero si buscas Google Arduino pubsubclient encontrarás muchas mas.
Este es un ejemplo con un NANO y un ESP01 MQTT USING ARDUINO NANO AND ESP8266-WifiEsp and PubSubClient library

Lee la guia y cuando lo hagas debatimos sobre algunos conceptos involucrados.

¿Broker MQTT?. Son las enesimas siglas que leo y no sé de que hablan.
LLevo unos 5 ó 6 años fuera de esto y me doy cuenta de que hoy día eso es mucho, demasiado.
Cuando dejé las instalaciones, apenas se empezaba a escuchar hablar de MySQL y otras tecnologías.
Voy a ver lo que me dices y ya te diré.
Muchisimas gracias por tu interés, surbyte y saludos.

Yo te recomendaria que, hagas lo que hagas, cableate la casa con cable de red y dejate un macarron o dos mas por si acaso un futuro quieres ampliar, yo asi lo hice en la mia.

El cable de red te dara seguridad en comunicaciones, rapidez y versatilidad al poner cualquier tipo de dispositivo futuro se llame como se llame y solo tendras que modificar el protocolo de comunicacion con dichos aparatos, eso si, todo gestionado por un PC, obviamente, el resto de las cosas, esclavos autonomos preprogramados para cada planta y funcion a realizar.

En caso de caida de algun aparato o PC , todo sigue funcionando autonomamente y sin perjuicio a lo demas.

Hola Kastcool.
Te cuento que estoy haciendo el mismo proyecto para mi casa.
Mi casa la construí hace unos 4 años y dejé todo previsto para cablear sensores y algunas cosas más.

Mi casa la dividí en zonas. Unas zonas (cocina, comedor y pasillo) las maneja un Maestro y otras zonas (habitación 1, habitación 2 y living) las maneja un Esclavo.
Ambos tienen salidas para encender/apagar las luces en función de los pulsadores de cada zona.
El Maestro tiene conectados todos los sensores infrarrojos de todas las zonas y cuando se activa un sensor de una zona correspondiente al Esclavo, le avisa por RS232.
También tiene un LDR para detectar cuando es de noche así la luz de la cocina y living se encienden automáticamente cuando alguien ingresa.

El Esclavo tiene un teclado con un display para ingresar un código que permite activar/desactivar la alarma. Cuando se ingresa el código, el Esclavo le avisa al Maestro y este decide e informa que hay que hacer.
Ambos tienen conectada una sirena para encenderla en caso que se dispare la alarma.
Cuando la alarma está activada no se pueden encender luces y las luces que estaban encendidas, se apagan.
Todos los estados de la alarma los maneja el Maestro y le va diciendo al Esclavo lo que tiene que hacer.

El proyecto lo arranqué con PIC16F876A. Después al Maestro lo cambié por un Arduino UNO. Como la comunicación con el Esclavo es por RS232, que seguía siendo un PIC, no tuve problemas.
Hoy en día voy a reemplazar todo por un MEGA, y un NANO para leer el teclado y manejar el display. Como el teclado y display están muy lejos del tablero principal donde está el MEGA, no puedo hacer que el MEGA también se encargue del teclado y display.

Lo último que hice, fue agregarle al MEGA una Shield con una SIM para manejar todo desde una App vía SMS.
Para controlar la bomba de la pileta, uso otro NANO que también se conecta por RS232 al MEGA.

No me gusta el WiFi, por eso como tuve la oportunidad de dejar todo previsto para cablear lo hice. Quizás en algunos casos no se pueda y no quede otra que usar WiFi.

Se aceptan consultas y sugerencias.
Suerte.

No te gusta WIFI porque?

NO tengo nada contra los cables cuando como tu tienes la VISIION de poner mangueras electricas para pasar las conexiones.
La forma en que lo estas encarando es algo anticuada pero esta bien por supuesto.
Lo mas acorde con tu enfoque sería usar MAX485 y entonces te recomiendo el Proyecto SOULISS que esta muy bien aceitado en ese y otras formas de conexionado.
Cuando yo llegué a este foro SOULISS ya era algo maduro y desde hace mucho es una opción domótica sin fisuras

Pero via WIFI tienes muchas otras alternativas. Citarlas en interminable.
A mi me gusta Blynk.cc, me gusta NetIO, me gusta Node-RED, me gusta todo lo que corre bajo Raspberry como Home Security System tales como Domoticz o Open HUB 2.0 y hay al menos 10 opciones mas.

Tomate el tiempo para verlos y te darás cuenta que hay mucho de donde elegir.

Hola surbyte. te mandé un mensaje pero no se si te ha llegado.
En cualquier caso lo pongo aquí.
A ver, he estado leyendo un poco y creo que ya se lo que tengo que hacer: Tengo que tener claro que quiero hacer y como voy a realizar la implementacion fisica. Es decir que quiero controlar y con qué lo voy a controlar. Saber como instalar el hardware necesario para interactuar con el propio de la casa sin problemas; saber con seguridad donde voy a usar cable y donde voy a usar wifi o bluetooh o cualquier otro sistema; que arduinos voy a utilizar, donde instalarlos, que controla cada uno y como lo controla, como se comunicaran entre si y como configurarlo todo para manejarlo desde la casa o desde una tablet o un smartphone con un único programa que lo controle todo como si fuera una sola cosa, buscando además la mayor independencia posible de programas de servicios de terceros, para lo que necesitaré instalar, como mínimo, el sotfware Node Red, Mosquitto, MQTT y, por supuesto el IDE de Arduino. Aprender a manejar todo el software y asi, realizar la configuración definitíva. Está chupao. jajajaja
En serio. El problema es que todo lo que veo en la red está hecho sobre todo por programadores y siempre se dan las cosas por sentadas con una base firme. No he encontrado nada para dummies. Lo más parecido y que probablemente sea lo que haga es el proyecto domuino.
Tenía desde un principio claro hacer una preinstalación paralela a la de red eléctrica en toda la casa. Eso me da la oportunidad de tomarme el tema con sosiego pues me doy cuanta de que es un embolado.
Si, por lo menos encontrara una instalación mínima explicada en detalle con dos arduinos comunicados como un sola instancia con la red, en la que basarme, pero no he encontrado nada.
Sigo con el tema, por supuesto, pero no puedo aportar nada, solo preguntas.
Gracias y saludos.

Yo también soy nuevo en el foro, pero tengo la idea de hacer un sistema muy parecido. Mi casa tiene 3 plantas más el garage y estoy intentando valorar pros y contras de cada opción.

Por el momento tengo una premisa incondicional; el sistema tiene que ser lo más autosuficiente posible. Me explico no puede ser que por fallo en el servidor o pc ( en mi caso una orange pi), el sistema deje de funcionar. Por tanto cada planta es autónoma. En cada planta utilizaré un ESP12E comunicando con el servidor por wifi y con I2C con unidades de entrada/salida, un display lcd, sensores, etc. Si es necesario podría conectar con cableado (todavía no resuelto quizas SPI) con un arduino para tener entradas analógicas adicionales aunque normalmente no son necesarias.

La comunicación con el servidor es mediante el protocolo mqtt. Cada vez que se produce un cambio en la planta, el modulo ESP lo transmite al servidor, pero si se corta la comunicación la planta sigue funcionando.

Se puede mediante un movil o tablet conectar con el servidor tanto en local como por internet para enviar comandos mqtt o recibir medidas de sensores, aunque estoy haciendo una aplicación html para conectarme (es universal). Los datos recibidos en el servidor se almacenan en una base de datos sql.

Utilizaré tambien mandos IR para mandar ordenes a los módulos.

He estado viendo los programas tipo open hab, domoticz o home assistant, pero creo que no cumplen mis premisas, además están pensados para poder conectar los dispositivos domóticos que ya existen comercialmente.

Según vaya progresando iré poniendo los resultados. Entre todos haremos siempre algo mejor.

Saludos