[gelöst] Umstieg von telnet auf curl zur externen Steuerung von fhem

Begonnen von olwaldi, 27 Dezember 2023, 10:15:19

Vorheriges Thema - Nächstes Thema

olwaldi

Aktuell nutze ich das telnet-Interface von fhem, um aus der UNIX-Shell heraus fhem-Kommandos abzusetzen
function FhemRun()
{
     echo "$1" | nc -w0 127.0.0.1 7072
}
Könnte man ggf. noch mit Paßwort absichern.

Nun habe ich das FHEMWEB Device WEBapi angelegt, da mein ShellyPlug HTTP zur Steuerung verwenden kann. Dazu passend
function FhemRun()
{
    curl \
--data-urlencode "cmd=$*" \
        --data-urlencode "XHR=1" \
--data-urlencode "fwcsrf=csrf_4711" \
http://imurr9.fritz.box:8088/fhem
}
Auch das funktioniert. Allerdings wird (z.B. bei Benutzung von {ReadingsValue(...}) als cmd) ein großer HTML-Output zurückgegeben - nämlich die entsprechende fhem-Seite. Dort steht auch der gewünschte Wert (in meinem Fall "off" tief in einer table versteckt) drin. Aber irgendwie müßte man fhem doch mitteilen können, den Wert direkt auszugeben - so wie beim direkten Eintippen des Kommandos in die fhem-WEBgui.

Als Alternative habe ich auch Otto123's Skript auf Basis von wget gefunden. Aber das ist deutlich komplexer als die beiden Lösungen oben.

Grüßle, Michael
Nachtrag: Selber hier im Forum gefunden und oben korrigiert - XHR=1.