Hallo,
versuche Readings über die Web-Schnittstelle abzurufen.
Leider gelingt mit das nicht.
http://localhost:8083/fhem?cmd=jsonlist2&XHR=1
Es erscheint "Diese Seite funktioniert nicht".
Muss man da vorher im Webinterface noch was aktiveren?
Der Aufruf von selbst Fhem funktioniert selbstverständlich.
http://localhost:8083/fhem
Was mache ich falsch?
Viele Grüße
Auge
Evtl. csrfToken!?
Steht etwas im fhem Log!?
Sowas wie:
2020.09.25 09:24:02 3: FHEMWEB WEB CSRF error: ne csrf_XXXXX for client WEB_192.168.10.140_65502 / command jsonlist2. For details see the csrfToken FHEMWEB attribute.
Und wirklich: localhost!!?
Also fhem auf einem "Rechner" MIT Desktop!!?
Naja: musst du wissen...
Empfehlung: OHNE Desktop (ist ja immerhin ein "Server-like" System)
Gruß, Joachim
Ja, das ist es.
mit abgeschalteten Token funktioniert es.
attr WEB.* csrfToken none
Jetzt muss ich mal verstehen was ich mir mit dem Attribut einfange und ob es alternativen gibt.
Möchte Node-RED koppeln und gezielt Readings abholen.
Jetzt habe ich wohl 3 Möglichkeiten.
1. Token ausschalten
2. Festen Token vergeben
3. Token
irgenwie ermitteln und im Request verwenden
Was macht da Sinn?
ZitatAlso fhem auf einem "Rechner" MIT Desktop!!?
Nutze natürlich nutze ich sonst einen externen Zugang. Für meine geplante Node-RED Anwendung ist es aber dann tatsächlich localhost.
Wollte nur alle Eventualitäten wie Firewall oder die Fitzbox ausschließen.
Naja, ich würde mal lesen WAS csrf "ist" und ergo wofür dann der Token gut ist!
Ich würde mindestens 2. nehmen!
Weil (mal ehrlich): der Token wird bei einem fhem Neustart "generiert". fhem soll ja (eigentlich bzw. tut es bei mir) möglichst lange laufen (ohne Neustart) -> ergo der Token ändert sich nicht (ist quasi "statisch")...
Kein Token wäre für mich (genannte Gründe bzw. eben mal csrf lesen) KEINE Option.
Zusätzlich kannst du (würde ich und habe ich so für meinen Magic Mirror, das verwendete "Plugin" für fhem kann auch nur max. fixen Token) einen weiteren Web-Zugang für NodeRed anlegen (also ein weiteres fhem-Web-Device mit anderem Port natürlich ;) ).
Wenn du dafür "global" beim define weglässt, funktioniert es eh nur "localhost".
Also:
define WebNodeRed FHEMWEB 8084 global
vs.
define WebNodeRed FHEMWEB 8084
Ersteres ist aus dem gesamten lokalen Netz erreichbar...
...zweiteres nur von localhost...
Ansonsten kannst du noch mittels "allowed" und bestimmter Attribute beim neu angelegten fhem-Web "einschränken"...
Da ich nicht "localhost" zugreife (nat. läuft auf dem Magic Mirror kein fhem ;) ) habe ich allowed usw. mit entsprechenden Einstellungen (z.B. von welcher IP aus zugegriffen werden darf, also NUR Magic Mirror in meinem Fall / fällt bei dir weg wegen kein "global" bei define des neuen fhemWeb und somit eh nur localhost / ist halt dann schwer zu testen, wenn man eben nicht localhost ist ;) )
Gruß, Joachim
Hi,
anstatt abschalten, einfach verwenden :)
https://wiki.fhem.de/wiki/CsrfToken-HowTo
Node-Red ist jetzt dummerweise JavaScript? Dafür gibt es jetzt noch kein Beispiel im Wiki -> Mach bitte eins :)
Gruß Otto