Hallo Zusammen,
ich bekomme eine JSON Message über Log2Syslog. Die will ich dann per expandJSON in JSON umwandeln - das klappt aber nicht. Habe im Log2Syslog bereits ein Userreading "MSG_ESP" eingebaut, um die Punkte im ursprünglichen Readingnamen als Ursache auszuschliessen, hat aber auchnich geholfen.
Any ideas?
VG timmo
Internals:
CONNECTS 75
FD 24
FUUID 5d2b3d43-f33f-b872-6c66-157ec1caf94e23c0
FVERSION 93_Log2Syslog.pm:v5.6.1-s19029/2019-03-25
INTERFACE global
MODEL Collector
MYFQDN fhemserver
MYHOST fhemserver
NAME SyslogServer
NR 279
NTFY_ORDER 50-SyslogServer
PORT 1883
PROFILE raw
PROTOCOL tcp
SEQNO 233
STATE active
TYPE Log2Syslog
HELPER:
LTIME 1563120088.53112
OLDSEQNO 221
OLDSTATE active
PACKAGE main
SSLALGO n.a.
SSLVER n.a.
TCPPADDR 192.168.178.27
VERSION 5.6.1
HIPCACHE:
192.168.178.27 ESP-49B323.fritz.box
READINGS:
2019-07-14 18:02:12 MSG_ESP {"name":"10","homematic_name":"w_lux","desc":"helligkeit","type":"number","unit":"lux","value":"3319.0"},{"name":"22","homematic_name":"w_sonne_diff_temp","desc":"sonnen_difftemperatur","type":"number","unit":"gradC","value":"8.8"},{"name":"15","homematic_name":"","desc":"sonnen_temperatur","type":"number","unit":"gradC","value":"27.2"},{"name":"16","homematic_name":"w_sonne_scheint","desc":"sonne_scheint","type":"boolean","unit":"","value":"true"},{"name":"26","homematic_name":"w_sonnenstunden_heute","desc":"Sonnenstunden_heute","type":"number","unit":"h","value":"13.1"},{"name":"12","homematic_name":"w_elevation","desc":"sonne_elevation","type":"number","unit":"grad","value":"28.7"},{"name":"13","homematic_name":"w_azimut","desc":"sonne_azimut","type":"number","unit":"grad","value":"271.3"},{"name":"30","homematic_name":"w_minuten_vor_sa","desc":"minuten_vor_sa","type":"number","unit":"min","value":"-751"},{"name":"31","homematic_name":"w_minuten_vor_su","desc":"minuten_vor_su","type":"number","unit":"min","value":"185"}],"Systeminfo":{"MAC-Adresse":"60:1:94:49:b3:23","Homematic_CCU_ip":"192.168.178.2","WLAN_ssid":"sturmnetz","WLAN_Signal_dBm":"-85","sec_seit_reset":"32496","zeitpunkt":"2019.07.14/18:02:10","firmware":"weatherman_107"}}
2019-07-14 18:02:12 MSG_ESP-49B323.fritz.box {"name":"10","homematic_name":"w_lux","desc":"helligkeit","type":"number","unit":"lux","value":"3319.0"},{"name":"22","homematic_name":"w_sonne_diff_temp","desc":"sonnen_difftemperatur","type":"number","unit":"gradC","value":"8.8"},{"name":"15","homematic_name":"","desc":"sonnen_temperatur","type":"number","unit":"gradC","value":"27.2"},{"name":"16","homematic_name":"w_sonne_scheint","desc":"sonne_scheint","type":"boolean","unit":"","value":"true"},{"name":"26","homematic_name":"w_sonnenstunden_heute","desc":"Sonnenstunden_heute","type":"number","unit":"h","value":"13.1"},{"name":"12","homematic_name":"w_elevation","desc":"sonne_elevation","type":"number","unit":"grad","value":"28.7"},{"name":"13","homematic_name":"w_azimut","desc":"sonne_azimut","type":"number","unit":"grad","value":"271.3"},{"name":"30","homematic_name":"w_minuten_vor_sa","desc":"minuten_vor_sa","type":"number","unit":"min","value":"-751"},{"name":"31","homematic_name":"w_minuten_vor_su","desc":"minuten_vor_su","type":"number","unit":"min","value":"185"}],"Systeminfo":{"MAC-Adresse":"60:1:94:49:b3:23","Homematic_CCU_ip":"192.168.178.2","WLAN_ssid":"sturmnetz","WLAN_Signal_dBm":"-85","sec_seit_reset":"32496","zeitpunkt":"2019.07.14/18:02:10","firmware":"weatherman_107"}}
2019-07-14 17:44:28 Parse_Err_No 0
2019-07-14 17:44:28 SSL_Algorithm n.a.
2019-07-14 17:44:28 SSL_Version n.a.
2019-07-14 18:01:28 Transfered_logs_per_minute 13
2019-07-14 18:02:12 state active
Attributes:
makeEvent reading
parseProfile raw
port 1883
protocol TCP
userReadings MSG_ESP {ReadingsVal("SyslogServer","MSG_ESP-49B323.fritz.box",0)}
Internals:
DEF SyslogServer:MSG_ESP:.{.*}
FUUID 5d2b4124-f33f-b872-7da0-01afcf8b3466bf0c
NAME ej
NOTIFYDEV SyslogServer
NR 280
NTFY_ORDER 50-ej
STATE active
TYPE expandJSON
s_regexp SyslogServer:MSG_ESP:.{.*}
t_regexp .*
version 1.13
READINGS:
2019-07-14 17:54:09 state active
Attributes:
room 9.0_System
Laut CommandRef sollte man device:reading:.\{.*}
schreiben, vermutlich um { zu maskieren
Dein Reading enthält aber mehrere JSON Strings...
Yep.. bin gerade dran, es mit regex hinzubauen, es scheint, dass die gesendeten JSONs nicht ganz so syntax-konform sind.
VG Timmo
Kurzes Update zur Lösung
Es lag an einem Sonderzeichen am Ende (EOF), das vom vorherigen Modul nicht gelöscht worden war.
Das JSON selber hatte eine mehrstufige (zulässige) Struktur, die über expandJSON auch richtig aufgelöst wird.
VG Timmo