Skip to main content

4.3 Domótica

De nuevo vamos a tomar prestada una definicióndefinición de la wikipedia:

Se llama domóticadomótica a los sistemas capaces de automatizar una vivienda o edificaciónedificación de cualquier tipo, aportando servicios de gestióngestión energética,energética, seguridad, bienestar y comunicación,comunicación, y que pueden estar integrados por medio de redes interiores y exteriores de comunicacióncomunicación, cableadas o inalámbricas,inalámbricas, y cuyo control goza de cierta facilidad, desde dentro y fuera del hogar. Se podríapodría definir como la integraciónintegración de la tecnologíatecnología en el diseñodiseño inteligente de un recinto cerrado.

https://es.wikipedia.org/wiki/Dom%C3%B3tica

En nuestro caso, dado que vamos a trabajar con una Raspberry Pi, vamos a ver una soluciónsolución que yo considero perfecta para este ordenador. Se trata de Home Assintant pero antes de entrar en el meollo de la cuestióncuestión vamos a hablar de protocolos.

Protocolos de comunicacióncomunicación

En informáticainformática y telecomunicación,telecomunicación, un protocolo de comunicaciones es un sistema de reglas que permiten que dos o másmás entidades (computadoras, teléfonosteléfonos celulares, etc.) de un sistema de comunicacióncomunicación se comuniquen entre ellas para transmitir informacióninformación por medio de cualquier tipo de variaciónvariación de una magnitud físicafísica. Se trata de las reglas o el estándarestándar que define la sintaxis, semánticasemántica y sincronizaciónsincronización de la comunicación,comunicación, asíasí como tambiéntambién los posibles métodosmétodos de recuperaciónrecuperación de errores. Los protocolos pueden ser implementados por hardware, por software, o por una combinacióncombinación de ambos.

TambiénTambién se define como un conjunto de normas que permite la comunicacióncomunicación entre ordenadores, estableciendo la forma de identificaciónidentificación de estos en la red, la forma de transmisióntransmisión de los datos y la forma en que la informacióninformación debe procesarse.

Los sistemas de comunicacióncomunicación utilizan formatos bien definidos (protocolo) para intercambiar mensajes. Cada mensaje tiene un significado exacto destinado a obtener una respuesta de un rango de posibles respuestas predeterminadas para esa situaciónsituación en particular. Normalmente, el comportamiento especificado es independiente de cómocómo se va a implementar. Los protocolos de comunicacióncomunicación tienen que estar acordados por las partes involucradas. Para llegar a dicho acuerdo, un protocolo puede ser desarrollado dentro de estándarestándar técnico(técnico(...)

https://es.wikipedia.org/wiki/Protocolo_de_comunicaciones

En este punto puede ser que os estéisestéis preguntando por quéqué os estoy contando quéqué son los protocolos de comunicaciones. En este apartado vamos a trabajar con distintos gadget, sensores, que pueden utilizar diferentes protocolos. Además,Además, algunos de los sensores que voy a comentar funcionan con protocolos que la Raspberry Pi no soporta por lo que requieren de algúnalgún hardware adicional. Vamos a enumerar algunos de los protocolos que me parecen mas relevantes de cara a usar domóticadomótica en la Raspberry Pi:

  • Wi-Fi: Soportado directamente por la raspberry pi.
  • Bluetooth: Soportado directamente por la raspberry pi.
  • Zigbee: No soportado por la raspberry pi directamente. Se trata de un protocolo de comunicacióncomunicación inalámbricainalámbrica de bajo consumo. Ideal para dispositivos que requieren comunicaciones seguras con baja tasa de envíoenvío de datos y una gran vida útilútil de sus baterías.baterías. Necesita de un adaptador (USB) que conectaremos a la Raspberry Pi y que le darádará a la Raspberry la posibilidad de comunicarse a travéstravés de este protocolo.  
  • MQTT (alias mosquito): es un protocolo de mensajeríamensajería ligero con un consumo muy bajo de energía.energía. Requiere de un broker de mensajeríamensajería.

Zigbee

Mi adaptador zigbee-USB, un CC2531, lo adquiríadquirí por unos 6 aquíaquí https://es.aliexpress.com/item/32971386349.html   requiere ser programado (flasheado). Se puede flashear "facilmente" con un dispositivo similar https://es.aliexpress.com/item/32976509073.html que cuesta unos 8€8€ y estando obligados/as a utilizar Windows. TambiénTambién se puede flashear desde la Raspberry Pi utilizando este métodométodo https://www.zigbee2mqtt.io/guide/adapters/flashing/alternative_flashing_methods.html (yo no lo he probado)

domotica-adaptador-zigbee.png

Imagen obtenida de https://es.aliexpress.com/item/32971386349.html

Puede ser que el dispositivo que tengas entre tus manos ya estéesté flasheado si otro compañero/compañero/a lo ha flasheado en una ediciónedición anterior del curso. Si asíasí lo deseas puedes volver a flashearlo sin dañarlo.dañarlo.

Os dejo un videotutorial que explica como como flashear el dispositivo por si os animáisanimáis a utilizar la tecnologíatecnología Zigbee. Os dejo tambiéntambién el enlace al vídeovídeo ya que hay veces que no carga incrustado en este manual https://youtu.be/70Eav-prgMk En esta páginapágina del curso he anexionado (aparecen arriba a la izquierda) tambiéntambién los ficheros necesarios por si en el futuro dejan de estar disponibles en su ubicaciónubicación actual.

Os dejo alguna foto de las conexiones del proceso de flasheo por si no lo veis correctamente en el vídeo:vídeo:

IMG_20230721_191807.jpg

IMG_20230721_191825.jpg

IMG_20230721_191831.jpg

IMG_20230721_191817.jpg

ElaboraciónElaboración propia

El ccdebugger en ocasiones le cuesta MUCHO cambiar el led de rojo a verde. Es cuestióncuestión de insistir, reiniciar,... La primera vez que lo hice me costócostó 2 minutos. La segunda vez que lo hice me costócostó 20 minutos.

Os dejo unas capturas de pantalla del programa de flasheo:

antes-flash.png

post-flash.png

ElaboraciónElaboración propia

Tipos de dispositivos IoT

A la hora de adquirir dispositivos dispositivos IoT los encontraremos de 2 tipos:

  • conectados a la luz
  • con batería/batería/pilas

en algunos casos tiene sentido que esténestén conectados a la luz, es el caso de un termostato de la calefaccióncalefacción o un motor para subir/bajar las persianas, mientras que otros, como un sensor de temperatura o un actuador de radiador, tiene mas sentido que funcionen con batería/batería/pilas en lugar de tener que llevar un enchufe a cada radiador o a cada punto dóndedónde queramos medir medir 

AdemásAdemás de la clasificaciónclasificación anterior, nos encontraremos básicamentebásicamente dispositivos de 2 tipos: Wi-Fi y Zigbee pero no Bluetooth ¿¿por qué?qué? por el consumo. Los dispositivos que utilizan el protocolo Bluetooth consumen mucha mas bateríabatería que los que usan, por ejemplo, zigbee. Nadie quiere un dispositivo IoT al que tiene que cambiarle las pilas cada mes cuando existe uno equivalente al que puede cambiarle la pila cada 2 años.años.

Privacidad

Una cuestióncuestión que yo considero MUY importante es el que el acceso a nuestros datos o a la funcionalidad del hardware no requiera de tener acceso a la nube de una determinada empresa por cuestiones ya no solo de privacidad sino por el hecho de que si esa empresa cierra su nube o establece un servicio de pago estamos condenados a pagar o cambiar el dispositivo con las implicaciones medioambientales y económicaseconómicas que ello supone. Muchos fabricantes, como tuya, plantean que para usar sus dispositivos Zigbee debes adquirir su hub (concentrador) y posteriormente este hub, a travéstravés de su app o web, te darádará los datos que recopila o te permitirápermitirá interactuar con tus dispositivos. Frente a esta filosofíafilosofía estáestá la posibilidad de utilizar un software propio al que conectemos nuestros dispositivos (WiFi o Zigbee) y de la compañíacompañía que queramos (tuya, sonoff,...) sin depender de nubes de terceros. Además,Además, con soluciones como las que hemos visto en el capítulocapítulo 3 para la creacióncreación de VPNs, podremos acceder a nuestro dispositivo desde cualquier lugar. Por ello en el siguiente apartado vamos a hablar de Home Assistant.

Home Assistant

hassio-logo.png

Imagen obtenida de https://design.home-assistant.io/#brand/logo

Hassio, por si mismo, requeriríarequeriría de un curso dedicado de una cantidad importante de horas por ello vamos a centrarnos en aquello mas relevante.

Antes de comenzar voy a mostraros mi instalacióninstalación de Home Assistant con los diferentes sensores, gráficasgráficas y automatizaciones que tengo asíasí como por quéqué empecéempecé a montar este sistema y quéqué quiero hacer en el futuro.

Inicialmente montémonté esto para ubicar en cada dormitorio un sensor de temperatura y posteriormete ubicar un actuador de apertura/cierre en cada radiador. La idea era abrir o cerrar cada radiador de modo automáticoautomático en funciónfunción de la temperatura de cada estancia. Con posterioridad leíleí que estos actuadores con tanta apertura/cierre acababan estropeandose y por ello desistídesistí de instalar estos actuadores en los radiadores pero la mecha ya estaba prendida.

En la actualidad tengo los siguientes sensores/actuadores:

  • sensor de apertura: en la puerta de entrada a mi domicilio
  • sensor de presencia: en la primera estancia a la que se accede desde la puerta de entrada
  • sensor de temperatura y humedad en salónsalón
  • sensor de temperatura y humedad en el dormitorio principal
  • termostato
  • sensor de consumo: en el cuadro eléctricoeléctrico de casa
  • sensor de apertura: frigoríficofrigorífico
  • receptor/emisor de infrarrojos
  • deteccióndetección de aparatos en red de casa

Todos, excepto el último,último, funcionan con zigbee mientras que el últimoúltimo hace uso de wifi.

hassio-zigbee2mqtt.png

ElaboraciónElaboración propia

Estos sensores me permiten obtener valores del instante en que realice la consulta pero tambiéntambién históricos.históricos. TambiénTambién me permite actuar directamente sobre los sensores como el termostato. Todo ello se configura en unos dashboards muy sencillos como los que vemos a continuacióncontinuación

hassio-overview1.png

ElaboraciónElaboración propia

hassio-overview2.png

ElaboraciónElaboración propia

hassio-overview3.png

ElaboraciónElaboración propia

A partir de lo anterior se pueden crear diferentes automatizaciones. Por ejemplo yo tengo creadas las siguientes:

  • Frigo abierto: Mi frigoríficofrigorífico no tiene sensor avisador si te dejas la puerta abierta por lo que intentéintenté hacer un avisador en caso de que estuviese abierto mas de 10s. Mis hijas arrancaron el sensor antes de ponerlo en marcha.
  • Frigo cerrado:
  • Puerta de casa abierta: Me manda un mensaje por telegram cada vez la puerta de casa se abre. Lo uso a modo de alarma
  • Puerta de casa cerrada:
  • Termostato temperatura medida cambiócambió por debajo de 19ºC:19ºC: Lo tengo creado para pruebas con el termostato

hassio-automatizaciones.png

ElaboraciónElaboración  propia

hassio-automatizacion-detalle.png

ElaboraciónElaboración  propia

Visto lo que yo tengo es momento de empezar por la instalacióninstalación: Home Assistant (https://www.home-assistant.io/) puede ser instalado dockerizado o puede ser instalado directamente como un sistema operativo en una tarjeta SD dedicada. En mi caso opto por la opciónopción pues como vemos en la imagen posterior el hecho de tenerlo instalado de este modo me permite disfrutar de todas las posibilidades de la herramienta.

hassio-compare-installation-methods.png

Imagen obtenida de https://www.home-assistant.io/installation/

En la direccióndirección https://www.home-assistant.io/installation/ tenemos a nuestra disposicióndisposición las diferentes formas de instalación.instalación. En el caso de elegir la instalacióninstalación víavía sistema operativo descargaremos la imagen y la instalaremos tal como vimos en el capítulocapítulo 2.1.1. Os dejo tambiéntambién un tutorial por si os resulta de utilidad https://domoticaencasa.es/video-tutorial-instalacion-de-home-assistant/

Si vais a trabajar con dispositivos Zigbee necesitaréisnecesitaréis conocer quéqué es Zigbbe2Mqtt por ello os dejo este enlace https://domoticaencasa.es/video-funciona-mqtt-integrar-home-assistant/ a un tutorial que explica como funciona y como integrarlo en Home Assistant. Os dejo tambiéntambién un vídeo:vídeo:

El protocolo MQTT se usa en robóticarobótica educativa, por ejemplo aquíaquí en el curso ESP32 en el Aula con Arduinoblocks

Si te quedas con ganas de mas voy a recomendarte esta serie de 8 vídeosvídeos dóndedónde indican como proceder con hassio y zigbee:

Una funciónfunción muy interesante es la de que hassio nos envíeenvíe notificaciones en Telegram por ello os dejo un enlace a este tutorial https://domoticaencasa.es/home-assistant-9-notificaciones-telegram/ dóndedónde explica como hacerlo. Este canal os puede resultar tambiéntambién de gran utilidad para los servicios que hemos desplegado a lo largo del capítulocapítulo 3.

Integraciones

Si ademásademás de las integraciones que pone por defecto a tu disposicióndisposición Home Assistant quieres hacer uso de otras no oficiales puedes instalar HACS que nos permite acceder a cientos, si no miles, de proyectos que la comunidad ha creado. Para instalar HACS es suficiente con seguir estas instrucciones: