Hauptmenü

HTTPMOD und JSON

Begonnen von roli, 26 April 2018, 16:34:46

Vorheriges Thema - Nächstes Thema

roli

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.
FHEM auf Debian (RASPI), 2 * CUL868/433 *&nbsp; FS20 STR, 2 * HMS100 T, 2 *&nbsp;, 1* FS20 SU, 2 *&nbsp; FS20 SM8, 2 ; 1-wire Temp,i2c Bus; ESP32 WROOM; ESP8266; Arduino
Sonnenbatterie Eco8;Elektro&nbsp; Nachspeicher-Ofen Ladesteuerung,
Haus Lüftung,
Integration von HardwareAlarmanlag

frank

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.
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

roli

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.
FHEM auf Debian (RASPI), 2 * CUL868/433 *&nbsp; FS20 STR, 2 * HMS100 T, 2 *&nbsp;, 1* FS20 SU, 2 *&nbsp; FS20 SM8, 2 ; 1-wire Temp,i2c Bus; ESP32 WROOM; ESP8266; Arduino
Sonnenbatterie Eco8;Elektro&nbsp; Nachspeicher-Ofen Ladesteuerung,
Haus Lüftung,
Integration von HardwareAlarmanlag

CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

roli

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.
FHEM auf Debian (RASPI), 2 * CUL868/433 *&nbsp; FS20 STR, 2 * HMS100 T, 2 *&nbsp;, 1* FS20 SU, 2 *&nbsp; FS20 SM8, 2 ; 1-wire Temp,i2c Bus; ESP32 WROOM; ESP8266; Arduino
Sonnenbatterie Eco8;Elektro&nbsp; Nachspeicher-Ofen Ladesteuerung,
Haus Lüftung,
Integration von HardwareAlarmanlag