====== ESP32-C6 basierter Zigbee SML IR-Lesekopf ====== Auslesen eines Smartmeter-Stromzählers mit einem Volkszähler-Lesekopf (IR TTL Lesekopf) und Senden der gelesenen Daten über Zigbee mithilfe eines ESP32-C6. Es werden nur Stromzähler unterstützt, die Daten im SML Format senden. ===== Benötigte Hardware ===== Es wird ein Volkszähler-Lesekopf, ein ESP32-C6 und ein USB-Netzteil benötigt. Ich habe diesen fertigen Volkszähler Lesekopf mit integriertem ESP8266 als Basis verwendet und den ESP8266 durch einen XIAO-ESP32-C6 ersetzt. Die Spannungsversorgung erfolgt weiterhin über die Micro-USB-Buchse der Volkszähler-Platine. Damit der ESP32 in das Gehäuse passt, habe ich das Gehäuse an einer Stelle etwas ausgehöhlt. Unter den ESP habe ich ein dickes Stückchen Kunststoff gelegt, damit der ESP keinen Kontakt zur Platine da drunter bekommt und nicht klappert. ===== Verdrahtung ===== {{ https://gitlab.com/clausmuus/zigbee-smartmeter-reader/-/raw/main/img/beschaltung.png?0x150}} {{ https://gitlab.com/clausmuus/zigbee-smartmeter-reader/-/raw/main/img/beschaltung-diagramm.png?0x150}} | **ESP32-C6** | **Volkszähler** | | GND | 1 GND | | 3V3 | 8 3V3 | | D6 TX GPIO16 | 5 RX | | D7 RX GPIO17 | 4 TX | ===== ESP mit Arduino IDE Flashen ===== * Board `ESP32` von Espressif Systems Installieren * Wähle das Board (XIAO_ESP32C6) unter `Tools -> Board` * Wähle den COM-Port: `Tools -> Port: xxx`, wobei `xxx` der erkannte COM-Port des ESP ist * Wähle den Zigbee-Endgeräte-Modus: `Tools -> Zigbee mode: Zigbee ED (end device)` * Wähle das Partition-Schema für Zigbee: `Tools -> Partition Scheme: Zigbee 4MB with spiffs` * Kompiliere und lade die Firmware hoch (auf den ESP) ===== Konfiguration ===== * Optional: `OBISHandlers` in der `zigbee-smartmeter-reader.ino` anpassen, falls andere Werte übertragen werden sollen. Gegebenenfalls muss dann auch die zigbee-smartmeter-reder.js angepasst werden. * Optional: `updateInterval` in der `zigbee-smartmeter-reader.ino` anpassen, falls nicht maximal alle 5 Sekunden Daten gesendet werden sollen. ===== ioBroker ===== * Den Converter `zigbee-smartmeter-reder.js` auf dem ioBroker Server nach `/opt/iobroker/iobroker-data/zigbee_0/zigbee-smartmeter-reder.js` kopieren. * In den Einstellungen der Zigbee Instanz unter `External converters` den Converter `zigbee-smartmeter-reder.js` hinzufügen. ===== Verwendung ===== * Über die gelbe User-LED wird der Status angezeigt: * 1/s Blinken - Zigbee Fehler * 5/s Blinken - Koppelmodus * 2/s Blinken - Warte auf erste Daten am IR Empfänger * 20/s Blinken - Daten werden Empfangen * Dauerleuchten - Warte auf folge Daten, nachdem Daten verstanden wurden * Alle empfangenen Daten werden gesendet * 3-mal Ein-/Ausschalten in 10 Sekunden startet den Koppelmodus erneut ===== Installation ===== * Es muss ausprobiert werden, in welcher Richtung der Lesekopf montiert werden muss. Die Zuleitung muss also nicht immer von unten kommen. Wenn das 1/2 Sekündige Blinken der LED durch ein schnelleres Flackern ersetzt wird, stimmt die Ausrichtung. ===== Projekt Homepage ===== Die sourcen für das Programm und weitere Informationen gibt es unter https://gitlab.com/clausmuus/zigbee-smartmeter-reader