Autor Thema: [Gelöst] HTTPMOD und JSON mit EOT  (Gelesen 121 mal)

Offline wolwin

  • New Member
  • *
  • Beiträge: 25
[Gelöst] HTTPMOD und JSON mit EOT
« am: 11 Oktober 2018, 08:50:16 »
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

« Letzte Änderung: 12 Oktober 2018, 09:12:06 von wolwin »

Online frank

  • Hero Member
  • *****
  • Beiträge: 7044
Antw:HTTPMOD und JSON mit EOT
« Antwort #1 am: 11 Oktober 2018, 10:05:23 »
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: 5.8(SVN) => Pi3(jessie)
IO: CUL433_V3.3(1.00.01B53)|CUL868_V3.3(1.58)|HMLAN(0.965)|HMUSB2(0.967)|HMUART(1.4.1)
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

Offline wolwin

  • New Member
  • *
  • Beiträge: 25
Antw:HTTPMOD und JSON mit EOT
« Antwort #2 am: 12 Oktober 2018, 08:00:50 »
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