Ich muss bei mir auf einen Tasmota Lesekopf für den Stromzähler umstellen, da der Eltako Enocean Zähler das neue Protokoll nicht unterstützt.
Den Lesekopf habe ich jetzt über MQTT eingebunden. Es kommen auch Events auf dem MQTT Server an, aber ich bekomme die Readingsllist zum Auslesen der Werte nicht hin...kann mir da jemand helfen?
Hier mal das List vom Device, wie es nicht funktioniert...
Internals:
CFGFN
FUUID 6acb4ccf-f33f-f491-28a8-0a9ff71f660828eb
IODev myBroker
LASTInputDev myBroker
MSGCNT 36
NAME Stromzaehler
NR 702
STATE Verbrauch: 0.0 kWh, Einspeisung: 0.00 kWh, Leistung: 0.000 W
TYPE MQTT2_DEVICE
eventCount 1
myBroker_MSGCNT 36
myBroker_TIME 2026-10-11 11:06:08
READINGS:
2026-10-11 10:46:07 IODev myBroker
Attributes:
IODev myBroker
alias Stromzaehler
autocreate 1
readingList tele/Strom/SENSOR/E_in:.* Verbrauch
tele/Strom/SENSOR/E_out:.* Einspeisung
tele/Strom/SENSOR/Power:.* Leistung
tele/Strom/SENSOR/Power2:.* Leistung2
tele/Strom/SENSOR:.* {eHZ{E_in:* Verbrauch}}
room Energie
stateFormat {sprintf("Verbrauch: %.1f kWh, Einspeisung: %.2f kWh, Leistung: %.3f W", ReadingsVal($name,"Verbrauch",undef), ReadingsVal($name,"Einspeisung",undef),ReadingsVal($name,"Leistung",undef))}
Die Werte kommen so an:
11:08:08.504
RCVD
tele/Strom/SENSOR
{"Time":"2026-10-11T10:08:08","eHZ":{"E_in":233.144,"E_out":37.027,"Power":-857,"Power2":0}}
Ich checke nicht wie ich aus diesen vielen Klammern und "" die Werte so in meine 4 vorgegebenen Werte bekomme...
1. Im Unterforum MQTT ist das besser aufgehoben, kannst du verschieben
2. mit aktivieren autocreate wird die readingslist automatisch angelegt
3. Mit
tele/Strom/SENSOR:.* {json2nameValue($EVENT)}
werden alle readings angelegt, die im json vorhanden sind
Im Wiki (https://wiki.fhem.de/wiki/MQTT2_DEVICE_-_Schritt_f%C3%BCr_Schritt#json2nameValue()) ist es erklärt. Du kannst die Readings auch umbenennen.