Integración de los termómetros Xiaomi Mijia (bluetooth) en domoticz mediante Node Red

En este tutorial vamos a vincular los termómetros de Xiaomi Mijia con nuestro domoticz. Para ello NO VAMOS A UTILIZAR el bluetooth de nuestra propia raspberry, eso apenas nos daría alcance, puesto que el bluetooth tiene una cobertura muy escasa. Por ello, vamos a aprovechar la cobertura del Wifi utilizando un sistema mixto: los termómetros bluetooth enviarán datos y un esp32 captará estos datos, los transformará en MQTT y los enviará a través de nuestro wifi a la raspberry.

Dividimos esta guía en varios apartados

Requisitos inciales

Para poder seguir este tutorial es necesario tener instalado Node Red en nuestra Raspberry, además de Domoticz, MQTT y demás.

También es fundamental, lógicamente, disponer de un termómetro xiaomi mijia y un esp32 con bluetooth en nuestro poder.

Os dejamos el listado de tutoriales para poder instalar lo que necesitéis antes de empezar esta guía:

  1. Material necesario para poner en marcha domoticz
  2. Instalación de domoticz desde cero
  3. Instalación de Mosquitto MQTT Broker en Raspberry Pi 
  4. Configurar MQTT con usuario y contraseña (opcional)
  5. Cargamos MQTT en nuestro domoticz
  6. Instalar Watchdog en domoticz (opcional)
  7. Crear usuario y contraseña para domoticz (opcional)
  8. Cómo instalar node red en nuestra raspberry pi

Descarga del software necesario

Vamos a necesitar, a parte del software necesario a consecuencia del seguimiento de los tutoriales anteriores para instalar Node red, los siguientes programas:

OJO a los que tenéis USER y PASS en MQTT de la raspberry y en MQTT de domoticz. Debéis tenerlo en cuenta a la hora de seguir el tutorial.

Flasheo de los termómetros

Cogemos el termómetro, le retiramos la banda de plástico que protege las pilas y vemos que se pone en funcionamiento.

Si no lo habéis hecho en el paso anterior, clicamos en el siguiente enlace CON EL TELÉFONO MOVIL, NO CON EL ORDENADOR, para descargar el archivo respositorio para flashear el termómetro:

ATC_Thermometer.bin

Una vez descargado el archivo, entramos en la siguiente página web CON EL TELÉFONO MOVIL, NO CON EL ORDENADOR:

https://atc1441.github.io/TelinkFlasher.html

Clicamos sobre CONNECT:

Nos aparecerán multitud de dispositivos. Buscamos el que empieza por LY y lo seleccionamos:

Al haber conectado, deberemos clicar sobre DO ACTIVATION. Veremos que nos carga el Mi Token y Mi Bind Key:

Una vez tenemos los datos, clicamos sobre SELECCIONAR ARCHIVO:

Prepara papel y boli, lo vas a necesitar en unos instantes. 

Seleccionamos el archivo repositorio que hemos descargado antes, veremos que nos aparece adjunto y clicamos sobre START FLASHING:

Veremos que empieza a correr un contador. Tendremos un poco de paciencia y en menos que canta un gallo el termómetro estará flasheado. Es la hora de coger el boli y el papel. Al terminar veremos que en el display del termómetro nos marca los últimos caracteres del número MAC del dispositivo, ANÓTALO. Lo necesitaremos para localizarlo más rápidamente en el programa MQTT explorer.

Si no te ha dado tiempo a copiar la MAC del termómetro tras flashearlo, dando a conect te muestra las 6 últimas cifras como ATC_XXXXXX. 

Si te fijas en la página web desde la que has flasheado el termómetro, tienes funciones que puedes modificar en tu termómetro, como el envío de la información en un periodo de tiempo distinto o que aparezcan o no algunos aspectos en la pantallla.

Flasheo del ESP32

Después de haber instalado el programa Flash Download Tool lo ejecutamos. Tardará unos segundos y seleccionaremos DEVELOPER MODE y, a continuación, ESP32 DOWNLOAD TOOL.

Enchufamos el esp32 con un cable miniUSB al ordenador y comprobamos en qué COM se ha conectado. Si no sabes cómo averiguarlo, sigue este tutorial: «Comprobación de puerto COM para los flasheos por USB TTL«

En el programa ESP32 DOWNLOAD TOOL, clicamos sobre el COM correcto, BAUD 115200 y ERASE.

Después adjuntamos los archivos que hemos descargado en el primer paso de este tutorial redactando el código que os enseñamos en las imágenes. Para seleccionar los archivos clica sobre los tres puntitos al final de cada línea.

Copiamos las características del flasheo del esp32 con los archivos que ponemos a continuación:

Si te da error y ya has probado varios cables y puertos, comprueba que tienes el ESP Download Tool en la raíz de C.

Una vez cubierto todo tal y como aparece en la imagen, clicaremos sobre START.

Veremos que se va completando el proceso. Puede tardar un par de minutos, no desesperes que ya casi lo tenemos.

Una vez ha completado el flasheo, nos aparecerá FINISH. 

Ya podemos desenchufar el ESP32 y enchufarlo en el lugar en que vayamos a tenerlo instalado.

Buscamos redes wifi con nuestro móvil y nos conectamos al ESP32. Si te pide contraseña (en algunos casos la solicita), deberás introducir la siguiente:

your_password
Cuidado en esta fase. Si metemos algún dato mal tendremos que reflashear para corregirlo. Fíjate bien en los datos que introduces.

Nos conectamos a él, metemos nuestro wifi y pass, nuestro mqtt con user y pass si tenemos, modificamos el nombre del gateway con el que queremos que aparezca cuando envíe la información y el topic con el q envíe la inforomación:

Al guardar se conectará a nuestra wifi y no sabremos más de él hasta más adelante.

Visualización con el programa MQTT explorer

Ejecutamos el programa MQTT explorer en el ordenador introduciendo los datos de nuestro MQTT.

Veremos que nos aparecen todos los topics que recibimos por mqtt. Entre ellos estará el nombre del gateway que le hayamos puesto al esp32 con la información que recibe de los dispositivos Bluetooth que tenga cerca:

Creamos los Dummys (sensores) en domoticz

Tenemos dos opciones a la hora de cargar los termómetros en domoticz. Debrrás escoger una de ambas.

En la primera cargaremos los 4 datos por separado, en la segunda cargaremos un único dummy con la temperatura, humedad y porcentaje de batería en el mismo dispositivo. Escoge la forma que más se adapte a tus necesidades:

PRIMERA OPCIÓN: Cargamos los 4 datos en dummies independientes

Iniciamos domoticz, y vamos a:

Domoticz > Setup > Hardware

Creamos uno por uno varios sensores, en total 4, clicando sobre Create Virtual Sensors:

Serán los siguientes:

  • Un dummy tipo Temperature,
  • Un dummy tipo Humidity,
  • Un dummy tipo Percentage,
  • Y un dummy tipo Voltage.

Nos vamos a:

Domoticz > Setup > Devices

Nos aparecen el/los dummy/s que acabamos de crear:

Anotamos los IDX y los nombres. Nos harán falta posteriormente.

SEGUNDA OPCIÓN: Cargamos los datos de temperatura, humedad y batería en un solo dummy

Iniciamos domoticz, y vamos a:

Domoticz > Setup > Hardware

Creamos un sensor por cada termómetro que tengamos clicando sobre Create Virtual Sensors:

Escogemos un sensor tipo Temperatura – Humedad:

Nos vamos a:

Domoticz > Setup > Devices

Nos aparecen el/los dummy/s que acabamos de crear:

Anotamos los IDX y los nombres. Nos harán falta posteriormente.

Localizamos el topic del termómetro en el programa MQTT explorer

Abrimos de nuevo MQTT explorer. Buscamos el termómetro que hemos flasheado. Para ir más rápido, puedes escribir en el buscados los caracteres que has anotado antes del número MAC de tu dispositivo.

OJO aquí. Los termómetros envían muchas líneas distintas de información y NO todas nos valen. El correcto para sacar lectura es BTtoMQTT:

Al seleccionar nuestro termómetro, dentro de BTtoMQTT nos aparecerá el TOPIC que deberemos copiar y pegar más adelante en Node Red. Tenlo a mano. Necesitaremos también el número MAC completo que tienes en la lista que carga MQTT explorer. Cópialo también y tenlo a mano:

TOPIC:

NUMERO MAC:

Configuramos Node Red

Abrimos node red (Recuerda que accedemos a ella introduciendo la IP de nuestra raspberry seguido de :1880).

En función de cómo hayas creado los dummys (primera o segunda opción) deberás seguir las indicaciones que correspondan:

PRIMERA OPCIÓN: Cargamos los 4 datos en dummies independientes

A continuación cargamos el flow que os adjuntamos de la siguiente manera:

Introducimos en el recuadro siguiente texto (lo copiamos con control +c) y lo pegamos en el recuadro (con control + v):

[{"id":"2b5b81be.57c52e","type":"tab","label":"Xiaomi BLE","disabled":false,"info":""},{"id":"fe0f189d.6d9058","type":"mqtt in","z":"2b5b81be.57c52e","name":"","topic":"Topic del termometro","qos":"2","datatype":"auto","broker":"c79c32e0.62409","x":100,"y":20,"wires":[["219e80b1.1e741","dc17fd65.23078"]]},{"id":"dc17fd65.23078","type":"json","z":"2b5b81be.57c52e","name":"","property":"payload","action":"","pretty":false,"x":90,"y":100,"wires":[["d7b232f5.8169a","e18e775f.ac93b8"]]},{"id":"d7b232f5.8169a","type":"switch","z":"2b5b81be.57c52e","name":"Dispositivos (mac)","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"A4:C1:38:37:6F:FB","vt":"str"},{"t":"eq","v":"2","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":290,"y":100,"wires":[["7f8f10fa.9d4fe","b6949bd1.53b498"],[]]},{"id":"29f7ae4a.52aba2","type":"mqtt out","z":"2b5b81be.57c52e","name":"","topic":"domoticz/in","qos":"","retain":"","broker":"db11b21c.c9d5a","x":690,"y":280,"wires":[]},{"id":"67beef34.8e5a5","type":"json","z":"2b5b81be.57c52e","name":"","property":"payload","action":"","pretty":false,"x":530,"y":260,"wires":[["29f7ae4a.52aba2","4b0db05.fb4fb5"]]},{"id":"e18e775f.ac93b8","type":"debug","z":"2b5b81be.57c52e","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":110,"y":160,"wires":[]},{"id":"4b0db05.fb4fb5","type":"debug","z":"2b5b81be.57c52e","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":690,"y":220,"wires":[]},{"id":"631a5c7.18c45a4","type":"debug","z":"2b5b81be.57c52e","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":610,"y":140,"wires":[]},{"id":"7f8f10fa.9d4fe","type":"debug","z":"2b5b81be.57c52e","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":530,"y":80,"wires":[]},{"id":"219e80b1.1e741","type":"debug","z":"2b5b81be.57c52e","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":510,"y":20,"wires":[]},{"id":"b6949bd1.53b498","type":"function","z":"2b5b81be.57c52e","name":"Envio datos por mac","func":"var idx_tem=794\n var idx_hum=795\n var idx_vol=796\n var idx_bat=797\n var HUM_STAT=0;\n\n \n value_hum= msg.payload.hum\n \n \nif (value_hum < 30) {\n HUM_STAT=2;\n} else if ((value_hum >= 30) & (value_hum < 45)) {\n HUM_STAT=0;\n} else if ((value_hum >= 45) & (value_hum < 70)) {\n HUM_STAT=1;\n} else if (value_hum >= 70) {\n HUM_STAT=3;\n}\n value_tem= msg.payload.tempc.toString();\n value_vol= msg.payload.volt.toString();\n value_bat= msg.payload.batt.toString();\n value_hum_stat=HUM_STAT.toString();\n\n var msg1 ={};\nvar msg2 ={};\nvar msg3 ={};\nvar msg4 ={};\n msg1.payload = {\"command\":\"udevice\",\"idx\":idx_tem,\"nvalue\":0,\"svalue\":value_tem };\n msg2.payload = {\"command\":\"udevice\",\"idx\":idx_hum,\"nvalue\":value_hum,\"svalue\":value_hum_stat };\n msg3.payload = {\"command\":\"udevice\",\"idx\":idx_vol,\"nvalue\":0,\"svalue\":value_vol };\n msg4.payload = {\"command\":\"udevice\",\"idx\":idx_bat,\"nvalue\":0,\"svalue\":value_bat };\n \n \nreturn [[msg1,msg2,msg3,msg4]];","outputs":1,"noerr":0,"x":400,"y":180,"wires":[["67beef34.8e5a5","631a5c7.18c45a4"]]},{"id":"c79c32e0.62409","type":"mqtt-broker","z":"","name":"192.168.8.150:1883","broker":"192.168.8.150","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"db11b21c.c9d5a","type":"mqtt-broker","z":"","name":"192.168.8.150:1883","broker":"192.168.8.150","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]

Y tras pegar el texto clicamos sobre IMPORT:

Veremos que se nos carga una pestaña nueva denominada Xiaomi BLE. Clicamos sobre ella:

Y veremos que se nos carga el flow completo. Vamos a configurarlo con nuestros datos:

Efectuamos doble click en Topic del termometro:

Clicamos en el lapiz:

Introducimos la IP de nuestro domoticz. Si tenemos USER y PASS de MQTT lo introducimos en Security y aceptamos con Add:

Nos aparecerá la IP correctamente cargada seguida del :1883 y clicamos en DONE.

Al volver a la pantalla anterior sustituiremos el texto «Topic del termómetro» por el Topic que hemos extraído antes de MQTT de nuestro termómetro y aceptamos:

Introducimos la IP de nuestra raspberry (y user y pass de MQTT si tenemos) en domoticz/in:

Buscaremos en el desplegable si aparece la IP de nuestra raspberry (que hemos introducido anteriormente) y lo seleccionamos:

Si no aparece clicamos sobre el lápiz y lo introducimos manualmente como en el paso anterior. Recuerda añadir el USER y PASS de MQTT si lo tienes habilitado.

Ahora clicamos sobre Dispositivos (mac):

Introducimos el número MAC copiado antes del programa MQTT explorer:

Volvemos a tener la pantalla inicial. Ahora configuramos los IDX de nuestros dummys creados anteriormente en domoticz clicando sobre Envío datos por mac:

Introducimos los IDX donde corresponde en función de si es temperatura (tem), humedad (hum), voltaje (vol) o batería (bat) y clicamos DONE:

Y nos queda la siguiente pantalla:

Vamos a comprobar fácilmente si hemos introducido bien los datos. Para ello, clicamos sobre DEPLOY a la derecha:

Pueden ocurrir dos cosas, que nos cargue correctamente (lo ideal) o que nos aparezca desconectado. Si aparece desconectado revisa el server. Asegúrate de que has introducido correctamente la IP de tu raspberry- Y recuerda el USER y PASS de MQTT, tienes?  Lo has introducido correctamente?

Añadir más termómetros con esta PRIMERA OPCION (SENSORES POR SEPADADO)

Si queremos utilizar más termómetros sólo deberemos dulplicar los nodes y poner la nueva MAC, los IDX correctos y listo.

Recuerda que puedes seleccionar los nodes con el ratón, seleccionar varios arrastrando el ratón con el botón pulsado y manteniendo pulsada la tecla control mientras clicas con el ratón sobre los distintos nodes. Para copiar puedes usar control c y para pegar control v 😉

Si dominas Node Red, para añadir más termómetros puedes simplemente añadir otra MAC en el nodo «Dispositivos MAC» y duplicar el nodo «Envío de datos por mac» para poner ahí los IDXs del nuevo termómetro, ahorrándote duplicar el resto 😉

SEGUNDA OPCIÓN: Cargamos los datos de temperatura, humedad y batería en un solo dummy

A continuación cargamos el flow que os adjuntamos de la siguiente manera:

Introducimos en el recuadro siguiente texto (lo copiamos con control +c) y lo pegamos en el recuadro (con control + v):

[{"id":"617c43d8.f25d9c","type":"tab","label":"Xiaomi BLE","disabled":false,"info":""},{"id":"107b935f.5297ad","type":"mqtt in","z":"617c43d8.f25d9c","name":"","topic":"TOPIC DE LOS TERMOMETROS/#","qos":"0","datatype":"auto","broker":"585137b1.62c178","x":180,"y":80,"wires":[["6e8eda7e.7fa064"]]},{"id":"6e8eda7e.7fa064","type":"json","z":"617c43d8.f25d9c","name":"","property":"payload","action":"","pretty":false,"x":130,"y":160,"wires":[["a96423af.7947b"]]},{"id":"a96423af.7947b","type":"switch","z":"617c43d8.f25d9c","name":"Dispositivos (mac)","property":"payload.id","propertyType":"msg","rules":[{"t":"eq","v":"A4:C1:38:87:1A:1D","vt":"str"},{"t":"eq","v":"A4:C1:38:97:99:19","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":290,"y":260,"wires":[["67cc1f40.e53e7"],["d795dd8a.8ba0e"]]},{"id":"67cc1f40.e53e7","type":"function","z":"617c43d8.f25d9c","name":"TEMP+HUM ALLINONE","func":"var HUM_STAT=0;\nvar idx_device = 66;\n \n\n \nvar value_hum= msg.payload.hum;\n\nif (value_hum < 30) {\n HUM_STAT=2;\n} else if ((value_hum >= 30) & (value_hum < 45)) {\n HUM_STAT=0;\n} else if ((value_hum >= 45) & (value_hum < 70)) {\n HUM_STAT=1;\n} else if (value_hum >= 70) {\n HUM_STAT=3;\n}\n\nvar value_temp = msg.payload.tempc.toString();\nvar value_volt = msg.payload.volt.toString();\nvar value_batt = msg.payload.batt;\nvar value_hum_stat = HUM_STAT.toString();\n \n msg.payload ={};\n \n msg.payload.idx = idx_device;\n //msg.payload.command = \"udevice\";\n msg.payload.nvalue = 0;\n msg.payload.svalue = value_temp+\";\"+value_hum+\";\"+value_hum_stat;\n msg.payload.Battery = value_batt;\n msg.payload.RSSI = 10;\n \n return msg;\n/*\n value_tem= msg.payload.tempc.toString();\n value_vol= msg.payload.volt.toString();\n value_bat= msg.payload.batt.toString();\n value_hum_stat=HUM_STAT.toString();\n\n var msg1 ={};\nvar msg2 ={};\nvar msg3 ={};\nvar msg4 ={};\n msg1.payload = {\"command\":\"udevice\",\"idx\":idx_tem,\"nvalue\":0,\"svalue\":value_tem };\n msg2.payload = {\"command\":\"udevice\",\"idx\":idx_hum,\"nvalue\":value_hum,\"svalue\":value_hum_stat };\n msg3.payload = {\"command\":\"udevice\",\"idx\":idx_vol,\"nvalue\":0,\"svalue\":value_vol };\n msg4.payload = {\"command\":\"udevice\",\"idx\":idx_bat,\"nvalue\":0,\"svalue\":value_bat };\n \n \nreturn [[msg1,msg2,msg3,msg4]];\n*/","outputs":1,"noerr":0,"x":530,"y":200,"wires":[["33af0c99.68e634"]]},{"id":"33af0c99.68e634","type":"mqtt out","z":"617c43d8.f25d9c","name":"","topic":"domoticz/in","qos":"","retain":"","broker":"400276b9.513558","x":770,"y":260,"wires":[]},{"id":"d795dd8a.8ba0e","type":"function","z":"617c43d8.f25d9c","name":"TEMP+HUM ALLINONE","func":"var HUM_STAT=0;\nvar idx_device = 67;\n \n\n \nvar value_hum= msg.payload.hum;\n\nif (value_hum < 30) {\n HUM_STAT=2;\n} else if ((value_hum >= 30) & (value_hum < 45)) {\n HUM_STAT=0;\n} else if ((value_hum >= 45) & (value_hum < 70)) {\n HUM_STAT=1;\n} else if (value_hum >= 70) {\n HUM_STAT=3;\n}\n\nvar value_temp = msg.payload.tempc.toString();\nvar value_volt = msg.payload.volt.toString();\nvar value_batt = msg.payload.batt;\nvar value_hum_stat = HUM_STAT.toString();\n \n msg.payload ={};\n \n msg.payload.idx = idx_device;\n //msg.payload.command = \"udevice\";\n msg.payload.nvalue = 0;\n msg.payload.svalue = value_temp+\";\"+value_hum+\";\"+value_hum_stat;\n msg.payload.Battery = value_batt;\n msg.payload.RSSI = 10;\n \n return msg;\n/*\n value_tem= msg.payload.tempc.toString();\n value_vol= msg.payload.volt.toString();\n value_bat= msg.payload.batt.toString();\n value_hum_stat=HUM_STAT.toString();\n\n var msg1 ={};\nvar msg2 ={};\nvar msg3 ={};\nvar msg4 ={};\n msg1.payload = {\"command\":\"udevice\",\"idx\":idx_tem,\"nvalue\":0,\"svalue\":value_tem };\n msg2.payload = {\"command\":\"udevice\",\"idx\":idx_hum,\"nvalue\":value_hum,\"svalue\":value_hum_stat };\n msg3.payload = {\"command\":\"udevice\",\"idx\":idx_vol,\"nvalue\":0,\"svalue\":value_vol };\n msg4.payload = {\"command\":\"udevice\",\"idx\":idx_bat,\"nvalue\":0,\"svalue\":value_bat };\n \n \nreturn [[msg1,msg2,msg3,msg4]];\n*/","outputs":1,"noerr":0,"x":530,"y":320,"wires":[["33af0c99.68e634"]]},{"id":"585137b1.62c178","type":"mqtt-broker","z":"","name":"192.168.8.150:1883","broker":"192.168.8.150","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"400276b9.513558","type":"mqtt-broker","z":"","name":"Mqtt","broker":"192.168.9.150","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]

Y tras pegar el texto clicamos sobre IMPORT:

Veremos que se nos carga una pestaña nueva denominada Xiaomi BLE. Clicamos sobre ella:

Y veremos que se nos carga el flow completo. Vamos a configurarlo con nuestros datos:

Efectuamos doble click en Topic de los termómetros:

Clicamos en el lapiz:

Introducimos la IP de nuestro domoticz. Si tenemos USER y PASS de MQTT lo introducimos en Security y aceptamos con Add:

Nos aparecerá la IP correctamente cargada seguida del :1883 y clicamos en DONE.

Al volver a la pantalla anterior sustituiremos el texto «Topic de los termómetros» por el Topic que hemos extraído antes de MQTT de nuestro termómetro, sin el número MAC,  terminado en /# y aceptamos:

Introducimos la IP de nuestra raspberry (y user y pass de MQTT si tenemos) en domoticz/in:

Buscaremos en el desplegable si aparece la IP de nuestra raspberry (que hemos introducido anteriormente) y lo seleccionamos:

Si no aparece clicamos sobre el lápiz y lo introducimos manualmente como en el paso anterior. Recuerda añadir el USER y PASS de MQTT si lo tienes habilitado.

Ahora clicamos sobre Dispositivos (mac):

Introducimos el número MAC copiado antes del programa MQTT explorer. Si tenemos más de un termómetro, añadiremos el otro o los otros MACs en la lista. Aceptamos y volvemos a la pantalla incial:

Volvemos a tener la pantalla inicial. Ahora configuramos los IDX de nuestros dummys creados anteriormente en domoticz clicando sobre cada uno de los TEMP+HUM ALLINONE.

Mucho cuidado aquí. Si el primer MAC que has escrito en la lista pertenece al termómetro 1, el IDX que introduzcas en el primer nodo pertenecerá a ese termómetro. Para el segundo termómetro tendrás que añadir el IDX en el segundo nodo, y así sucesivamente, de tal manera que el orden del listado del nodo de MACs coincida con el orden en el que salen las flechas de la casilla:

Introducimos los IDX donde corresponde en las funciones de TEMP+HUM ALLINONE:

Y nos queda la siguiente pantalla:

Vamos a comprobar fácilmente si hemos introducido bien los datos. Para ello, clicamos sobre DEPLOY a la derecha:

Pueden ocurrir dos cosas, que nos cargue correctamente (lo ideal) o que nos aparezca desconectado. Si aparece desconectado revisa el server. Asegúrate de que has introducido correctamente la IP de tu raspberry- Y recuerda el USER y PASS de MQTT, tienes?  Lo has introducido correctamente?

Comprobamos el funcionamiento en domoticz

Una vez hemos clicado en DEPLOY y nos aparece domoticz/in como connected, nos vamos a domoticz y comprobamos que está funcionando correctamente:

Para ver la batería que le queda disponible al termómetro lo podéis ver en devices:

Cómo localizar errores en node red

Os damos un truquito para vuestra información. Tenemos un node en el listado de la izquierda que se llama DEBUG. Cuando lo llevamos a la pantalla principal, lo conectamos a un node y lo activamos, nos dá mucha información (como un LOG) en la columna de la derecha del todo. Os explicamos con unas cuantas imágenes cómo conseguirlo:

Mantén el cursor pulsando la bola del final del recuadro del mqtt/in y arrástrala hasta la bola del inicio del recuadro del debug:

Clicamos sobre deploy:

Activamos la cucaracha y a la derecha nos aparecerá el debug con info de errores /( y así podremos analizar qué estamos haciendo mal) o info correcta:

Inicio automático de Node RED con Raspberry Pi

Recordar que por defecto Node RED está apagado. Podemos iniciarlo de dos formas diferentes: manual o automático.

Para inicio manual introducimos en puTTY:

node-red-start

Para que Node Red inicie de forma automática (tras caídas de red, o tras apagar y encender la raspberry) lanzamos el siguiente comando en puTTY:

sudo systemctl enable nodered.service

Agradecimientos

Agradecer especialmente a DrBoom y a @damian_rguez del grupo de Telegram «Domoticz a lo spain«. Ambos forman un equipo perfecto. Sin ellos NADA de este tutorial habría sido posible. GRACIAS, GRACIAS y GRACIAS!

Para cualquier duda o consulta tienes disponible el grupo de telegram «Domoticz a lo Spain» para entrar, ponerte cómodo y participar cuanto quieras.

Clica aquí para entrar en él

Cualquier duda, sugerencia o comentario será bien recibida en la web!