(Gelöst) ExpandJSON.. bekomme es nicht zum Laufen

Begonnen von Tsturm, 14 Juli 2019, 18:05:46

Vorheriges Thema - Nächstes Thema

Tsturm

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

amenomade

Laut CommandRef sollte man device:reading:.\{.*}schreiben, vermutlich um { zu maskieren

Dein Reading enthält aber mehrere JSON Strings...
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Tsturm

Yep.. bin gerade dran, es mit regex hinzubauen, es scheint, dass die gesendeten JSONs nicht ganz so syntax-konform sind.

VG Timmo

Tsturm

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