Hauptmenü

Problem mit JSONLIST2

Begonnen von wowogiengen, 11 September 2025, 19:41:53

Vorheriges Thema - Nächstes Thema

wowogiengen

Hallo,
in der Commandref zu jsonlist2 steht:
ZitatJsonList2
jsonlist2 [<devspec>] [<value1> <value2> ...]

Dieses Befehl sollte in der FHEMWEB oder telnet Eingabezeile ausgeführt werden, kann aber auch direkt über HTTP abgerufen werden über
http://fhemhost:8083/fhem?cmd=jsonlist2&XHR=1
Es liefert die JSON Darstellung der internen Variablen, Readings und Attribute zurück.
Wenn valueX angegeben ist, dann wird nur der entsprechende Internal (DEF, TYPE, usw), Reading (actuator, measured-temp) oder Attribut zurückgeliefert für alle Geräte die in devspec angegeben sind.

Achtung: die alte Version dieses Befehls (jsonlist, ohne 2 am Ende) is überholt, und wird in der Zukunft entfernt.

Ich habe nun beim Beispiel die Basisadresse angepasst, und versuche
https://fhem4:8084/fhem?cmd=jsonlist2&XHR=1aufzurufen...
bekomme dann aber
GET https://fhem4:8084/fhem?cmd=jsonlist2&XHR=1 net::ERR_HTTP_RESPONSE_CODE_FAILURE 400 (Bad Request) in der Browserkonsole angezeigt...

jsonlist2 an sich funktioniert und gibt mit auch das aus was ich suche:
jsonlist2 LichtSchlafzimmerOben stategibt dann auch
{
  "Arg":"LichtSchlafzimmerOben state",
  "Results": [
  {
    "Name":"LichtSchlafzimmerOben",
    "Internals": { },
    "Readings": {      "state": { "Value":"off", "Time":"2025-09-11 18:52:56" } },
    "Attributes": { }
  }  ],
  "totalResultsReturned":1
}

Ich wollte das jetzt über javascript in einer eigenen index.html ausprobieren:



fetch("https://fhem4:8084/fhem?cmd=jsonlist2&XHR=1")
    .then(res => {
        if (!res.ok) throw new Error("HTTP " + res.status);
        return res.json();
      })

Leider bin ich da jetzt mit meinem latein am Ende, kenne mich nicht aus, was hier noch fehlt!

rudolfkoenig

Das hat was mit den CSRF Schutzmassnahmen zu tun, die seit einiger Zeit per Voreinstellung aktiv sind:
https://fhem.de/commandref_modular.html#FHEMWEB-attr-csrfToken

Siehe auch https://wiki.fhem.de/wiki/CsrfToken-HowTo