FHEM > Anfängerfragen

Tasmota/ MQTT: Parse JSON Reading

(1/5) > >>

hkspks:
Hallo zusammen,

gibt es eine charmante Möglichkeit, den Tasmota-JSON-Response "SENSOR" direkt in Einzel-Readings zu überführen?

Aktuell packt er mir nachvollziehbar den JSON-String in ein Reading "Sensor". Klar, könnte ich da jetzt ein Notify drauf setzen und mit Codings hantieren - ggf. gibt es aber ja eine charmantere Möglichkeit? Ich hätte gerne die Energiewerte direkt als einzelne Readings im Device.


--- Code: ---defmod Steckdose MQTT_DEVICE
attr Steckdose subscribeReading_Sensor tele/tasmota_EE34E1/SENSOR
setstate Steckdose 2022-12-01 15:15:20 Sensor {"Time":"2022-12-01T15:15:20","ENERGY":{"TotalStartTime":"2022-10-14T12:15:23","Total":1.323,"Yesterday":0.470,"Today":0.288,"Period": 4,"Power":45,"ApparentPower":77,"ReactivePower":63,"Factor":0.57,"Voltage":237,"Current":0.326}}

--- Ende Code ---

Ggf. ist es möglich, einzelne Readings zu definieren und dann darin direkt Perl-Code auszuführen, der das richtige Datenelement aus dem JSON extrahiert:


--- Zitat ---attr <name> subscribeReading_<reading> [{Perl-expression}] [qos:?] [retain:?] <topic>
mapps a reading to a specific topic. The reading is updated whenever a message to the configured topic arrives.
QOS and ratain can be optionally defined for this topic.
Furthermore, a Perl statement can be provided which is executed when the message is received. The following variables are available for the expression: $hash, $name, $topic, $message. Return value decides whether reading is set (true (e.g., 1) or undef) or discarded (false (e.g., 0)).
--- Ende Zitat ---

z.B. attr Steckdose subscribeReading_EnergyTotal PERL_EXTRAKT_CODE(tele/tasmota_EE34E1/SENSOR)

Falls ja, ggf. hat ja jemand ein Snippet für mich ;-)

LG, Christian

OdfFhem:
Bei MQTT_DEVICE wird (oft) expandJSON verwendet.

s. https://forum.fhem.de/index.php/topic,100187.msg936219.html#msg936219 und natürlich die gerätespezifische FHEM-Hilfe.

Otto123:
Hi,

"charmanter" wäre mit MQTT2_DEVICE und attrTemplate zu hantieren ;)

Gruß Otto

hkspks:
Cool, das hat geklappt. Jetzt habe ich an 6 Geräten ein Reading Energy_Today reading.

Was wäre der Goldstandard, um die Werte täglich abzugreifen, wegzuschreiben, zu aggregieren und zu plotten? Überlege mir ein kleines Energiereporting a la ein Barchart mit einer Säule je Tag und die Säule unterteilt in die Geräte 😉

Quasi eine kleine DWH Anwendung ^^

Sany:

--- Zitat ---um die Werte täglich abzugreifen, wegzuschreiben, zu aggregieren und zu plotten? Überlege mir ein kleines Energiereporting a la ein Barchart mit einer Säule je Tag und die Säule unterteilt in die Geräte
--- Ende Zitat ---

schau mal hier, sowas in der Art gibts schon.
https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Anwendungsbeispiele_mit_card
Laut Damian Work in progress, es wird erweitert und Säulendiagramme kommen...
Ist aber nicht copy-paste, jedenfalls nicht der Anzeigeteil. Einarbeitung in DOIF-perl und uiTable ist schon erforderlich.


Gruß


Sany

edit: link vergessen ::)

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln