FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: sepultura30 am 05 April 2023, 14:32:32

Titel: Mqtt String zerlegen
Beitrag von: sepultura30 am 05 April 2023, 14:32:32
Hallo,

bekomme von meinem Stromzähler per Mqtt-String folgende Werte.

tele {"Time":"2023-04-05T13:27:40","Power":{"Total_in":502.9088,"Power_curr":342,"Total_out":0.0000}}

wie bekomme ich Total_in, Power_curr, Total_out in einzelne userReadings

Grüße

Sandro
Titel: Aw: Mqtt String zerlegen
Beitrag von: Otto123 am 05 April 2023, 15:43:32
Hi,

wenn das nicht etwas schon bekanntes ist? Hier (https://wiki.fhem.de/wiki/MQTT2_DEVICE_-_Schritt_f%C3%BCr_Schritt) schon versucht?
Ansonsten gibt es Hintergrundinfos? Was für ein MQTT Gerät usw.

Gruß Otto
Titel: Aw: Mqtt String zerlegen
Beitrag von: sepultura30 am 05 April 2023, 16:37:46
Hi,

schau dir mal das an, ist schon ein MQTT-Device

define Stromzaehler MQTT_DEVICE
attr Stromzaehler userattr tele
attr Stromzaehler IODev myBroker
attr Stromzaehler room Mosquitto
attr Stromzaehler subscribeReading_tele tele/Stromzaehler/SENSOR
#   FUUID      642c6568-f33f-784a-8816-3f3c072bea628a5c
#   IODev      myBroker
#   NAME       Stromzaehler
#   NR         8389
#   STATE      ???
#   TYPE       MQTT_DEVICE
#   eventCount 7180
#   OLDREADINGS:
#   READINGS:
#     2023-04-04 20:01:07   IODev           myBroker
#     2023-04-05 16:34:51   tele            {"Time":"2023-04-05T15:34:50","Power":{"Total_in":503.7838,"Power_curr":341,"Total_out":0.0000}}
#     2023-04-05 16:34:51   transmission-state incoming publish received
#   hmccu:
#   message_ids:
#   sets:
#   subscribe:
#     tele/Stromzaehler/SENSOR
#   subscribeExpr:
#     ^tele\/Stromzaehler\/SENSOR$
#   subscribeQos:
#     tele/Stromzaehler/SENSOR 0
#   subscribeReadings:
#     tele/Stromzaehler/SENSOR:
#       cmd       
#       name       tele
#
setstate Stromzaehler 2023-04-04 20:01:07 IODev myBroker
setstate Stromzaehler 2023-04-05 16:34:51 tele {"Time":"2023-04-05T15:34:50","Power":{"Total_in":503.7838,"Power_curr":341,"Total_out":0.0000}}
setstate Stromzaehler 2023-04-05 16:34:51 transmission-state incoming publish received



Grüße

Sandro
Titel: Aw: Mqtt String zerlegen
Beitrag von: betateilchen am 05 April 2023, 16:41:38
Das ist doch simpelstes JSON? Dafür hat FHEM Funktionen, die das erledigen.
Titel: Aw: Mqtt String zerlegen
Beitrag von: sepultura30 am 05 April 2023, 16:48:36
Zitat von: betateilchen am 05 April 2023, 16:41:38Das ist doch simpelstes JSON? Dafür hat FHEM Funktionen, die das erledigen.

Ich habe mit JSON noch nie gearbeitet ...:)
Titel: Aw: Mqtt String zerlegen
Beitrag von: sepultura30 am 05 April 2023, 18:40:42
Hallo,

hier die Lösung von mir...:)

define Stromzaehler MQTT2_DEVICE
attr Stromzaehler IODev myBroker
attr Stromzaehler autocreate 1
attr Stromzaehler icon mqtt_device
attr Stromzaehler readingList mqtt2_client:tele/Stromzaehler/SENSOR:.* { json2nameValue($EVENT,'Total_in',$JSONMAP) }
attr Stromzaehler room Mosquitto
attr Stromzaehler verbose 0
#   DEF       
#   FUUID      642d9cfc-f33f-784a-4417-c48e85dff44d6e71
#   IODev      myBroker
#   LASTInputDev mqtt2_client
#   MSGCNT     58
#   NAME       Stromzaehler
#   NR         37435
#   STATE      ???
#   TYPE       MQTT2_DEVICE
#   eventCount 59
#   mqtt2_client_MSGCNT 58
#   mqtt2_client_TIME 2023-04-05 18:39:00
#   READINGS:
#     2023-04-05 18:09:39   IODev           myBroker
#     2023-04-05 18:39:00   Total_inPower_Power_curr 590
#     2023-04-05 18:39:00   Total_inPower_Total_in 505.3588
#     2023-04-05 18:39:00   Total_inPower_Total_out 0.0000
#     2023-04-05 18:39:00   Total_inTime    2023-04-05T17:39:00
#   hmccu:
#   message_ids:
#   subscribeExpr:
#
setstate Stromzaehler 2023-04-05 18:09:39 IODev myBroker
setstate Stromzaehler 2023-04-05 18:39:00 Total_inPower_Power_curr 590
setstate Stromzaehler 2023-04-05 18:39:00 Total_inPower_Total_in 505.3588
setstate Stromzaehler 2023-04-05 18:39:00 Total_inPower_Total_out 0.0000
setstate Stromzaehler 2023-04-05 18:39:00 Total_inTime 2023-04-05T17:39:00


Grüße

Sandro
Titel: Aw: Mqtt String zerlegen
Beitrag von: betateilchen am 05 April 2023, 19:18:05
na siehste, das war doch gar nicht so schwer  8)