Hallo Zusammen,
ich habe da ein kleines Problem mit dem erzeugen von Reading aus einem JSON String :-(
als erstes das List vom Device ;-)
Internals:
DEVICETOPIC mqtt2.device.ikea.gw.1
IODev mqtt2.client.ikea.gw
LASTInputDev mqtt2.client.ikea.gw
MSGCNT 5
NAME mqtt2.device.ikea.gw.1
NR 10
STATE ???
TYPE MQTT2_DEVICE
mqtt2.client.ikea.gw_MSGCNT 5
mqtt2.client.ikea.gw_TIME 2018-12-22 23:17:50
JSONMAP:
9054 unknown00
9055 unknown01
9059 unkonwn02
9060 timestamp
timeserver GW_9023
version 9029
OLDREADINGS:
READINGS:
2018-12-22 23:17:50 GW_9023 0.tradfri.pool.ntp.org
2018-12-22 23:17:50 GW_9029 1.4.15
2018-12-22 23:17:50 GW_9054 0
2018-12-22 23:17:50 GW_9055 0
2018-12-22 23:17:50 GW_9059 1545517072
2018-12-22 23:17:50 GW_9060 2018-12-22T22:17:52.031856Z
2018-12-22 23:17:50 GW_9061 0
2018-12-22 23:17:50 GW_9062 0
2018-12-22 23:17:50 GW_9066 5
2018-12-22 23:17:50 GW_9069 1530601679
2018-12-22 23:17:50 GW_9071 2
2018-12-22 23:17:50 GW_9072 3
2018-12-22 23:17:50 GW_9073 31
2018-12-22 23:17:50 GW_9074 1
2018-12-22 23:17:50 GW_9075 0
2018-12-22 23:17:50 GW_9076 10
2018-12-22 23:17:50 GW_9077 27
2018-12-22 23:17:50 GW_9078 1
2018-12-22 23:17:50 GW_9079 0
2018-12-22 23:17:50 GW_9080 60
2018-12-22 23:17:50 GW_9081 7e181152044000dc
2018-12-22 23:17:50 GW_9082 true
2018-12-22 23:17:50 GW_9083 777-97-773
2018-12-22 23:17:50 GW_9092 0
2018-12-22 23:17:50 GW_9093 0
2018-12-22 23:17:50 GW_9105 0
2018-12-22 23:17:50 GW_9106 0
2018-12-22 23:17:50 GW_9107 0
2018-12-22 23:17:50 GW_9200 7180d002-afe6-49d2-805e-b31fa107818a
Attributes:
IODev mqtt2.client.ikea.gw
jsonMap timeserver:GW_9023
version:9029
9054:unknown00
9055:unknown01
9059:unkonwn02
9060:timestamp
readingList ikea/raw/15011/15012.* { Log3 'MQTT2', 0, $EVENT; Log3 'MQTT2', 0, $JSONMAP; json2nameValue( $EVENT, 'GW_', $JSONMAP )}
room MQTT2
im Log bekomme ich dann folgendes:
2018.12.22 23:17:50.254 0: {"9023":"0.tradfri.pool.ntp.org","9093":0,"9062":0,"9059":1545517072,"9080":60,"9029":"1.4.15","9060":"2018-12-22T22:17:52.031856Z","9077":27,"9061":0,"9071":2,"9081":"7e181152044000dc","9082":true,"9073":31,"9083":"777-97-773","9076":10,"9054":0,"9066":5,"9055":0,"9069":1530601679,"9072":3,"9074":1,"9075":0,"9078":1,"9200":"7180d002-afe6-49d2-805e-b31fa107818a","9079":0,"9092":0,"9107":0,"9106":0,"9105":0}
2018.12.22 23:17:50.254 0: $defs{mqtt2.device.ikea.gw.1}{JSONMAP}
das JSON ist valide ;-)
meinem Verständnis nach sollte das Attribut jsonMap
doch aus oldName --> newName machen
im obigen Beispiel funktioniert das Mapping imho nicht :-(
9023 soll bei mir timeserver werden und ich habe schon alles mögliche ausprobiert zu Mappen ;-)
Weiss da jemand einen Rat? Oder einen anderen gangbaren Weg? Userreading würde gehen - macht aber für meinen Fall EXTREM viel Arbeit
Ich habe es bislang nicht nachgestellt, aber meiner Interpretation nach sollte
jsonMap timeserver:GW_9023
version:9029
9054:unknown00
9055:unknown01
9059:unkonwn02
9060:timestamp
eher so aussehen
jsonMap
GW_9023:timeserver
GW_9029:version
GW_9054:unknown00
GW_9055:unknown01
GW_9059:unkonwn02
GW_9060:timestamp
danke,
hatte ich auch schon probiert und gerade nach dem Update auch noch einmal ;-)
attr mqtt2.device.ikea.gw.1 jsonMap timeserver:GW_9023\
version:9029\
GW_9054:unknown00\
9055:unknown01\
9059:unkonwn02\
9060:timestamp
jetzt sollte ich eigentlich wieder alle Varianten im jsonMap haben ...
Bug bei mir? gefunden ;-)
man nehme die Punkte aus dem FHEM-Devicenamen ....
jetzt bekomme ich das Reading auch aus der jsonMap ;-)
Hallo,
ich habe gerade die selbe Erfahrung sammeln müssen und dabei ca. 10 Stunden Arbeit für das Problem verschwendet. Ich fände es super, wenn dieses Thema entsprechend mit einem Hinweis in der Command Ref. Bedeutung findet.
Gruß Florian
Ich habs lieber gefixt.