ESP32 Zigbee über Zigbee2MQTT

Hallo HA- Community,

beschäftige mich seit ein paar Monaten mit HA; habe auch schon einige Geräte integriert (Homematik Thermostate, Sensoren, Zigbee- Geräte), auch die Problematik zu langsam und Probleme mit Updates gelöst → der Rasp3 war überfordert, Wechsel auf einen NUC

will mich jetzt in den ESP32 reindenken, nutze dazu Software Arduino und ein Kit ESP32-H2-DEV-KIT-N4

Klappt mit dem Bsp- Programm: Zigbee_Color_Dimmable_Light gut → kann über HA die LED mehrfarbig auf dem Bord steuern.

Ich will aber eigentlich den Analog Eingang verwenden. Dazu gibt es das Bsp- Programm: Zigbee_Analog_Input_Output. Anlernen funktioniert, aber es kommt keine Enität mit dem Analogwert. Wer hat ein Bsp- Programm dafür schon mal erstellt – bzw. wo zu finden?

Hoffe auf Hilfe und Danke schon mal

BG Uwe

1 „Gefällt mir“

Hast Du dir schonmal ESPhome angesehen?

Um einen ESP in Home Assistant einzubinden, ist damit kein Zigbee nötig, da ESPHome nativ mit HA kommuniziert. Erleichtert die Sache wahrscheinlich. Außer du willst Arduino lernen, dann ist dass ggf. was anderes. ESPHome erfordert keine Arduino Kenntnisse und versteckt das weitestgehend vor dem Anwender. Die Konfiguration erfolgt rein über eine YAML Definition der gewünschten Komponenten in ESPHome.

Hi,
ich denke man kann sich in die Arduino- Software als auch in ESP Home mit yaml einarbeiten
mein Ziel ist es einen Sensor zu bauen der analoge Spannungen misst und die an HA funkt (z.B.will ich den Strom der Klingel erfassen → dann Nachricht, oder mit einer Stromzange im 230V Netz die Leistung erfassen);
WIFI ist aber problematisch, da es nicht bis in die letzte Ecke bei mir reicht; Zigbee kein Problem, da ich schon ein größeres Mash- Netzwerk habe
deshalb wäre es schön, man könnte auf ein Bsp. zurückgreifen könnte, ob nun Arduino oder ESP Home (kann mir nicht vorstellen, dass da noch keiner auf die gleiche Idee gekommen ist)

1 „Gefällt mir“

ESPHome eignet sich halt nicht oder nur bedingt für batteriebetriebene Geräte. Toll wäre, wenn es eine ähnlich einfache und universelle Lösung wie ESPhome (oder Tasmota) für Zigbee / Matter gäbe (z.B. mit dem ESP32-C6). Mir ist diesbezüglich leider keine Lösung bekannt.

Hi,

ich habe es nun endlich geschafft, ein Bsp- Programm von Espressif so zu modifizieren, dass mir 3 analoge Spannungen über Zigbee an HA übermittelt werden. Allerdings nicht über die Software ESPHome sondern über Arduino. (Hardware: ESP32-H2-DEV-KIT).

Ziel ist es, mal Sensoren anzuschließen und das ganze über Batterie zu betreiben. Das sollte möglich sein, wenn man den DeepSleep Modus verwendet. Dann braucht der ESP32 nur 40µA (gemessen). Wenn man dann z.B. nur aller 60sec den ESP aufweckt, die Messungen machen lässt und die Daten sendet (wie erprobt) sollte es mit Batterien gehen. Angenommen es fließen für 1sec 100mA (kann ich ohne Speicher- Oszi nicht messen), kommt man auf ca. 5mW, macht bei 3 AA- Batterien ca. 2 Monate. Das lässt sich bei Vergrößern der Pausenzeit beliebig verlängern.

1 „Gefällt mir“

Hallo @Uwe26 ich habe ähnliches vor, bzw. begonnen, aber es ist in Summe ein Themenkomplex der sich nicht mit einer einzigen Antwort zufrieden gibt. Vielmehr muss man ein paar Designentscheidungen treffen.
d1) Sensor oder Aktor
d2) Stromversorgung (Permanent/Batterie)
d3) Verbindung zum HA direkt oder über Integration/Hub
d4) Wahl des geeigneten Mikrocontrollers und Hardware
Der ESP32 ist ja eine Familie von Mikrocontrollern, alle mit etwas unterschiedlichen Ressourcen und Eigenschaften.
ESPHome selbst ist ausgelegt für Espressif-Chips die sich mit der ESPHome-Eigenen Firmware per IP, also via WLAN oder LAN zum HA verbinden. WLAN ist, wie Du beschreibst, für Dich keine gute Option aufgrund des Standortes und fällt somit raus. Auch der geplante Batteriebetrieb schließt WLAN oft aus. Für Zigbee wäre der ESP32-C6 (der kann auch WLAN) oder der stromsparendere ESP32-H2 eine gute Wahl, die aber kann man mit ESPHome nicht nutzen.
Du beschreibst praktisch nur Sensoren, d.h. es wäre ok wenn das “Device” bei einer bestimmten Größenänderung oder von Zeit zu Zeit den Zustand sendet, es muss nicht dauerhaft auf eingehende Kommandos prüfen wie z.B. bei einem Relais. Solche Sensoren lassen sich besser auf Batteriebetrieb umsetzen. Um Strom zu sparen legt man seinen ESP schlafen solange z.B. niemand klingelt. Das drücken der Taste, bzw. die daraus resultierende Spannung führt man über eine geeignete Schutzbeschaltung (im einfachsten Fall eine Diode, Spannungsteiler, Z-Diode, Blockkondensator) auf einen als Wakeup geschalteten GPIO. Dieser weckt den ESP auf, der verbindet sich via Zigbee über den Coordinator mit HA und ändert den Status der bereitgestellten Entität. Damit HA das Device nicht als Offline sieht muss es das auch periodisch selbst mal tun ohne das jemand klingelt.
So kann ein Gerät mit einem geeigneten Akku/Einwegbatterie mehrere Monate oder gar Jahre betrieben werden. Ich habe in einem anderen Projekt den Stromverbrauch des ESP32-H2 mittels Nordic Power Profiler gemessen und verbessert. Da kommt man schon runter auf wenige µA im Sleep.
Ich programmiere den ESP aber nicht mit Arduino sondern VS Code und natürlich ESP-IDF, aber das sollte grundsätzlich egal sein.
Die Herausforderung ist auf jeden Fall den eigenen Zigbee-Stack so aufzubauen das er zu HA passt. Zigbee ist nämlich nicht gleich Zigbee… :wink:

ESPHome eignet sich halt nicht oder nur bedingt für batteriebetriebene Geräte. Toll wäre, wenn es eine ähnlich einfache und universelle Lösung wie ESPhome (oder Tasmota) für Zigbee / Matter gäbe (z.B. mit dem ESP32-C6). Mir ist diesbezüglich leider keine Lösung bekannt.

Wie ich bereits in einem anderen Thread hier berichtet habe kann ESPHome mittlerweile von Haus aus Thread. Die Kommunikation läuft zwar weiterhin über die ESPHome API, der Datenaustausch findet allerdings über das Thread-Netzwerk statt.

Hallo Oliver,

freut mich, dass jemand ähnliche Projekte in Planung hat; Danke für die Nachricht,

Also ich beschäftige mich seit einiger Zeit (als Hobby gegen lange Weile) mit HA und dem ESP. Wobei ich sagen muss, dass ich eher in der Hard- als in der Software mich ein wenig auskenne.

Ziel meines Projektes soll es sein, meinen Energieverbrauch zu monitoren. Ja es gibt dazu auch super Lösungen wie z.B. bitShakeSmartMeter oder anderes, aber ich wollte was eigenes bauen. Ich will die 3 Phasen für den Verbrauch sowie eine Phase – Einspeisung Solaranlage anzapfen.

Ich habe mich für den ESP32-H2 entschieden, der kann auch Zigbee und ist stromarm. Es sollte ja ein batteriebetriebenes Gerät werden (kein Netzteil, oder direkt ans Netz). Das sollte auch funktionieren → gemessen 50mA aller 60sec für 0,4sec = 1mW + 1mW (Dauer ESP 32 + Auswerteschaltung) ergibt mit 3 x AAA ca. 3 Monate Haltbarkeit der Akkus.

Das Programm (in Arduino) macht das: (kann ich gern bereitstellen):

- Deep Sleep Mode, aufwachen durch internen Timer

- messen von 3 Analogwerten (muss noch erweitert werden auf 5)

- senden über Zigbee an HA

Das Anlernen in HA über Zigbee2MQTT war etwas tricky. Hat aber geklappt, habe ein Gerät mit den 3 Enitäten, somit nutzbar. Die Werte müssen dann natürlich noch über eine Formel zu den richtigen Watt Werten umgerechnet werden.

Als Sensoren will ich den QNCTK1-10 10A-10mA verwenden. Dazu eine Auswerteschaltung mittels Präzisionsgleichrichter (CMOS, Rail-to-Rail Input/Output Operational Amplifiers). Das 4 x, sowie ein Spannungsregler LT1512-3.3.

Stand ist:

- Programm Arduino fertig, muss aber noch angepasst werden

- Präzisionsgleichrichter simuliert

- z.Z. Design Layout (Eagle)

- dann Materialbeschaffung

- dann irgendwann Test (aber wie gesagt Hobby)

BG Uwe

Als mein Meross MSG100 Garagentor-Controller nach zwei Jahren Betrieb ausfiel, sah ich darin die perfekte Gelegenheit für ein DIY-Projekt. Ich entschied mich für den ESP32-C6 von Seeed, ein kompaktes Board mit nativer Thread-Unterstützung. Die Implementierung über Thread war überraschend unkompliziert und das Ergebnis funktioniert hervorragend und stabil.

cover