FHEM Forum

FHEM => Sonstiges => Thema gestartet von: roli am 26 April 2018, 16:34:46

Titel: HTTPMOD und JSON
Beitrag von: roli am 26 April 2018, 16:34:46
Irgendwie schaffe ich es nicht, anhand der Beispiel die im WIKI sind, die Sache erfolgreich zum Ende zu bringen.

Ich habe einen HHTP Aufruf, welcher folgendes Ergebnis liefert :

http://192.168.178.51:8080/configuration/EM_OperatingMode

--->  {"EM_OperatingMode":"2"}

Dies will ich durch eine get    entsprechend abfragen, also dachte ich mit:




define SB_Mode2 HTTPMOD none 0
  attr SB_Mode2 get01Name   EM_OperatingMode
  attr SB_Mode2 getURL      http://192.168.178.51:8080/configuration/EM_OperatingMode
  attr SB_Mode2 getHeader1  Content-Type: application/json
  attr SB_Mode2 getHeader2  Accept: */*
  attr SB_Mode2 getData     {"get" :["EM_OperatingMode"]}   
  attr SB_Mode2 extractAllJSON


Liefert aber Fehler:
2018.04.26 16:21:40 3: SB_Mode2: error while parsing JSON data: malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "<!DOCTYPE html>\n<ht...") at (eval 1770) line 1.

2018.04.26 16:21:40 3: SB_Mode2: no parsed JSON structure available
2018.04.26 16:21:40 3: SB_Mode2: Read response to get01 didn't match any Reading


Keine Ahnung was fehlt oder nicht korrekt ist.  Wenn schon Beispiel, dann wäre es auch super wenn es tut.  Mein Fall sollte ja eher simpel sein.
Titel: Antw:HTTPMOD und JSON
Beitrag von: frank am 26 April 2018, 18:59:09
ZitatMein Fall sollte ja eher simpel sein.
scheinbar nicht.  ;)
es hört sich an, als würde kein "echtes" json kommen.
gleiches ergebnis ohne attr getData? attr extractAllJson sollte normal reichen, um alle json elemente zu bekommen.

zur not musst du eben auf regex umstellen.
Titel: Gelöst - zum Teil:HTTPMOD und JSON
Beitrag von: roli am 27 April 2018, 12:36:33
Gut es läuft jetzt soweit, obwohl ich denke nicht so wie das Beispiel in den dokumentationen.

>Erst mal war meine URL nicht korrekt - sorry  -- aber dazu half das logfile nun wirklich nicht weiter.

So läuft es jetzt:

define SB_Mode2 HTTPMOD none 0
  attr SB_Mode2 get01Name   EM_OperatingMode
  attr SB_Mode2 getURL         http://192.168.178.51:8080/api/configuration/EM_OperatingMode
  attr SB_Mode2 getHeader1  Content-Type: application/json
  attr SB_Mode2 getHeader2  Accept: */*
  attr SB_Mode2 extractAllJSON


Wollte nur gezielten Wert holen, aber dies ging ja nicht. Da ich eh nur 1 Wert bekomme ist das wohl auch kein overhead.

schade dass es keine einfachen lauffähigen Beipiele gibt und mittlerweile wohl viele WIKI Einträge veraltet sind.
Titel: Antw:Gelöst - zum Teil:HTTPMOD und JSON
Beitrag von: CoolTux am 27 April 2018, 14:17:49
Zitat von: roli am 27 April 2018, 12:36:33
Gut es läuft jetzt soweit, obwohl ich denke nicht so wie das Beispiel in den dokumentationen.

>Erst mal war meine URL nicht korrekt - sorry  -- aber dazu half das logfile nun wirklich nicht weiter.

So läuft es jetzt:

define SB_Mode2 HTTPMOD none 0
  attr SB_Mode2 get01Name   EM_OperatingMode
  attr SB_Mode2 getURL         http://192.168.178.51:8080/api/configuration/EM_OperatingMode
  attr SB_Mode2 getHeader1  Content-Type: application/json
  attr SB_Mode2 getHeader2  Accept: */*
  attr SB_Mode2 extractAllJSON


Wollte nur gezielten Wert holen, aber dies ging ja nicht. Da ich eh nur 1 Wert bekomme ist das wohl auch kein overhead.

schade dass es keine einfachen lauffähigen Beipiele gibt und mittlerweile wohl viele WIKI Einträge veraltet sind.

Das ist der perfekte Moment um Deine erlangte Erfahrung und Deine Ergebnisse im Wiki ab zu legen. Meinst nicht auch.
Titel: Antw:Gelöst - zum Teil:HTTPMOD und JSON
Beitrag von: roli am 27 April 2018, 16:43:32
Zitat von: CoolTux am 27 April 2018, 14:17:49
Das ist der perfekte Moment um Deine erlangte Erfahrung und Deine Ergebnisse im Wiki ab zu legen. Meinst nicht auch.

Ja würde ich sofort machen, wenn ich sicher wäre, dass es auch so die richtige Lösung ist - ich möchte nicht noch mehr verwirren.
Dazu bin ich noch nicht gut genug in der Materie - obwohl meine Applikation mittlerweile schon groß ist und ich alles mögliche
integriert habe.
Ich hoffe jemand hilft wenigstens diese paar Einträge.