El sistema de domótica de mi casa (el controlador o cerebro)

Llevo implicado en la domótica más de 20 años, instalando probando, configurando e integrando diferentes tecnologías. A lo largo de estos años he ido montando un sistema de domótica bastante completo y complejo, utilizando varias tecnologías. Hoy os lo voy a presentar a vista de pájaro, para que os hagáis una idea, entrando en profundidad en otros artículos dedicados a cada sub-sistema.

A grandes rasgos, mi sistema domótico, incluye los siguientes elementos principales (seguro que se me olvidan alguno, porque son muchos):

Como software principal de control de la casa utilizo el software HomeSeer en un pequeño PC dedicado de bajo consumo, sin ventiladores. Este software (realmente completo) se encarga de las principales automatizaciones, programaciones horarias, escenas, síntesis de voz, etc. Es también el encargado de las comunicaciones con los dispositivos ZWave instalados en la casa (interruptores, reguladores de luz, sensores de las puertas interiores, sensores de temperatura, humedad e iluminación, etc, etc).

Node-RED es un software de IBM de lo más útil y lo utilizo principalmente para integrar diferentes tecnologías, a modo de middleware. Podríamos decir que es el «concentrado de comunicaciones» de los diferentes sistemas de la casa. Es como un traductor de protocolos y además se encarga del almacenamiento de la información en bases de datos para posteriormente, por ejemplo, crear gráficas con esos datos. Por ejemplo, cuando HomeSeer detecta que ha saltado la alarma, aparte de realizar diferentes acciones sobre dispositivos que tienen que ver con la seguridad y de las notificaciones mediante síntesis de voz (dependiendo del tipo de alarma de la que se trate, la hora a la que ha saltado, las personas que estemos en casa en ese momento, etc) da la orden a Node-RED para que nos envíe un mensaje por Telegram con todos los detalles de lo que ha sucedido.

Node-RED se encarga también de recibir los datos mediante radio frecuencia de algunos de los sensores instalados en la casa, mediante un receptor especial conectado a uno de sus puertos usb, y comunicar estos datos a HomeSeer o enviarlos mediante MQTT. Muchos sensores, como los de consumo eléctrico y gas, temperaturas, sniffers bluetooth, etc. envían sus datos a Node-RED para que los procese y envíe la información donde proceda (HomeSeer, bases de datos, otros dispositivos, etc).

Una ventaja muy importante de Nodered es que necesita muy pocos recursos para funcionar. Lo tengo instalado en un Raspberry PI 3, que comparte con el servidor MQTT, y algunos servicios más, y tiene potencia de sobra.

Mosquitto es el servidor MQTT de la casa y está instalado en una Raspberry PI 3, que comparte con Node-RED. Recibe las mensajes MQTT de todos los dispositivos de la casa y los reenvía a los que se suscriben a ellos.

Hay poco más que decir sobre él. Hace su importante trabajo en silencio y no da problemas ni pide de comer.

Es la base de datos principal, donde se almacenan los datos a largo plazo de todos los sensores y sistemas. Está instalada en una Raspberry PI 2 y funciona estupendamente.

WeeWX es el software de la estación meteorológica (una Davis Vantage Pro 2 conectada a uno de los puertos usb de la Raspberry PI 2 en la que está instalado) y se encarga del almacenamiento de los datos meteorológicos, su proceso y consolidación, y su envío al servidor web (un VPS hospedado en la compañía Strato) donde reside la web meteorológica de la estación. Con la ayuda del paquete Meteotemplate crea las bonitas páginas que podéis ver en la sección Meteo de esta web.

Pinchar imagen para ver grande

Grafana es el programa que se encarga de crear los gráficos y paneles de datos del sistema domótico. Está instalado en un contenedor Docker en uno de los NAS (un Synology).

Es el complemento perfecto para la visualización de los datos almacenados en la base de datos InfluxDB de todos los sensores y sistemas.

OpenTherm gateway (OTGW)

OpenTherm gateway (OTGW) es el dispositivo conectado a la caldera de gas que proporciona calefacción y agua caliente a la vivienda. Permite acceder a los datos de la caldera, programación, estado, estadísticas de uso, y realizar acciones como cambiar la temperatura deseada desde el sistema domótico en base a las necesidades, ocupación de la casa, datos meteorológicos, etc. tratando de ahorrar siempre en la factura del gas proporcionando un nivel de confort adecuado a los habitantes de la casa.

Compartiendo el Pc con HomeSeer, hay un software que se comunica con la caldera y envía sus datos mediante MQTT al resto de los sistemas. También es capaz de recibir órdenes, mediante MQTT, para el control de la caldera.OpenSprinkler es un programador y controlador de ocho zonas de riego, controlado por HomeSeer, que se encarga del control del riego de las plantas exteriores, calculando sus necesidades en base a los datos meteorológicos, tratando siempre de ahorrar agua y mantener un nivel óptimo de salud de las plantas. Está 100% automatizado de forma que es capaz incluso de utilizar el pronóstico del tiempo para decidir cancelar el riego si va a llover en las próximas horas y la planta va a aguantar.

Dentro los elementos que conforman la gestión de energía eléctrica de la vivienda, este sistema, parte del proyecto OpenEnergyMonitor, se encarga de leer los datos de consumo eléctrico, directamente en el cuadro eléctrico de los cuatro circuitos principales de la vivienda (Total, aire acondicionado, fuerza cocina, y enchufes de potencia) y comunicárselos a Nodered, que a su vez los manda a la base de datos para su almacenamiento y al resto de sistema para su utilización inteligente (por ejemplo, si el consumo de energía es muy alto, puede apagar el aire acondicionado u otros elementos de la vivienda de alto consumo para evitar que salte el limitador).

Blue Iris: Corriendo en una máquina virtual VMWare del PC principal, este software de video vigilancia recibe las imágenes de todas las cámaras instaladas en la casa, las procesa y almacena, detectando, por ejemplo, movimiento en las imágenes, que comunica a HomeSeer, para realizar determinadas acciones relacionadas con la seguridad integral, combinando los datos con los proporcionados por la alarma y otros sensores.

La alarma de la vivienda es una Visonic Powermax Pro, sistema inalámbrico, autónomo e independiente, que funciona sin depender del resto del sistema de domótica. En el PC de HomeSeer, y compartiéndolo con él, un pequeño software llamado Visonic Driver, se comunica con ella y proporciona datos de su estado, detecciones, alarmas, etc. al resto del sistema enviándolos mediante MQTT. Además el sistema puede armar la alarma, desarmarla, etc. De esta forma podemos además desde los cuadros de control, móviles y tablets (e incluso desde las TV de la casa) acceder a la información, armar y desarmar la alarma, etc.

Resumen

Esta ha sido una pequeña presentación del «cerebro» de la casa. Por supuesto, además de estos elementos inteligentes, hay un ejército de sensores y actuadores proporcionando información y ejecutando órdenes. En otra entrada hablaré de algunos de ellos.

Mi estación meteorológica, puesta en marcha

Tengo una estación meteorológica Davis Vantage Pro2 desde hace bastantes años (por lo menos 10) y la verdad es que la tengo bastante abandonada; es una verdadera pena porque es una buena estación pero le he sacado muy poco partido. Desde hace varios años dejaba de funcionar por la noche, por un problema con su alimentador solar, que acabo de arreglar hace pocos días, y estaba aislada del mundo (sin conexión con mi sistema de domotica y sin publicar datos en internet).

Recientemente he decidido volverle a dar uso, aportando los datos que genera a la comunidad (publicarlos en sitios como weather underground y meteoclimatic) y publicarlos en mi web. He solucionado el problema por el que no funcionaba por la noche (reemplazando un supercondensador) y dándole un limpiadito.

Hace años utilizaba un software para Windows que corría permanentemente en un PC, conectado a la consola por un puerto serie, y que guardaba los datos y generaba una serie de páginas web que subía, cada pocos minutos, a un servidor externo para que se vieran en internet.

En esta nueva reencarnación de la estación meteorológica, aunque sigo teniendo varios PCs en casa funcionando 24×7, he decidido utilizar uno de los modernos programas existentes que corren en una Rasperry PI. Esto me permite independizar el sistema completamente y asegura que los datos se almacenen y suban a internet de forma permanente y sin ninguna interrupción.

La primera tarea ha sido buscar el software, y tras mucho leer sobre los distintos programas y ver otras estaciones que los usaban, me he decidido por WeeWx. Este programa, escrito en Phyton ,tiene una serie de ventajas que lo hacen ideal:

  • Es muy ligero y necesita muy pocos recursos del servidor
  • Dispone de un sistema de «skins» que permiten cambiar su aspecto gráfico fácilmente
  • Soporta mi estación meteorológica directamente
  • Sube los datos a los sitios que me interesan (weather underground, meoteoclimatic y, por supuesto, mi servidor web)
  • Tiene implementado un sistema de plugins que permiten su ampliación con nuevas funcionalidades

Dicho y hecho, me he cogido las raspberry más antigua que tenía por casa, ya que necesita muy poca potencia (una Raspberry 1 Modelo de solo 512Mb de memoria), y he preparado una nueva tarjeta SD con la última versión de raspbian. Tras un ratito configurando, ya estaba funcionando y subiendo datos a mi web: www.emariete.com/weewx

Como guinda del pastel he instalado una fantástica plantilla, llamada meteotemplate, y este es el resultado: www.emariete.com/meteo

He quedado muy satisfecho con el resultado. Espero que el funcionamiento sea estable y esté funcionando el máximo de tiempo sin interrupción. Unos añitos sin necesidad de hacerle caso estarían muy bien.