Continuando con la domótica de casa, algo a tener en cuenta, para una futura climatización automática o simplemente por saber el estado de tu hogar, es la temperatura y humedad de cada una de las estancias. Para ello aunque existen opciones wifi o DYI que nosotros podamos construirnos, pero en este caso, vamos a usar los sensores Xiaomi Mijia LYWSD03MMC el cual podemos encontrar en AliExpress por menos de 3 euros.
Para conectarnos y obtener los datos usaremos una raspberry / orange pi o cualquier otra placa que nos de la posibilidad de tener un linux.
Xiaomi Mijia LYWSD03MMC
Es un sensor de bajo coste con pantalla y conexión bluetooth de bajo coste de la mano de Xiaomi que se integra dentro del ecosistema Mijia Xiaomi Home.

Modelo | Xiaomi Mijia LYWSD03MMC |
---|---|
Peso | 78g |
Dimensiones | 4,30 x 4,30 x 1,25 cm |
Pantalla | 1.78 " |
Temperatura | -9.9 a 60 ºC |
Humedad | 0 a 99% |
Conectividad | Bluetooth |
Batería | CR2032 |
Como hemos hablado este dispositivo bluetooth se integra dentro del ecosistema Mi Home a través del gateway bluetooth, pero en nuestro caso, vamos a usarlo con conexión directa.
Firmware alternativo ATC MiThermometer
Al igual que ya hiciésemos con los Firmware Sonoff, a este dispositivo vamos a cambiar el firmware para hacerlo más fácil y compatible.
El firmware original, se enlaza mediante una key la cual es posible obtener, pero para no necesitarlo, vamos a actualizarlo de forma muy fácil y simple.
El firmware alternativo es de Hoverboard1 y posteriormente ha sido actualizado por Pvvx.
Flashear Xiaomi MiThermometer LYWSD03MMC
Lo primero que tenemos que hacer es descargar el fichero del firmware desde GitHub:
https://github.com/pvvx/ATC_MiThermometer

Desde un teléfono móvil, recomendablemente, entramos en la url que nos indica en la documentación:
https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html

- Primero: Nos conectaremos al dispositivo
- Segundo: Seleccionaremos el Firmware
- Tercero: Empezamos el flasheo
- Cuarto: Nos fijamos hasta que llegue al 100% y reinicie.
Con esto, ya tendremos el nuevo firmware ATC.
Obtener datos BLE con Raspbery Pi
Vamos a usar una Raspberry Pi, aunque también podríamos usar una Orange Pi sin problemas, abaratando el sistema.
Podemos usar el módulo bluetooth que trae la RPi 4 o si tenemos una versión anterior que no dispone de módulo bluetooth, podemos poner un módulo USB y el resultado será el mismo.
Antes te comenzar, tenemos que instalar una serie de paquetes y librerías necesarios.
apt install git curl mosquitto-clients bluetooth libbluetooth-dev python3 bluez python3-pip
pip3 install bluepy pybluez
En nuestro caso, vamos a hacerlo sobre la carpeta /data, pero podemos usar cualquiera que se adecue a nuestro sistema.
Vamos a usar la aplicación de JsBergbau MiTemperature2 diseñada para leer estos LYWSD03MMC, la cual a título de comentario está en el repositorio que GitHub tiene almacenado en el Ártico.
git clone https://github.com/JsBergbau/MiTemperature2.git
Ya tenemos la aplicación que vamos a necesitar, pero tendremos que crear 2 ficheros para hacerlos funcionar.
Fichero de configuración de Sensores
Vamos a crear un fichero de configuración de Sensores, el cual será usado para que la aplicación sólo lea esos sensores y le asignemos un nombre. En nuestro caso lo llamaremos Sensores.ini
[A4:C1:38:68:00:01]
sensorname=Despacho
[A4:C1:38:68:00:02]
sensorname=Salon
Fichero de acciones
Ya que tenemos la aplicación y los sensores LYWSD03MMC que queremos controlar, vamos a decidir que vamos a hacer con esos datos.
Al igual que ya hicimos con el consumo eléctrico integrado en Grafana mediante InfluxDB, vamos a integrarlo igual.
Ya sabemos como montar con Docker InfluxDB, por lo que no vamos a volver a explicarlo. Tan sólo creamos la base de datos, que queramos. Yo la he llamado sensores.
Vamos a aprovechar y a volcar los datos también a MQTT, por si queremos recuperarlos desde Home Assistant, Node Red o cualquier otro sistema.
En mi caso, he llamado al fichero influx_mqtt_sensores:
#!/bin/bash
# Configuramos Parametros
RUTA="/data/MiTemperature2"
MQTT_IP="192.168.0.210"
MQTT_USER="MiUsuario"
MQTT_PASS="NuestraPassword"
MQTT_TOPIC="Alferez/Datos/Sensores"
INFLUX_IP="192.168.0.201"
INFLUX_PUERTO="8086"
INFLUX_DB="sensores"
# Obtenemos variables
LUGAR="$2"
TEMPERATURA="$3"
HUMEDAD="$4"
BATVOLT="$5"
BATLEV="$6"
# Integramos datos en MQTT
mosquitto_pub -h $MQTT_IP -t "$MQTT_TOPIC/$LUGAR/temp" -u $MQTT_USER -P $MQTT_PASS -m "$TEMPERATURA"
mosquitto_pub -h $MQTT_IP -t "$MQTT_TOPIC/$LUGAR/humidity" -u $MQTT_USER -P $MQTT_PASS -m "$HUMEDAD"
mosquitto_pub -h $MQTT_IP -t "$MQTT_TOPIC/$LUGAR/batteryvoltage" -u $MQTT_USER -P $MQTT_PASS -m "$BATVOLT"
mosquitto_pub -h $MQTT_IP -t "$MQTT_TOPIC/$LUGAR/batterylevel" -u $MQTT_USER -P $MQTT_PASS -m "$BATLEV"
# Integramos datos en InfluxDB
/usr/bin/curl -s -i -XPOST "http://${INFLUX_IP}:${INFLUX_PUERTO}/write?db=${INFLUX_DB}" --data-binary "temp,sensor=$LUGAR value=$TEMPERATURA"
/usr/bin/curl -s -i -XPOST "http://${INFLUX_IP}:${INFLUX_PUERTO}/write?db=${INFLUX_DB}" --data-binary "hum,sensor=$LUGAR value=$HUMEDAD"
/usr/bin/curl -s -i -XPOST "http://${INFLUX_IP}:${INFLUX_PUERTO}/write?db=${INFLUX_DB}" --data-binary "bat,sensor=$LUGAR value=$BATLEV"
Lógicamente tendremos que hacer este fichero ejecutable (chmod +x) y poner los datos perteneciente a nuestros sistemas. Si no queremos meterlo en MQTT por ejemplo, podemos quitar esa parte.
Ejecución de la aplicación
Para ejecutar nuestra aplicación y que empiece a introducir los datos en InfluxDB, tenemos que ejecutarlo:
/data/MiTemperature2/LYWSD03MMC.py -a -b 1000 -r --debounce --skipidentical 50 --name Alferez --callback influx_mqtt_sensores -df /data/MiTemperature2/sensores.ini -odl
Podemos lanzarlo en un screen, en background o ponerlo para que cuando el sistema se arranque la aplicación se ejecute de nuevo.
Datos en Grafana
Ya tenemos nuestros datos, ahora sólo nos queda recuperar esos datos y mostrarlos.
Debemos añadir un panel para temperatura y otro para humedad e ir introduciendo los sensores para que los muestre:

Y esto es lo que obtendremos:

Integración en sistema Domótico
Teniendo ya los datos en el servidor Mosquitto, es fácil recuperar esos datos en nuestro sistema. Aquí podemos ver nuestros datos en Home Assitant:

Con estos datos integrados, podemos empezar a realizar automatizaciones como encender un aire acondicionado o un alentador en base a la temperatura o activar un deshumidificador en base a la humedad que tengamos en una habitación.