FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: ch.eick am 13 Januar 2026, 14:34:53

Titel: [gelöst] MQTT JSON einzelnen Wert lesen
Beitrag von: ch.eick am 13 Januar 2026, 14:34:53
Hallo zusammen,
ich teste mich mal wieder kaput und brauche bitte einen Schubser.

Ich habe ein MQTT2_DEVICE mit dieser readingList
attr signal_receiver readingList $DEVICETOPIC:signal/in:.* {json2nameValue($EVENT)->{params}{envelope}{syncMessage}{sentMessage}{message}}\
$DEVICETOPIC:signal/in:.* signal_in_json
Es wird leider nur das signal_in_json erzeugt, jedoch fehlt mir der einzelne Wert message.
Ich habe schon sehr viel gesucht und ausprobiert, es will jedoch nicht klappen.
signal_in_json {"jsonrpc":"2.0","method":"receive","params":{"envelope":{"source":"+49172","sourceNumber":"+49172","sourceUuid":"925814d3-c417-4848-bfbf-aaf306b978bd","sourceName":"Christian","sourceDevice":3,"timestamp":1768310836528,"serverReceivedTimestamp":1768310836756,"serverDeliveredTimestamp":1768310836757,"syncMessage":{"sentMessage":{"destination":null,"destinationNumber":null,"destinationUuid":null,"timestamp":1768310836528,"message":"test","expiresInSeconds":0,"viewOnce":false,"groupInfo":{"groupId":"ik32NK0yahSjfnXJC9gmHqyGKr0okcm62Fa/9+ereJc=","groupName":"FHEM cli","revision":0,"type":"DELIVER"}}}},"account":"+49172"}}


VG  Christian
Titel: Aw: MQTT JSON einzelnen Wert lesen
Beitrag von: Beta-User am 13 Januar 2026, 15:13:11
Du musst einen HASH zurückgeben.

Also z.B. my %ret definieren, den gewünschten Datenpunkt in einen Key von %ret schreiben und die Referenz auf %ret zurückgeben.

Mobil, daher nur der prinzipielle Ablauf...
Titel: Aw: MQTT JSON einzelnen Wert lesen
Beitrag von: ch.eick am 13 Januar 2026, 15:21:52
Zitat von: Beta-User am 13 Januar 2026, 15:13:11Du musst einen HASH zurückgeben.

Also z.B. my %ret definieren, den gewünschten Datenpunkt in einen Key von %ret schreiben und die Referenz auf %ret zurückgeben.

Mobil, daher nur der prinzipielle Ablauf...
Hmm,
ich versuche mal ein Muster zu finden

{ my $ret=json2nameValue($EVENT); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret }
Titel: Aw: MQTT JSON einzelnen Wert lesen
Beitrag von: Beta-User am 13 Januar 2026, 15:29:51
Genau.

Alternativ kennt j2nV() auch Filter-Argumente, ist im Wiki zu Schritt für Schritt beschrieben.
Titel: Aw: MQTT JSON einzelnen Wert lesen
Beitrag von: rudolfkoenig am 13 Januar 2026, 15:30:57
Vorschlag:
attr signal_receiver readingList $DEVICETOPIC:signal/in:.* { {message=>json2nameValue($EVENT)->{params_envelope_syncMessage_sentMessage_message} } }
Titel: Aw: MQTT JSON einzelnen Wert lesen
Beitrag von: ch.eick am 13 Januar 2026, 15:34:43
And the winner is Rudolf...

Ich danke Euch beiden wie immer für Eure Geduld mit mir :-)

Zitat von: rudolfkoenig am 13 Januar 2026, 15:30:57Vorschlag:
attr signal_receiver readingList $DEVICETOPIC:signal/in:.* { {message=>json2nameValue($EVENT)->{params_envelope_syncMessage_sentMessage_message} } }