Ein Smart-Thermometer in jedem Raum für 10 €: Bluetooth-Sensoren + ESP32 + automatische MQTT-Erkennung von Gladys

Hallo, Gladys-Community!

Ich bin der Entwickler von OpenMQTTGateway und Theengs, und ich habe mich in letzter Zeit mit Pierre-Gilles über die Integration in Gladys unterhalten. Ein erster Schritt ist die MQTT-Integration mit Auto-Discovery. Hier ist ein von Claude verfasster Leitfaden, der beschreibt, wie das mit einem kleinen Bluetooth-Thermometer mit Display, ThermoPro oder Xiaomi, für 10 € gekauft, um die Luftfeuchtigkeit oder Temperatur zu überwachen, funktioniert.

Was nur wenige wissen: Diese Sensoren senden ihre Messungen ständig per Bluetooth Low Energy — und Gladys kann sie jetzt automatisch abrufen.

Kostenvergleich für die Ausstattung von 8 Räumen mit Zigbee:

Lösung Kosten für 8 Räume
Zigbee (Sonoff SNZB-02P ~14 € + Dongle ~25 €) ~135 €
BLE ThermoPro (~9 €/Stück im Paket) + ESP32 8 € ~80 €
BLE Xiaomi LYWSD03MMC ~5 € (nächster Leitfaden) + ESP32 8 € ~48 €

Und im Gegensatz zu Zigbee: integriertes LCD-Display an jedem Sensor (lesbar ohne Gladys zu öffnen), Knopfzelle, die etwa 1 Jahr hält, und die Sensoren, die Sie bereits besitzen, zählen 0 €. Es reicht eine « Antenne », um sie zu hören: ein ESP32 für ~8 €, geflasht mit OpenMQTTGateway, das mehr als 120 Sensormodelle decodiert und sie per MQTT veröffentlicht.

Und die Kirsche auf dem Kuchen: Die MQTT-Integration von Gladys unterstützt nun die automatische Erkennung (Home Assistant Discovery-Format, angekündigt von Pierre-Gilles hier) — dafür ist Gladys 5 erforderlich, damit sie mit OpenMQTTGateway funktioniert. Ergebnis: Die Sensoren erscheinen automatisch in Gladys, mit ihren bereits konfigurierten Funktionen. Kein MQTT-Topic muss manuell eingegeben werden.

Hier ist das Prinzip:

  BLE-Sensoren (5-10 €)        ESP32 + OpenMQTTGateway (~8 €)
  ┌──────────────┐
  │ ThermoPro    │ )))
  ├──────────────┤              ┌─────────────┐
  │ Xiaomi T301  │ ))) ~~BLE~~> │    ESP32    │
  ├──────────────┤              │     OMG     │
  │ Mi Flora     │ )))          └──────┬──────┘
  └──────────────┘                     │ WiFi / MQTT
                                       ▼
                              ┌─────────────────┐
                              │ Broker Mosquitto│
                              │  (in Gladys)  │
                              └────────┬────────┘
                                       │
                                       ▼
                              ┌─────────────────┐
                              │ Gladys 5        │
                              │ Automatische Erkennung │
                              └─────────────────┘

Gesamtzeit: 15 Minuten. Kein Löten, kein Tool-Installation auf Ihrem PC. Los geht’s!


Benötigtes Material

Material Preis Rolle
ThermoPro TP357/TP358 ~10-12 € (günstiger im Paket von 2 oder 3) Temperatur + Luftfeuchtigkeit, mit Display — Der Star-Sensor: Null Konfiguration, von Haus aus decodiert
Govee H5075 / H5072 ~12-15 € Alternative ohne Konfiguration, mit Display, von Haus aus decodiert
Xiaomi LYWSD03MMC ~5 € Der günstigste, aber erfordert ein kleines Wireless-Flashing — das wird Gegenstand eines nächsten Leitfadens sein
Mi Flora HHCCJCY01 ~12-15 € Pflanzensensor (Bodenfeuchtigkeit, Licht, Fruchtbarkeit)
SwitchBot Meter ~15 € Temperatur + Luftfeuchtigkeit, mit Display
ESP32 (irgendein Entwicklungsboard-Modell oder M5Stack) ~8 € BLE → MQTT Antenne
USB-Kabel bereits in einer Schublade Stromversorgung des ESP32

Warum der ThermoPro TP357 als Star-Sensor? Er wird von Haus aus von Theengs Decoder decodiert (kein Flashing, keine App, kein Schlüssel: man setzt die Batterie ein und er sendet im Klartext), er hat ein Display, er ist überall auf Amazon.fr erhältlich (oft ~8-9 €/Stück im Paket von 2 oder 3), und er ist einer der Sensoren in meinem echten Setup. Die Aussage « 15 Minuten » hält mit ihm.

Auf meiner Seite: ein M5Stack (ESP32) geflasht mit OpenMQTTGateway v1.8.x (esp32 BLE Binärdatei), und eine Handvoll ThermoPro-, Xiaomi- und SwitchBot-Sensoren. Aber jeder ESP32 für 8 € macht genau die gleiche Arbeit.

:light_bulb: Ein einzelner ESP32 deckt etwa 10 m im Umkreis ab. Für ein großes Haus: Stellen Sie einen pro Etage auf — sie veröffentlichen alle auf demselben Broker, Gladys wird keinen Unterschied sehen.


Schritt 1 — Gladys aktualisieren + MQTT-Broker aktivieren (2 min)

:warning: Zuerst: Aktualisieren Sie auf Gladys 5!

Die automatische Erkennung wurde in Version 4.86 eingeführt, aber die Versionen 4.x lehnten die « Wildcard »-Status-Topics ab, die von OpenMQTTGateway verwendet werden. Wenn Sie diese Meldung in den Gladys-Logs sehen:

ignoring state topic +/+/BTtoMQTT/xxx, wildcards are not allowed

…dann sind Sie nicht auf Gladys 5, die den Fix enthält. Wenn Sie Watchtower verwenden (empfohlene Docker-Installation), erfolgt das Update automatisch. Andernfalls aktualisieren Sie den Gladys-Container, bevor Sie fortfahren.

Dann: MQTT-Broker mit einem Klick

  1. Gehen Sie zu Integrationen, geben Sie « mqtt » in die Suche ein und öffnen Sie MQTT Virtual Devices.

  1. Im Tab Setup aktivieren Sie den Schalter « Use broker in a Docker container ». Ein blauer Kasten warnt Sie, dass ein Mosquitto-Broker auf Port 1883 gestartet wird: Klicken Sie auf « Install broker on Docker ».

  1. Nach der Installation zeigt der Bildschirm « Connected to the MQTT broker with success! » und die Konfiguration an:
    • Broker-URL: mqtt://localhost
    • Benutzername: gladys
    • ein generiertes Passwort (das Auge-Symbol, um es anzuzeigen) → kopieren Sie es, wir werden es in Schritt 3 benötigen.

Der Broker hört auf Port 1883 der IP Ihres Gladys-Servers, der von jedem Gerät im lokalen Netzwerk erreichbar ist. Notieren Sie diese IP (Beispiel: 192.168.1.117).


Schritt 2 — OpenMQTTGateway über den Browser flashen (5 min)

Es ist nicht nötig, etwas zu installieren: Das Flashen erfolgt direkt über den Browser dank Web Serial.

  1. Schließen Sie den ESP32 per USB an Ihren Computer an.

  2. Öffnen Sie Chrome oder Edge (Firefox und Safari unterstützen Web Serial nicht) und gehen Sie zu:

    :backhand_index_pointing_right: (Option 1) Upload from the web | Theengs OpenMQTTGateway v1.8.1

  3. In der Liste der Binärdateien wählen Sie esp32dev-ble aus.

  4. Klicken Sie auf Connect, wählen Sie den seriellen Port Ihres ESP32 aus und dann Install.

  5. Warten Sie 2-3 Minuten während des Flashens. :hot_beverage:

Das war’s. Der ESP32 startet mit OpenMQTTGateway an Bord, inklusive Theengs Decoder (dem Decoder für die 120+ BLE-Sensormodelle).


Schritt 3 — WiFi und MQTT des ESP32 konfigurieren (5 min)

Beim ersten Start kennt der ESP32 Ihr Netzwerk noch nicht: Er erstellt seinen eigenen WiFi-Hotspot.

  1. Auf Ihrem Telefon oder Computer verbinden Sie sich mit dem vom ESP32 erstellten WiFi-Netzwerk (Name des Typs OpenMQTTGateway).
  2. Ein Konfigurationsportal öffnet sich (andernfalls öffnen Sie 192.168.4.1 im Browser).
  3. Geben Sie an:
Feld des Portals Wert
SSID / WiFi-Passwort Ihr WiFi-Netzwerk
mqtt server die IP Ihres Gladys-Servers (z. B. 192.168.1.17)
mqtt port 1883
mqtt user gladys
mqtt pass das Passwort kopiert vom MQTT-Bildschirm von Gladys in Schritt 1
mqtt base topic home/ (:warning: Standardwert beibehalten!)

  1. Bestätigen Sie. Der ESP32 startet neu und verbindet sich mit Ihrem WiFi und dem Gladys-Broker.

Ab diesem Zeitpunkt scannt er BLE alle ~55 Sekunden und veröffentlicht jeden decodierten Sensor auf einem Topic wie:

home/+/BTtoMQTT/+/+/state

```m-gateway>/BTtoMQTT/<MAC-des-Sensors>

Zum Beispiel für ein ThermoPro TP357:

{"tempc": 26.6, "hum": 88, "batt_low": true}

Oder für mein Oria T301 (ein Xiaomi-Klon, dessen Werksfirmware im Klartext sendet, MAC in A4:C1:38...):

{"tempc": 26.3, "hum": 62, "batt": 100}

Und vor allem veröffentlicht es die Discovery-Konfigurationen (retained) auf homeassistant/.../config — genau das, was die neue MQTT-Integration von Gladys lesen kann. :smiling_face_with_sunglasses:


Schritt 4 — Geräte in Gladys entdecken (2 min)

Gehen Sie zurück zu Gladys: Integrationen → MQTT Virtual Devices → Discovery-Tab.

Magie: Ihre Sensoren sind da, mit ihrem Namen, Modell und ihren Features (Temperatur, Luftfeuchtigkeit, Batterie…) bereits erkannt.

  1. Klicken Sie auf jedes Gerät, um es in Gladys zu erstellen.
  2. Weisen Sie ihm einen Raum zu (Schlafzimmer, Badezimmer, Keller…).
  3. Fügen Sie die Features zu Ihren Dashboards hinzu: eine Karte pro Raum mit Temperatur + Luftfeuchtigkeit, das ist sehr übersichtlich.

Einige reale Beispiele, die bei mir automatisch hochgeladen werden:

  • ThermoPro TP357/TP358: Temperatur, Luftfeuchtigkeit, Batteriealarm
  • Oria T301 (LYWSD03MMC-Klon, unverschlüsselte Werksfirmware): Temperatur, Luftfeuchtigkeit, Batterie
  • BlueCharm-Beacons: Temperatur, Beschleunigungssensor, Batteriespannung
  • SwitchBot Curtain / Blind Tilt: Position, Batterie, Lichtpegel (nur Lesezugriff — siehe Abschnitt Einschränkungen weiter unten)

:hourglass_not_done: Geduld bei der ersten Entdeckung: BLE-Sensoren senden nur alle 1 bis 10 Minuten, je nach Modell. Lassen Sie es 10 Minuten laufen, bevor Sie schließen, dass es nicht funktioniert.


Schritt 5 — Nützliche Szenen mit all dem

Jetzt, wo jeder Raum seine Temperatur und Luftfeuchtigkeit meldet, einige Ideen für Szenen, die das Leben verändern:

:cold_face: Frostalarm (Keller, Garage, Gewächshaus)

  • Auslöser: Keller-Temperatur < 3 °C
  • Aktion: Telegramm-Nachricht senden „:warning: Frostgefahr im Keller (2,1 °C), denken Sie an die Rohre!“

:shower: Badezimmerfeuchtigkeit → Lüftung

  • Auslöser: Badezimmer-Luftfeuchtigkeit > 70 %
  • Aktion: Lüftung einschalten (Smart Steckdose)
  • Und die umgekehrte Szene: Luftfeuchtigkeit < 55 % → Lüftung ausschalten.

Mit dem ThermoPro bei 88 % Luftfeuchtigkeit, wie oben gesehen, läuft die Lüftung nach jeder Dusche. :grinning_face_with_smiling_eyes:

:thermometer: Weinlagerüberwachung

  • Auslöser: Keller-Temperatur > 16 °C während des Tages
  • Aktion: Benachrichtigung + Diagramm im Dashboard, um die Abweichung über das Jahr zu verfolgen.

Ehrliche Grenzen (und was kommt noch)

Seien wir transparent, nicht alles ist noch perfekt:

  • Die Steuerung der SwitchBot-Aktoren (Curtain, Blind Tilt) wird noch nicht von der Gladys-Entdeckung unterstützt. Ihre Sensoren melden sich sehr gut (Position, Batterie, Lichtpegel), aber die cover-Entitäten mit Neigung und die Command Templates, die von OpenMQTTGateway verwendet werden, werden noch nicht unterstützt. Also: Lesezugriff ja, Steuerung nein — vorerst.
  • Die Entdeckung deckt klassische Sensoren (Temperatur, Luftfeuchtigkeit, Batterie usw.) ab. Exotischere Entitäten können ignoriert werden.
  • Auf Gladys-Seite ist eine native Bluetooth-Integration in der Spezifikation — die Diskussionen sind auf diesem Thema eröffnet. Langfristig könnte man sich vorstellen, auf MQTT für BLE zu verzichten. Bis dahin ist die OpenMQTTGateway + MQTT-Entdeckung die beste Lösung, und sie ist sehr robust.

Fehlerbehebung: Die 5 klassischen Fallstricke

1. Nichts erscheint im Discovery-Tab, und die Gladys-Logs sagen ignoring state topic +/+/BTtoMQTT/xxx, wildcards are not allowed → Ihr Gladys ist nicht auf dem neuesten Stand: Sie benötigen Gladys 5. Aktualisieren Sie (Watchtower tut dies automatisch) und starten Sie den ESP32 neu, damit er seine Konfigurationen neu veröffentlicht.

2. Sie haben das Basisthema geändert → Lassen Sie das Basisthema auf home/ (Standardwert). Das ist das erwartete Format, personalisieren Sie es nicht.

3. „Es funktioniert nicht“ nach 2 Minuten → BLE-Sensoren senden nur alle 1 bis 10 Minuten je nach Modell. Bei der ersten Entdeckung lassen Sie es 10 Minuten laufen. Der ESP32 scannt alle ~55 s.

4. Immer noch nichts nach 10 Minuten → Überprüfen Sie, ob der ESP32 mit dem Broker verbunden ist: Er veröffentlicht seinen Status (LWT) auf dem Thema home/<gateway-name>/LWT, der online sein muss. Sie können dies mit MQTT Explorer oder mit:

mosquitto_sub -h <IP-Gladys> -u gladys -P <password> -t "home/+/LWT" -v

Wenn es offline oder leer ist: Überprüfen Sie die IP des Brokers, Port 1883, den Benutzernamen gladys und das Passwort, das Sie aus Gladys kopiert haben.

5. Ein Sensor im hinteren Garten meldet sich nie → Die BLE-Reichweite beträgt etwa 10 m (inklusive Wände, das ist schnell weniger). Die Lösung ist einfach und günstig: Fügen Sie einen zweiten ESP32 hinzu (einer pro Etage, einer in der Garage…), alle auf demselben Broker konfiguriert. Gladys fusioniert alles natürlich.


Fazit

Für weniger als 20 € (1 ESP32 + 1 ThermoPro) haben Sie ein erstes verbundenes Thermometer, das automatisch in Gladys erscheint, ohne das geringste Sensor-Flashing — und wenn ein ThermoPro oder ein Xiaomi bereits bei Ihnen zu Hause herumliegt, ist Ihr erster Sensor kostenlos. Anschließend kostet jeder zusätzliche Raum nur noch ~10 €.

:pushpin: Nächster Tutorial: Der Xiaomi LYWSD03MMC für 5 € — das beste Preis-Leistungs-Verhältnis auf dem Markt, zum Preis eines kleinen 2-minütigen Wireless-Flashings aus dem Browser. Bleiben Sie dran!

  • :stopwatch: 15 Minuten Einrichtungszeit
  • :wrench: Kein Löten, keine obligatorische Befehlszeile
  • :battery: 1 Jahr Akkulaufzeit
  • :house: 120+ unterstützte Sensormodelle

Ein großes Dankeschön an Pierre-Gilles für die automatische MQTT-Entdeckung, die all das ohne manuelle Konfiguration möglich macht. :folded_hands:

Und Sie, welche BLE-Sensoren haben Sie zu Hause? Teilen Sie Ihre Payloads und Szenen in den Antworten!

Super interessant alles das!! Danke! :wink: