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.

¿Qué cómo afronto la creación de un nuevo circuito?

Cuando me planteo un nuevo cacharreo, puede ser por varios motivos:

  1. Solo por hacerlo, ver que funciona y aprender por el camino
  2. Para ver qué resultado da y si es bueno pasarlo a «producción» e instalarlo definitivamente en mi casa
  3. Para su instalación en mi casa si o si (siempre y cuando funcione)

Está claro que cuando solamente quiero cacharrear, lo hago de cualquier manera «al aire», sobre una breadboard o una perfboard.

En muchos casos el proceso es el siguiente:

  • Hago las pruebas de la manera más rápida posible con los sensores que quiero poner, de uno en uno, y veo si todo funciona bien
  • Me planteo que sensores voy a combinar en base a lo bien que me venga combinar esos sensores concretos (por idoneidad del emplazamiento, pines disponibles, caja, etc)
  • Pienso en que caja le voy a poner para que tenga un acabado «más o menos» profesional y que no sean un enjambre de cables colgando por la casa

Aunque parezca mentira, de los puntos anteriores, el que más quebraderos de cabeza suele darme es la caja. Además la caja, en muchos montajes, suele ser una parte «activa» del montaje ya que la aprovecho para el cableado del circuito.
Me gusta que las cosas que se quedan «fijas en la casa» tengan una buena terminación, y soy bastante perfeccionista, por lo que nunca estoy satisfecho con el resultado obtenido.
La realidad es que suelo decir «lo dejo de momento así, que está aceptable, y en cuanto tenga un rato lo mejoro» y… se suele quedar así.

Un ejemplo

El mejor ejemplo que puedo poner en este momento, es el proyecto que estoy terminando y del que ya he publicado algunas entradas en el blog sobre sus partes: un nodo para el dormitorio principal, basado en ESPEASY con un emisor de infrarojos para controlar el aire acondicionado y un sensor de CO2.

Por supuesto, antes de hacer nada con hardware o firmware hay que realizar un poquito de investigación y toma de decisiones preliminares. ¿Qué funcionalidades quiero que tenga el cacharro? ¿Cómo lo voy a alimentar? ¿Qué componentes voy a utilizar para conseguir estas funcionalidades? ¿Voy a diseñar una caja que pueda imprimir en 3D, usar una caja estándar, quizá hay una caja ya diseñada para imprimir en 3D que me pueda valer? Con todas estas decisiones tomadas podemos ya ensuciarnos las manos:

Primero monté el circuito con los diodos emisores de infrarrojos y probé y ajusté el firmware, de forma que funcionara correctamente de forma independiente. Posteriormente, y una vez satisfecho con el funcionamiento del emisor de infrarrojos, hice lo mismo con el sensor de CO2.

La siguiente etapa es juntarlo todo y asegurarme de que tanto el hardware como el firmware está funcionando correctamente, haciendo todas las pruebas que sean necesarias y dejándolo todo funcionando «en sucio».

La parte de pruebas es muy importante. Nada peor que tener un cacharro aparentemente terminado y luego darnos cuenta de que algo no funciona correctamente. No hay que ahorrar tiempo en las pruebas.

El siguiente paso importante fue la caja. Para esto, partí de la caja estándar que suelo utilizar para la mayoría de mis montajes con NodeMCU, y que imprimo en mi impresora 3D,  pero la modifiqué adecuadamente en tamaño y le añadí las aberturas necesarias (dos para los dos LED de infrarrojos que iba a utilizar y otras dos para las dos zonas «activas» del sensor MH-Z19 que iba a montar.

El último paso: ajustar y cablear todo dentro de la caja y volver a hacer todas las pruebas necesarias, antes de instalarlo en su ubicación definitiva.

 

 

Datos de radiactividad de Madrid en tiempo real

Tras tener mi detector Geiger terminado y funcionando, el siguiente paso es, enviar esta información a la red. Se da la circunstancia, además, de que no he sido capaz de encontrar en internet una sola estación de Madrid enviando datos de radiación Beta/Gamma en tiempo real, por lo que puede que esta sea la primera estación de Madrid en enviar este tipo de datos (y me hace ilusión, porque mira que es difícil ser el primero en algo en internet hoy en día :-))

El contador Geiger que he construido dispone de un puerto serie por el que se transmiten cada 15 segundos los datos de radiación detectada. Esto ha facilitado mucho las cosas, ya que lo único que he tenido que hacer es dotarlo de «algo» que los lea y los envíe a mi sistema de domótica y a la red .

Como en otras ocasiones, he recurrido a un NodeMCU con el firmware ESPEASY. En esta ocasión no existía un plugin de ESPEASY para leer la salida serie de mi contador Geiger pero no ha sido muy difícil adaptar otro plugin, ya existente, para que los lea.

El nuevo dispositivo lee la salida serie del contador Geigery la procesa para extraer el dato concreto de Pulsos Por Minuto y envía este dato mediante MQTT a mi broker.

Un nodo en Nore-Red recibe los datos de radiactividad enviados por el dispositivo y los reenvía a Radmon.org. Radmon.org es un sitio donde cientos de voluntarios en todo el mundo envían, en tiempo real, los datos obtenidos por sus detectores para facilitar su visualización, generación de gráficos, etc.

La función «Build Radmon url» es muy sencilla y, simplemente, construye una url, siguiendo las especificaciones del API del Radmon con mi usuario, password y la última medida.

Otro nodo de Node-Red inserta los datos en una base de datos InfluxDB lo que me permite, posteriormente, crear gráficas de estos datos en Grafana.

Detectando radiactividad

Dentro de mi fiebre por medirlo y controlarlo todo, hace tiempo que llevaba pensando en añadir a mi lista de sensores un detector de emisiones Beta y Gamma (lo que solemos llamar radiactividad), un contador Geiger-Muller.

¿Y por qué quiero un contador Geiger? Pues muy sencillo, por sé que más tarde o más temprano ocurrirá un accidente o sufriremos un atentado y nuestros gobiernos nos ocultaran la información (buscar información sobre el accidente que ocurrió en Madrid, en Moncloa, en plena Ciudad Universitaria, y veréis de qué os hablo). Y, aunque no nos la oculten, quiero estar informado de primera mano y saber lo que pasa en nuestro entorno.

Bueno, pues el caso es que recientemente me he animado con su construcción y ya está funcionando.


Estuve bastante tiempo dándole vueltas a la forma de hacerlo. Un contador Geiger realmente es muy sencillo, básicamente consta de un tubo de detección, una fuente de alta tensión (el tubo funciona a unos 450 voltios, aproximadamente) y un circuito que se encarga de contar los inpulsos que se generan en el tubo dependiendo de la cantidad de partículas radiactivas que haya en el ambiente.

Una posibilidad era construir un generador de alta tensión por un lado (bastante fácil, unos cuantos condensadores y diodos) y un contador (un simple Arduino). Faltaría el tubo, del que ahora hablaré, y alguna forma de visualizar los resultados (un display LED, LCD u OLED, una conexión a ordenador o algo parecido).

Buscando información al respecto, me encontré con que no merecía la pena hacerlo partiendo de cero. Encontré un kit en eBay que, por unos 30€, lo proporcionaba prácticamente todo (a falta del tubo).

Me decidí a pedir este kit y en un par de semanas ya lo tenía en casa, procedente de Lituania.

El montaje del kit fue francamente sencillo ya que los aproximadamente 50 componentes SMD que lleva vienen ya soldados a la placa y solamente hay que soldar unos cuantos componentes normales. Incluso un principiante podría hacerlo con un poquito de cuidado.

El tubo de detección:

El corazón del contador Geiger es el tubo de detección. Existen muchos tubos diferentes con diferentes sensibilidades y capaces de detectar diferentes tipos de radiaciones (alfa, beta, gamma, rayos x, etc). Aunque se trata de material de laboratorio, altamente sensible, al contrario de lo que podríamos pensar, su precio no es elevado.

Tenemos a nuestra disposición una gran cantidad de tubos de surplus, procedentes de la antigua Unión Soviética, de la época de la guerra fría, que son fáciles de encontrar en internet y cuyos precios suelen oscilar entre los 15€ y 30€.

En mi caso me decidí por un tubo STS-5, procedente de Ucrania. Por 15€, incluyendo el envío, en poco más de dos semanas tenía en casa mi nuevo tubo.

Por último, y para completar mi nuevo detector Geiger-Muller, y darle un buen acabado, faltaba una caja donde meterlo. Afortunadamente encontré en Thingiverse una caja a medida para el kit que había pedido, de manera que en un par de horas mi impresora 3D había «escupido» una caja más que aparente (a la que le voy a hacer en mi plotter de corte un frontal en vinilo para darle un acabado más profesional).

Queda un último detalle, pero el más importante: conectarlo a la red y capturar los datos que genera, crear gráficas, lanzar alarmas, etc. El kit y su firmware ya incluyen un puerto serie capaz de sacar estos datos, de manera que el próximo paso será completar el detector con un ESP8266 (que quiero meter dentro de la misma caja) y que se encargará, conectado a mi red wifi, de enviar los datos al resto de sistemas de mi casa. Pero esto será objeto de una nueva entrada en el blog… Edito: Puedes encontrar esta nueva entrada aquí

Sabiendo qué respiramos (Sensor de CO2)

El CO2 (Dióxido de Carbono) es un gas peligroso para el ser humano. En concentraciones elevadas puede producir vértigo, dolor de cabeza, presión sanguínea elevada, ritmo cardíaco acelerado, asfixia y pérdida del conocimiento. Conviene tener precaución co él, especialmente en los lugares donde hay muchas plantas ya que lo expelen en su proceso de respiración.

Llevo años con la intención de tener sensores de CO2 en la casa, que permitan disparar alarmas cuando los niveles sean demasiado altos. Hace cosa de un año, instalé una estación meteorológica NetAtmo (que no necesitaba, puesto que tengo una Davis Vantage PRO2) y una de las cosas buenas que tiene es un sensor de CO2 de interior. La verdad es que no se lo preciso que es el sensor de CO2 de la estación NetAtmo pero desde el principio he tenido ganas de comprobarlo.


El módulo interior de la estación NetAtmo está instalado en el salón (proporcionando datos de temperatura, humedad, luminosidad, presión sonora y CO2 del salón) pero me apetece poder medir el CO2 en más sitios y, especialmente, realizar mediciones puntuales para saber si estamos «en peligro», por ejemplo medir los niveles de CO2 en diferentes dormitorios mientras dormimos.

Hasta hace relativamente poco tiempo, los sensores de CO2 eran muy caros y necesitaban una calibración que normalmente no estaba al alcance de los aficionados. Esto ha cambiado bastante en los últimos meses con la aparición de algunos sensores económicos de fácil uso y que vienen ya precalibrados de fábrica.

Recientemente me puse a buscar información acerca del «estado del arte» de estas cosas, para ver si era, por fin, el momento de afrontar el tema de los sensores, y me encontré con varios sensores bastante interesantes. Entre los que me encontré había uno que me llamó la atención sobre los demás, el MH-Z19.

Su puesta en marcha ha sido muy sencilla, gracias al trabajo hecho en ESPEASY. Simplemente: cargar el plugin adecuado desde el playground de ESPEASY, conectar dos pines más la alimentación y a funcionar:

 

ESP8266-Pro (O a veces, en Aliexpress, lo barato sale caro)

htb1l6k2nxxxxxx-xpxxq6xxfxxx1Hace unas semanas en uno de mis habituales «paseos» por Aliexpress me encontré con una placa ESP8266 que, en principio, parecía muy interesante; un verdadero chollo.

Se trataba de la placa ESP8266-Pro con 8 MB (si, mega bytes) de RAM.

Parecía una placa prácticamente igual que la NodeMCU sin USB, con el doble de memoria y bastante más barata.
La realidad es que, aunque la placa tiene muy buena pinta no existe absolutamente ninguna información y el vendedor, cuando le preguntas simplemente te dice que no tiene nada de información (con todo su morro). Muchos clientes se han quejado en las opiniones de Aliexpress pero siguen dejando 5 o 4 estrellas (incomprensible).

Tratando de utilizarla como las placas habituales no hay manera… pruebas y pruebas y no se puede… vamos, una placa que no vale para nada. No es que sea mucho dinero (pedí dos placar y el envío por Aliexpress Stantard Shipping, unos 8€ en total) pero, ¡joder! me siento engañado…

El caso es que me puse a investigar con el multímetro en una mano y el datasheet del ESP8266EX en la otra y he encontrado por qué no funciona y como solucionarlo…

Lo que sucede con esta placa es que engaña… uno se espera que sea algo como el NodeMCU y es, más bien, algo como un módulo ESP12E más un regulador de voltaje de 3.3V, nada más (bueno, si 8 MB de memoria en vez de 4).

Total, ¿por qué no funciona y que hay que hacer para que funcione?

1312726806898Bueno pues lo primero es que el ESP8266EX tiene un pin CH_EN (o chip_enable) que hace que el ESP8266EX funcione. Este pin hay que ponerlo a 3.3V (preferiblemente a través de una resistencia de unos 10K) para que el chip empiece a funcionar; hasta ese momento el chip está muerto.

1312726794469 En mi caso, y puesto que la resistencia tiene que estar siempre puesta y no hay que quitarla para nada, opté por soldarla directamente entre el pin CH_EN (marcado como EN en esta placa) y el punto de 3.3V del regulador. Añado las fotos detalladas por si pueden ayudar.

1312726800979E1312726804014l siguiente problema, y el que más me ha costado localizar, es que el bootloader que incorpora la placa espera en el momento del arranque que el pin 15 tenga un nivel bajo, y hasta que no esté a novel bajo no arranca. De manera que tenemos que poner dicho pin a negativo (preferiblemente a través de una pequeña resistencia, yo he usado una de 74ohm).

En este caso, como no necesito el pin 15 he soldado, igual en en el caso anterior, la resistencia directamente como se puede ver en las fotos detalladas.1312726778772

Por ultimo nos falta el último paso, y es que para ponerlo en modo programaci1312726789726ón (para poder flashearlo) hay que poner el pin IO0 a nivel bajo (es decir, a negativo).

A diferencia del NodeMCU, y placas similares, que entran de forma automática en el modo programación simplemente dando a la opción correspondiente desde el Arduino IDE, esta placa hay que meterla manualmente en el modo de programación, lo que es bastante incomodo.

Para Entrar en el modo de programación, como se hace de forma puntual, simplemente conecto con un cablecillo el IO0 con GND para entrar en el modo de programación. Es un poco incomodo porque hay que ponerlo y quitarlo manualmente cada vez que queremos flashearlo pero bueno…

1312726809399Por cierto… ya que estaba metido en harina, he aprovechado para comprobar ese pulsador misterioso (antes de empezar la investigación, no sabía si era un pulsador de reset o para entrar en el modo de programación) y, efectivamente, he comprobado que está conectado entre el terminal RST y GND para poder hacer reset al ESP8266.

Resumiendo: Tras unas horas de investigación, he conseguido programar el ESP-8266 Pro pero mi conclusión es que no merece la pena comprarlo para ahorrar un euro. Es mucho mejor comprar el NodeMCU, que es mucho más fácil de programar, está perfectamente documentado y no hay que andar haciendo «ñapas» para que funcione correctamente. Otra cosa será ver si se le puede sacar provecho a esos 8 MB de memoria, aunque mucho me temo que, para la mayoría de aplicaciones, tendremos más que de sobar con los 4 MB del NodeMCU.

Edito: Tras unos días, lo he vuelto a coger para un proyecto real y tengo una mala noticia: Puedo programarlo pero, por algún motivo, no se activa el wifi. Seguiré investigando otro día…

¡Mi casa me manda mensajes por Telegram!

Hay ciertas cosas de las que quiero que mi sistema domótico me avise de inmediato (salta la alarma, se detecta humo, la abuela pulsa el botón de la pulsera que lleva en el brazo, etc). Hasta ahora, para enviar mensajes a mi móvil, lo hacía mediante Pushover, y funcionaba bien…

El problema de Pushover es que necesita tener instalado un cliente en el móvil (y ahora si quiero que mi mujer o los niños reciban mensajes se tienen que instalar cada uno un cliente) y este cliente es de pago.

Por suerte, he encontrado un

nodo para Node-red que permite enviar mensajes por Telegram, y la verdad es que funciona muy bien.

Telegram permite la creación de «bots» («robots») que no son más que chats a los que los usuarios se suscriben y que permite enviar y recibir mensajes de forma automatizada.

Con este nodo y unas pocas lineas y funciones en Node-red, en una tarde tenía un sistema de notificaciones interactivo.

¿Interactivo? Si, porque este sistema permite, además de enviar notificaciones, que los usuarios pueden enviar mensajes al bot y este les responda con la información solicitada (o con nuevas preguntas e incluso con menús para seleccionar opciones) de una forma muy sencilla.

Por ejemplo, un usuario envía un mensaje conteniendo /alarma y el bot les contesta con el estado de la alarma (si está activa, inactiva, si ha saltado, etc).

He creado además en Nodered un conector desde MQTT a Telegram, que permite que cualquier aplicación que envíe MQTT pueda enviar mensajes por Telegram de una manera muy sencilla.

Añadiendo control de Milight a Rflink

La verdad es que mi casa parece una feria de la automatización, con tantas cosas y tan distintas. Es la esencia de los que nos gusta el cacharreo, hacer pruebas y utilizar cualquier cosa «cacharreable» que vemos.
Entre otros sistemas de control de iluminación que tengo en mi casa, hace unos años puse uno nuevo que encontré en internet, el sistema «Milight» (también conocido por otros nombres como LimitlessLED y cosas por el estilo).

Lo interesante de este sistema es su extraordinario bajo precio; cuando controlar una bombilla con cosas como Z-Wave (que también utilizo) cuesta unos 40€ del módulo que controla la bombilla, más el controlador que usemos (entre 50€ y muchos euros), más el mando a distancia, más la bombilla en si (y aún así necesitaremos más cosas si queremos controlarla desde el móvil o desde internet), resulta que el sistema Milight solo necesita una bombilla especial, que incluye el receptor de 2.4ghz, y un mando a distancia que puede controlar varias bombillas, y todo por unos 10€ que cuesta cada cosa (prácticamente lo que cuesta una bombilla led). Que queremos controlarlo desde el móvil o desde internet… no hay problema, añadimos un pequeño cacharrito (llamado wifi bridge) y nos descargamos la App gratuita que nos permite controlarlo tanto desde dentro como desde fuera de casa.

Como quiera que utilizó varias tecnologías distintas, utilizó varios receptores y bridges que me permiten integrarlas en el sistema domotico (Rfxcom, RFLink, Rfxcomtrv, etc). Resulta que en uno de los últimos firmwares que ha aparecido de RFLink, han introducido la posibilidad de recibir y controlar el protocolo del sistema Milight, simplemente añadiendo al RFLink un pequeño módulo que cuesta dos euros.

Dicho y hecho, me he puesto manos a la obra y desde esta tarde ya puedo controlar desde el ordenador las luces Milight que tengo por la casa (cuatro bombillas RGBW, una tira de leds RGBW en el salón y varias tiras RGB en una zona acristalada que tenemos en el patio, donde pasamos bastante tiempo.

Un efecto lateral de haber incluido este módulo es que ahora el RFLink también recibe los módulos de MySensors (que también tengo alguno), lo que lo hace aún más interesante.

 

¡Hablándole a mi casa!

Hoy he dedicado el día del cacharro a poner en marcha una solución que me permita «hablar con mi casa»; dar órdenes encender y apagar luces y aparatos, ajustar temperaturas preguntar de viva voz por la temperatura o la humedad de distintas habitaciones, etc.

El sistema domótico de mi casa está formado por varios elementos, que he ido integrando a lo largo de los años…

  • HomeSeer PRO: el cerebro principal que dota de inteligencia a la casa. En él están dados de alta todos mis dispositivos  y sistemas (luces, enchufes, la alarma, la estación meteorológica, el programador de riego, la caldera, cámaras de vigilancia, receptores de diversos tipos y protocolos, etc) y se comunica con ellos a través de varios sistemas: http, mqtt, puertos serie, directamente… HomeSeer funciona de forma permanente en un pequeño PC de bajo consumo y sin ventiladores con Windows 7.
  • Node-red: el un sistema visual para la conexión y programación del «internet de las cosas» que permite poner en marcha e integrar rápidamente un sin fin de dispositivos dentro de mi sistema domotico. Este programa se ejecuta en una Rasperry PI 2 y funciona de forma permanente.
  • Mosquitto: un servidor de MQTT (sistema de comunicaciones que utiliza gran parte de mis dispositivos) y que corre en la misma Raspberry PI de Node-red.

Bueno, al grano… que me voy por las ramas…

A día de hoy yo creo que todo el mundo conoce Siri (el asistente de Apple, que poco a poco ha ido introduciendo en todos sus dispositivos). Bien, pues hará unos dos años, Apple dotó a Siri de capacidades para el control de la casa aprovechando su capacidad de comunicación hablada en lenguaje natural y se saco de la manga un estándar llamado «Home Kit». En principio Home kit solamente funciona con dispositivos certificados por Apple (pocos y caros) pero, poco a poco, la comunidad hacker a ido consiguiendo que este sistema funcione con otros dispositivos de otros fabricantes y sobre plataformas que no son Apple.

Alguien muy listo, ha desarrollado un softwar, llamado Homebridge, que permite que casi cualquier dispositivo sea reconocido como un dispositivo Home kit y interactuar con él desde Siri.

Mi trabajo de hoy ha consistido en la instalación del software Homebridge en una Raspberry PI modelo B (la más básica y antigua) y de otro software en HomeSeer que permite que ambos se integren. El resultado: puedo decirle a Siri de viva voz desde un iPad o iPhone «oye Siri, enciende La Luz del flexo» y, como por arte de magia, La Luz se enciende.

En este momento tengo incluidas en Homebridge algunas luces de la casa y todas las sondas de temperatura y humedad de la casa (puedo decir de viva voz «oye, Siri, que temperatura hay en el salón» y Siri me responde de inmediato con la temperatura).

La instalación no es difícil pero si un poco liosa y farragosa. Primero instalar una versión actual de Raspian Jessie, a continuación actualizarla. Después instalar Node.js y, por fin, Homebridge. La configuración tampoco es que sea muy complicada pero tampoco está muy clara porque la información existente en internet es un poco contradictoria y hay que avanzar mediante el método de prueba y error.

Me queda mucho trabajo por delante para integrar el resto de la casa. Lo primero será la alarma, podré decirle a Siri cuando me vaya a la cama «buenas noches» y Siri apagará las luces, pondrá la calefacción en modo noche y activará la alarma en modo noche (solo los sensores exteriores activos) , «me voy de casa» y activará la alarma en modo parcial o «buenos días» y quitará la alarma, pondrá la calefacción más alta y todo lo que tenga que hacer para poner la casa en marcha para el día.

La verdad es que no es sencillo, pero creo que el esfuerzo merece la pena.

Edito (17/12/2016):  ¡Me rindo! Tras unos días trasteando no he sido capaz de que este invento funcione correctamente. Cada pocas horas en el iPad aparece un mensaje diciendo que no hay respuesta de los dispositivos y la única manera que he encontrado de hacer que vuelva a funcionar es borrar la casa en el iPad y volverla a crear, lo que supone volver a poner cada dispositivo en su habitación correspondiente, crear las escenas, etc… mucho trabajo. El sistema me gusta, por lo que volveré a probar un poco más adelante.

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.