Icono del sitio Home Assistant Fácil

Tasmota introducción a la domótica libre

Al final, siempre hay empresas o personas que te facilitan la vida, en este caso, encuentran huecos a la sombra de fabricantes, haciéndote la vida más fácil. Sobre todo con la domótica y Home Assistant.

Tasmota es una de ellas.

Oficialmente iniciado en 2017 por Theo Arends, no ha parado desde entonces, más de 2200 dispositivos soportados, código libre, una excelente comunidad y lo de siempre, si las cosas son fáciles, triunfan. Tasmota lo es.

Es verdad que existe mucha competencia en este mundillo, ESPHome, ESPurna, ESPEasy son quizás los más importantes ¿Cuál elegir? Podemos ir por dos caminos, yo la verdad si pruebo algo y me gusta, no le doy más vueltas, pero también hay seres humanos más inquietos.

Este artículo está enfocado a Tasmota, pero en su desarrollo he tenido en cuenta la posibilidad que parte de él, se pueda utilizar para otras pruebas que puedas hacer con ESPHome, ESPurna, ESPEasy etc.

Veremos un ejemplo simple de un sensor de temperatura conectado a un ESP8266 y enviaremos los datos vía MQTT a Home Assistant. El 50% de todo el trabajo lo haremos desde nuestro móvil.

Vamos allá.

¿Qué es Tasmota?

Tasmota es un firmware especial para los microcontroladores fabricados por la empresa Espressif con los micros ESP8266, ESP32, ESP32-S o ESP32-C3.

Pero entonces…

¿Qué es un firmware? En este caso (varía el concepto dependiendo si hablamos de un ordenador o un móvil) el firmware es cualquier programa que un microcontrolador (ESP8266 por ejemplo), ejecuta. Es típicamente cualquier programa que tú escribes y subes a la memoria del micro.

Si has trabajado alguna vez con el IDE de Arduino, después de elegir la placa con la que vas a trabajar y escribir tu código, lo has subido a una placa ESP8266, en ese momento tú has creado un firmware, bueno, tú no, es el IDE Arduino quien junta todas las piezas y crea el firmware para posteriormente subirlo a la memoria de la placa.

Ahora que ya sabemos de qué se trata un firmware sigamos con Tasmota.

Soporta una gran cantidad de dispositivos ya fabricados en el mercado, como los de SONOFF o TUYA, también los que tú te puedas construir, por ejemplo, con un Wemos D1 Mini.

Se integra vía MQTT (MQ Telemetry Transport) con cualquier controlador, por ejemplo, Home Assistant, Jeedom, openHab. MQTT que es un protocolo muy fácil de implementar que hace que las maquina hablen entre ellas (no sé por qué me ha venido a la memoria de la pelicula «skyline» Terminator) y que es un estándar en el Internet de las Cosas (IoT).

MQTT da para un artículo el solito como esta guía de introducción a MQTT, está muy bien explicado.

Simplemente, añado esta imagen para darte una idea, si no lo conoces. Pero te animo a que accedas al enlace anterior si quieres profundizar.

Puedes pensar en MQTT como en una oficina de correos que intercambia correos indicando «enciende la luz» o «la temperatura es de 25 grados». Como en todas las cartas existe un remitente, que publica el mensaje) y la oficina de correos (el broker) lo envía a quien esté subscrito a los mensajes de ese remitente.

¿Para qué sirve Tasmota?

Las ventajas que tiene Tasmota van muy orientadas a personas que como tú quieren domotizar tu casa:

Para esto sirve Tasmota, para facilitarte la vida, las dos primera opciones se explican solas.

La tercera es el camino que ha seguido Tasmota para triunfar, comprarte un dispositivo de los dos mil y pico que hay en el mercado, desbloquear este dispositivo y en cierta manera liberándolo para utilizarlo para comunicarse con otros sistemas que nunca se pretendía comunicarse, es decir, con tu sistema e integrándose con todo lo que hable el protocolo MQTT, suena bien ¿No?.

Algunos ejemplos de controladores que soportan MQTT:

Ahora bien, subir un código a dispositivos de fabricantes, si lo retuerces un poco, parece que estamos pirateando el dispositivo, aquí yo creo que se sigue una estrategia win-win, todos ganan. Por un lado, el fabricante que vende más y el consumidor consigue añadir dispositivos en su sistema domótico y así de paso, no tiene que pasar por ninguna nube de ningún fabricante.

Las malas noticias son: si subes el firmware de Tasmota o herramientas similares a cualquier dispositivo de estos, adiós a la garantía, o sea, que ya puedes afinar tu destornillador plano destripa-dispositivos y afilar tu soldador.

Modos de subir el firmware de Tasmota

Antes de entrar en el cómo, debes de entender que existen dos maneras de subir código:

Esto que te acabo de contar es simplemente para ponerte sobre aviso de lo que viene ahora, la realidad como verás más adelante, es que para subir el firmware de Tasmota la primera vez debes de conectar físicamente a tu ordenador y una vez configurado ya podrías utilizar la actualización vía Wifi.

Un poco más de teoría y luego vamos a la práctica.

Conexión vía Wifi

Aquí hay que distinguir dos tipos de dispositivos:

Conexión vía cable Adaptador FTDI o USB

Dos tipos de dispositivos:

FTDI imprescindible para cualquier conexión en la cual no se disponga de un puerto USB (en sus distintos formatos), este dispositivo actúa de adaptador entre señales Serie y USB.

En la página de Tasmota advierten de posibles problemas si te lanzas a comprar adaptadores FTDI clónicos, yo he trabajado con los dos tipos que os muestro arriba y nunca he tenido problemas, dicho esto, Sparkfun o Adafruit siempre serán más fiables. Aparte Tasmota nos hace un par de recomendaciones Modulo CH340 y SparkFun CH340G. Todos son adaptadores USB-to-Serial.

Este es un ejemplo con Sonoff R2 Basic que es un conmutador inteligente Wifi para que veas la operativa a ejecutar.

Te identifico las tripas del conmutador una vez abierto, parte superior.

Parte posterior donde vienen perfectamente identificados los pines TX, RX y alimentación.

Diagrama de conexión con el Adaptador FTDI, donde lo más importante es ver que TX y RX van cruzados y el voltaje de alimentación 3.3 v en este caso.

Y finalmente, todo conectado.

Ahora vamos a por el cómo.

Una vez conectado el dispositivo de una de las dos opciones anteriores, solo nos queda subir el firmware de Tasmota. Estas son las opciones que me parecen más útiles:

Tasmota con ESP8266 y sensor DHT22

En la introducción de este artículo comenté que mi primer interés es que lo que aquí veamos, pueda servirte para poderlo reutilizar con otras herramientas como ESPHome, ESPEasy, Espurna etc.

Por ello vamos a utilizar elemento comunes:

La práctica va a ir por este camino:

¿Preparado?

Paso 1. Prototipado rápido de tarjeta tipo Wemos D1 Mini Pro 4M con un zócalo (shield) DHT22

La tarjeta que voy a utilizar es un clónico de Wemos, me llamo la atención porque lleva una antena de cerámica y un conector para una antena externa.

Los clónicos de Wemos, son los que pareciéndose a Wemos, no llevan serigrafiado el logotipo de Wemos en la placa.

El DHT22 es un clásico, quizás no es el mejor sensor del mundo, pero tampoco el peor. Puedes ver aquí, que está soportado por Tasmota.

Por último, al conectar el zócalo DHT22 en el Wemos D1 Mini, el pin 2 (datos) del DHT22 quedará conectado al pin D4 GPIO2 de la tarjeta Wemos cuando se ensamble, quédate con este dato para cuando configuremos Tasmota

Para montar el prototipo solo debes de soldar los pines metálicos hembra a la tarjeta Wemos y los pines tipo macho al DHT22.

DHT22

Wemos D1 Mini Pro

Finalmente, todo soldado y ensamblado.

Si te das cuenta no he soldado todos los pines, cacharreo mucho. Así monto y desmonto más fácilmente, lógicamente si lo vas a poner en producción en vuestro entorno, suelda todos los pines.

Con los D1 Mini Shields tienes un montón de opciones para prototipar en minutos, lo que tardes en soldar 16 pines.

Paso 2. Instalar MQTT en Home Assistant

Abre tu Home Assistant y ve a Configuración + Usuarios para crearnos un usuario para segurizar la transmisión de datos entre nuestro Wemos y Home Assistant. Todos los dispositivos que quieras conectar deberán de tener este usuario y clave.

Clic en AÑADIR USUARIO y te aparece un formulario. Rellena los campos y no lo añadas al perfil de administrador, es innecesario. Finalmente clic en CREAR.

Ahora nos vamos a la tienda de complementos para instalar MQTT, clic en Supervisor y TIENDA DE COMPLEMENTOS.

Busca MQTT en la lupa de búsqueda.

Este es el resultado y clic en Mosquitto broker

Clic en INSTALAR

Marca la opción de Vigilancia y INICIAR

Te vas otra vez a Configuración e Integraciones

Y verás MQTT descubierto y listo para configurar

Te preguntan si quieres CONFIGURAR MQTT, clic en ENVIAR y si todo ha ido bien aparece esta ventana. Clic en TERMINAR

Terminada esta parte. Home Assistant está preparado para recibir mensajes MQTT.

Paso 3. Subir el firmware Tasmota

En el Paso 1 ya has preparado tu dispositivo, ahora simplemente lo conectas al puerto USB de tu ordenador, antes de arrancar el programa ESP-Flasher, nos bajamos el firmware, que es un fichero con extensión .bin.

Para esto dirígete a este enlace que te llevara a la última versión de Tasmota, clic en el enlace de la propia página en Tasmota 10.1.0 Noelle, (versión disponible durante este artículo).

En esta página descarga en tu PC el firmware tasmota.bin.gz, .gz es una extensión que indica que es un fichero comprimido, descomprímelo, el resultado es un fichero con este nombre: tasmota.bin

Ahora abre el programa ESP-Flasher, conecta el dispositivo Wemos al puerto USB y sigue estos pasos:

Si todo ha ido bien veras estos datos por la consola. La última línea nos da una pista por donde seguir

HTP: Web server active on tasmota-7EA5CF-1487 with IP address 192.168.4.1

Ya tienes un servidor web accesible en tu dispositivo, parece magia ¿Eh?, pues ya verás lo que viene ahora.

Este servidor web presenta lo que se llama un portal cautivo que funciona con un Punto de Acceso Wifi (función que normalmente ofrece tu router ADSL o similar), vía wifi te vas a conectar directamente (acuérdate del ejemplo que te puse anteriormente explicando los pasos para configurar tu aire acondicionado vía Wifi), para ello sigue los siguientes pasos.

A partir de aquí solo vas a utilizar el móvil para seguir con la configuración.

Te aparece una nueva red wifi con el nombre del servidor web que has visto en el log de la consola. tasmota-7EA5CF-1487 (en tu entorno los números cambiarán), te conectas, dejas de tener la red wifi a la que estabas conectado para conectarte directamente a tu dispositivo, finalmente inicia sesión (no hay claves).

Configura tu dispositivo para que se conecte a tu red wifi de nuestra casa (personaliza con tus datos)

Vete a la consola del ESP-Flasher si todo hay ido bien debes de visualizar algo así:

Lo más importante es la dirección IP que te muestra, ya es un elemento más en tu red.

Abre un navegador de tu móvil y conéctate a la IP http://192.168.1.36

Configura Tasmota para que sepa como es tu dispositivo, en este caso Wemos D1 mini + DHT22

Configura D5 con el sensor AM2301 (DHT21) y ya lo tienes, los datos del sensor de temperatura son accesibles desde una página web que Tasmota crea para ti.

Si es la primera vez te metes en estos embrollos te pondrás más contento que un chaval con zapatos nuevos.

Ahora vamos a conectarnos con Home Assistant

Vas a configurar el cliente MQTT de Tasmota para que publique mensajes, en este caso la Temperatura Humedad y Punto de rocío (Dew point)

Para los nombres de los mensajes, utilizo nombreHardware_sensor en este caso WemosD1_temperatura. Usa tu propia nomenclatura, lo que mejor te venga.

Ahora toca forzar que Home Assistant, detecte el dispositivo, para ello nos vamos a la página de inicio de Tasmota y clic en Console

Tienes una pantalla similar a esta:

Donde pone Enter command, escribe SetOption19 1, clic en la tecla ENTER/INTRO de tu teclado. Esto activa el Autodescubrimiento en tu dispositivo.

Vamos a Home Assistant y si todo ha ido bien debe de haberse descubierto 1 dispositivo y al menos 4 entidades.

Aqui lo tienes

Si haces clic en el dispositivo Tasmota verás los resultados de tu trabajo

Hemos tocado de puntillas los comandos que se pueden ejecutar desde la consola de Tasmota. Hay decenas, en este enlace (comandos Tasmota) los puedes ver. Hacen de todo, desde poner una IP estática a configurar un servidor NTP sin escribir una línea de código.

Como muestra un botón, si te has fijado en la consola de Tasmota verás que el intervalo de envío de los mensajes MQTT de temperatura y humedad es de 5 minutos (300 seg), vamos a cambiarlo a cada 30 segundos

Este es el comando que debes de introducir en la consola:

teleperiod 30

Conclusiones sobre Tasmota

Que puedo decir, me ha gustado, sencillo de utilizar, la parte de Tasmota la puedes hacer completamente desde el móvil, te lo puedes llevar a donde quieras (que exista una red wifi claro) y configurar en pocos minutos.

Con los Wemos D1 mini y los zócalos (D1 shields) tienes la posibilidad de prototipar muy rápido y a muy bajo coste. Dispositivos que con el firmware de Tasmota y sin picar una línea de código los tienes funcionando en minutos.

Que quieres lanzarte a destripar dispositivos, a por al fabricante SONOFF, los tienes de todos los colores.

En la parte de los comandos de consola puedes y debes profundizar, es una manera de escribir código por medios de comandos que al fin y al cabo es más fácil que aprender c++.

Y por último, si has decidido casarte con Tasmota hasta que la muerte os separe, Tasmota Device Manager es una herramienta imprescindible para llevar un inventario de todos vuestros cacharros y de poder administrarlos desde una única consola de administración, esta chula. Te pide conectarte a tu Intermediario MQTT (la IP de tu Home Assistant) y con el mismo usuario que hemos creado en este proyecto clientemqtt, ya estás dentro y puedes ver los datos de tus dispositivos.

Ya está bien por hoy, ciao.

Gracias a Depositphotos por la cesión de las imágenes.

Salir de la versión móvil