NEWS
Daten von ESP32 (ESPHome) per MQTT an ioBroker
-
Hallo zusammen,
ich bin noch recht frisch in der Materie, habe aber großen Spaß am Reinfuchsen. Aktuell läuft ein ioBroker auf meinem Synology NAS, und ich ergänze freudig Sensoren und Geräte. 433Mhz-Geräte sind über eine RF Bridge angeschlossen, was auch super funktioniert.
Auf meinem Balkon habe ich eine Bewässerung gebaut, die ich gerne über ioBroker steuern möchte. Ein Element davon sind mehrere Xiaomi Flower Care Geräte, die alle 30 Sekunden Werte per Bluetooth Low Energy senden (Temperatur, Feuchtigkeit, ...).
Diese Werte würde ich gerne mit einem ESP32 (auf dem ESPHome drauf ist) empfangen und per MQTT zum ioBroker schicken.
Der ESP32 ist auch schon eingerichtet und ESPHome funktioniert soweit auch. Die Werte werden eingelesen wie folgt:
sensor: - platform: xiaomi_hhccjcy01 mac_address: C4:7C:8D:62:DB:DA temperature: name: "Boden rechts Temperatur" moisture: name: "Boden rechts Feuchtigkeit" illuminance: name: "Boden rechts Licht" conductivity: name: "Boden rechts Leitfähigkeit" battery_level: name: "Boden rechts Batteriezustand"
Wenn es um den Versand per MQTT geht, komme ich aber gerade nicht weiter. MQTT an sich ist soweit eingerichtet und ein Connect zum ioBroker kommt zu Stande. Aber wie kann ich jetzt regelmässig die Daten schicken? Die Dokumentation bei ESPHome ist dürftig, und auch das Einarbeiten in MQTT hat mich nicht schlauer gemacht. Es gibt einen mqtt.publish-Befehlt, der ein Topic und eine Payload braucht. Was ich aber genau reinschreiben muss in meinem Fall, verstehe ich nicht so ganz.
Mein Ziel: ESPHome soll alle 30 Sekunden die Werte per MQTT an ioBroker schicken.
Kennt sich hier zufällig jemand etwas mit ESPHome aus und kann helfen?
1000 Dank im Voraus!
PS: Ich war unsicher bezüglich des richtigen Unterforums. Sollte es falsch sein, bitte um Info.
-
@Felias said in Daten von ESP32 (ESPHome) per MQTT an ioBroker:
Die Dokumentation bei ESPHome ist dürftig
Sprechen wir über das gleiche esphome? Eher wohl zu umfangreich, daran scheitern die meisten (Trick 17: Suchfunktion!)
Wenn dein mqtt auf beiden Seiten schon steht purzeln wahrscheinlich schon munter die Daten von esphome zu deinem broker.
Am besten mal dein logger von esphome auf VERBOSE stellen und dich darauf verbinden, entweder über die console oder den web server. Du solltest dann live deinen mqtt traffic beobachten können, genau wie hier im screenshot:
Quelle: https://esphome.io/components/logger.html#manual-tag-specific-log-levelsMein Ziel: ESPHome soll alle 30 Sekunden die Werte per MQTT an ioBroker schicken.
Darum musst du dich gar nicht erst kümmern, esphome macht das für dich. Standardmäßig werden nach einer Aktualisierung von Sensoren direkt die neuen Werte gepusht.
-
hab vielen lieben Danke für die Infos, das hat sehr geholfen Ich habe den MQTT-Adapter auf Debug gestellt, und wie vermutet erscheinen hier die Werte in der StateEngine freu.
Jetzt muss ich nur noch lernen, wie ich diese Daten weiter nutzen und aufbereiten kann
Bezüglich der Suche: Ich war auf der Homepage von ESPHome, und bin dort im Wiki unterwegs gewesen. Die Infos dort haben mich aber nicht wirklich weitergebracht. Aus jetziger Sicht ja auch völlig richtig, es läuft ja an sich auch alles. Aber bei der Suche im Web habe ich jetzt noch allzuviel hilfreiche Dinge gefunden. Aber vermutlich eher ein Fehler in user.exe
Auf jeden Fall vielen Dank für Deine Hilfe, jetzt bin ich schonmal weiter.
-
Jetzt muss ich doch nochmal fragen... ich sehe im ESPHome sehr schön, wie die Werte reinkommen:
Komisch ist, dass sich bei einem Gerät komischerweise die Daten über eine Minute Zeit lassen, beim anderen erscheinen sie alle paar Sekunden.
Außerdem sehe ich bei Debug-Ausgabe des MQTT-Adapters in ioBroker, dass die Werte auch ankommen. Allerdings in dieser Form:
(9074) onStateChange mqtt.0.balkonesp32.sensor.hochbeet_licht.state: {"val":9378,"ack":true,"ts":1588673237975,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1588673237975}
Unter den Objekten sehe ich beim MQTT-Adapter jedoch nur die Eigenschaften der Datenpunkte an sich... aber keine Daten:
Meines Verständnisses nach werden MQTT-Pakete aber mit Topic und Payload geschickt.
Daher weiss ich jetzt nicht so recht, wie ich die Werte weiterverarbeiten kann... könntest Du (oder ein anderer Leser) mir hier noch einen Tipp geben?
-
@Felias said in Daten von ESP32 (ESPHome) per MQTT an ioBroker:
Komisch ist, dass sich bei einem Gerät komischerweise die Daten über eine Minute Zeit lassen,Bezüglich der Anzeige von Sensordaten in der web server Komponente gibt es einen bekannten bug in der letzten Version.
Kannst du über as logging bestätigen das die Daten später kommen oder werden diese intern zeitgerecht verarbeitet und mittels mqtt weitergegeben?
Meines Verständnisses nach werden MQTT-Pakete aber mit Topic und Payload geschickt.
Ich habe mich (glücklicherweise) schon länger her komplett von mqtt verabschiedet (20 Jahre sind dann auch mal genug ). Für iobroker allerdings ist die native api keine alternative weil es hierfür keinen Adapter gibt....
Könnte es sein das es sich bei der mqtt message um einen json payload handelt?
-
@Felias
Hi,
um die BLE Reichweite zu erweitern wollte ich auch einen ESP32 mit ESPhome als "verlängerte Antenne" nutzen und dann die Daten via WLAN MQTT dem ioBroker zur Verfügung stellen.So weit so gut und als trial and error user hangele ich mich durch so manche Suche und Foreneinträge. Beim ESPhome bin ich bisher auf nix passendes gestoßen. Bzw. wird immer der Weg über den Home assistant genannt... wie geht das ohne? Gibts da einen howto in dem das irgendwie erklärt wird?
Bzw. kannst du mir da einen Tipp geben wie du das gemacht hast?Gruss und Danke
Gernot -
@gjo said in Daten von ESP32 (ESPHome) per MQTT an ioBroker:
Gibts da einen howto in dem das irgendwie erklärt wird?
Also grundsätzlich ist die Dokumentation auf www.esphome.io mehr als nur umfangreich. Die Suchfunktion ist deswegen essentiell
Bzw. kannst du mir da einen Tipp geben wie du das gemacht hast?
Du musst (solange iobroker die native api von esphome nicht unterstützt), einfach die mqtt Komponente verwenden.
Zum Start lohnt sich übrigens immer ein Blick in's Kochbuch
-
@OpenSourceNomad Hi, es scheint schon einen request auf github zu geben, siehe github. Daran wäre ich auch interessiert, damit die Daten dort landen, wo ich sie haben möchte und nicht im MQTT Adapter. Wobei ich offen gestanden keine Ahnung vom nativen ESPhome Protokoll habe
-
@klassisch mir ist erstmal geholfen wenn mir jemand einen Tipp geben kann wie man das ESPhome auf ein ESP32 nodeMCU bekommt. Ein Image dafür habe ich nicht gefunden und die sonst irgendwann erfolgreiche Suche nach todos / videos war erfolglos ... oder ich suche mit den falschen Stichworten.
-
@gjo said in Daten von ESP32 (ESPHome) per MQTT an ioBroker:
oder ich suche mit den falschen Stichworten.
Wie wäre es mit "Getting started"?
Sieht den Wald vor lauter Bäumen nicht?
Die ganze Webseite von esphome ist übrigens ein ziemlich umfangreiches "how to
-
@klassisch sagte in Daten von ESP32 (ESPHome) per MQTT an ioBroker:
@OpenSourceNomad Hi, es scheint schon einen request auf github zu geben, siehe github. Daran wäre ich auch interessiert, damit die Daten dort landen, wo ich sie haben möchte und nicht im MQTT Adapter. Wobei ich offen gestanden keine Ahnung vom nativen ESPhome Protokoll habe
https://forum.iobroker.net/topic/42741/esphome-beta-release?_=1614497048346
-
@dutchman vielen Dank für den Adapter und für die Erinnerung!
Nachdem mein erster Installationsversuch letzte Woche fehlging, habe ich mein System gestern auf controller v3.2.16 upgedatet.
Die Installtion hat jetzt funktioniert, controller 3.1.16 node-js v10.17.0.
Jetzt muß ich noch meine ESP32 Umgebung wieder auf Vordermann bringen und werde dann am Beispiel eines CO2 Sensors testen. -
@klassisch sagte in Daten von ESP32 (ESPHome) per MQTT an ioBroker:
Jetzt muß ich noch meine ESP32 Umgebung wieder auf Vordermann bringen und werde dann am Beispiel eines CO2 Sensors testen.
das machen wir dan gerne in dem thread weiter, CO2 sensor ist ein Binary der sollte ohne weitere Probleme direkt laufen.
Api aktivieren nicht vergessen, siehe docu Der Adapter macht nix mit MQTT -
@dutchman sagte in Daten von ESP32 (ESPHome) per MQTT an ioBroker:
Api aktivieren nicht vergessen, siehe docu Der Adapter macht nix mit MQTT
Ja, das wäre mein ToDo. Der CO2 Sensor läuft schon auf ESPHome, aber eben noch über MQTT. Muß jetzt die ESPHome-Umgebung updaten. War das letzte Mal nicht ganz einfach, ohne HomeAssist (oder wie auch immer das heißt) und unter Windows.
Dann die API im Yaml aktivieren, neu bauen und flashen (OTA hat bei mir noch nicht funktioniert, warum auch immer. -
Habe den Adapter installiert, noch nichts eingetragen und auch noch keine Aufgabe für ihn. log sagt: