Xiaomi Mi Pflanzensensor

Der Spieltrieb und die Neugier waren einfach zu groß.
Also wurde ein ESP32 bestellt und getestet :innocent:

Das Ergebnis:
Die Sensordaten werden vom ESP32 per Bluetooth gelesen und per WLAN an den MQTT-Broker geschickt.
Damit kann man Homey unabhängig von der BT-Reichweite positionieren.
Voraussetzung ist natürlich ein MQTT-Broker - als Homey-App oder separat auf RasPi oder als Docker-Container.
Der ESP32 wird im Garten in der Elektro-Box an ein USB-Netzteil angeschlossen. Damit ist eine gute BT-Verbindung gegeben.

Was ist dafür zu tun?

  1. Einen ESP32 bestellen (Developer Board mit WLAN und BT)

  2. Den ESP32-Code hier herunterladen (flora.ino und config.h)
    GitHub - sidddy/flora: ESP32 BLE client for Xiaomi Mi Plant sensors

  3. Diese Anleitung durchgehen:
    http://chrigi.me/wordpress/mi-flora-gateway/
    Ich musste zusätzlich nur die MQTT-Biliothek installieren (EspMQTTClient):
    grafik

Ist alles in der Arduino IDE vorbereitet, kann man das Programm öffnen.
In der config.h trägt man dann seine Daten ein:

  • WLAN-Anmeldedaten
  • MQTT-Anmeldedaten + Topic
  • MAC-Adresse der Sensoren. Zum Suchen kann man die Android-App “BLE Scanner” verwenden.
  • Leseintervalle

Nach dem Flashen startet der ESP bei mir direkt das Programm. Die Ausgaben kann man im Seriellen Monitor gleich prüfen (115200 Baud wählen!):
grafik

Für <10€ Einsatz ist das eine sehr praktische Ergänzung und Homey kann an seinen angestammten Platz zurück.
Für die Integration in Homey braucht man natürlich noch den MQTT-Client und muss die Topic abonieren. Aber wer bis hier durchgehalten hat schafft das auch noch :wink:

Edit: Ich habe noch den Code ergänzt, damit die Inhalte als “retained” an MQTT gesendet werden und die Temperatur zuvor gerundet wird. Wer Hilfe braucht, kann gern fragen…

5 Likes