[Gelöst] HTTPMOD und JSON mit EOT

Begonnen von wolwin, 11 Oktober 2018, 08:50:16

Vorheriges Thema - Nächstes Thema

wolwin

Hallo,
meine HTTPMOD readings funktionieren klaglos:


define WM HTTPMOD http://192.168.100.100/json 60
attr WM timeout 20
attr WM reading02JSON Systeminfo_MAC-Adresse
attr WM reading02Name wm_sys_mac-adr


Jedoch habe ich jetzt nach einer Umstellung auf der Senderseite folgendes Problem: der übersandte JSON String enthält als letztes Zeichen immer ein EOT (char 4) Zeichen - das führt zu folgender LOG-Fehlermeldung:

WM: error while parsing JSON data: garbage after JSON object, at charachter offset 3244 (before "\x{4}") at (eval 7354) line 1.


Wenn ich nach Dr. G das richtig verstanden habe, kann EOT das Zeichen sein, was das Ende des JSON Strings bestätigt??
Ist das jetzt ein Feature request für HTTPMOD, oder gibt es einen Workaround, damit ich meine readings wieder erhalten kann?
Gruss
Wolfram


frank

als workaround sollte das parsen mit regex funktionieren. also kein json nutzen.

oder mit attr preProcessRegex könntest du versuchen, das zeichen zu entfernen.

kommt der fehler auch, wenn du nur attr extractAllJson nutzt?
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

wolwin

Hallo Frank,
DANKE - das wars - ich bin jetzt das EOT-Zeichen los:


define WM HTTPMOD http://192.168.100.100/json 60
attr WM timeout 20
attr WM preProcessRegex s/\x04//g
attr WM userattr reading01JSON reading01Name
attr WM reading01JSON modultyp
attr WM reading01Name wm_modultyp