Der Spieltrieb und die Neugier waren einfach zu groß.
Also wurde ein ESP32 bestellt und getestet
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?
-
Einen ESP32 bestellen (Developer Board mit WLAN und BT)
-
Den ESP32-Code hier herunterladen (flora.ino und config.h)
GitHub - sidddy/flora: ESP32 BLE client for Xiaomi Mi Plant sensors -
Diese Anleitung durchgehen:
http://chrigi.me/wordpress/mi-flora-gateway/
Ich musste zusätzlich nur die MQTT-Biliothek installieren (EspMQTTClient):
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!):
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
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…