FHEM per HTTP-Request steuern oder Daten abfragen
Um FHEM, die Open-Source Smart-Home-Steuerung, direkt per HTTP Request zu steuern, kann man den Befehl direkt in den Browser eingeben. Oft häufiger genutzt wird das aber, wenn man damit verschiedene FHEM-Instanzen miteinander verbinden möchte und sie nicht per FHEM2FHEM verbinden möchte oder kann. Wichtig ist die Steuerung per HTTP Request aber auch, wenn man aus einem anderen Skript (aus der Konsole, Python oder PHP…) auf FHEM zugreifen und Aktionen tätigen möchte.
In unseren Beispielen hier läuft FHEM auf der IP-Adresse “192.168.1.1” und auf Port “8085. Dies muss im Code angepasst werden, wenn FHEM im eigenen Setup auf einem Rechner mit anderer IP und anderen Port installiert ist!
http://192.168.1.1:8085/fhem?cmd=set%20Lampe%20off
Mit diesem Code lässt sich über den Webbrowser der Befehl an FHEM übergeben und so zum Beispiel das Gerät “Lampe” ausschalten. Der an FHEM übergebene Befehl lautet nämlich:
set Lampe off
Wichtig ist hier, dass Leerzeichen in der URL-Adresse als “%20” geschrieben werden müssen – außerdem funktioniert dieser Befehl aus Sicherheitsgründen nur, wenn man für den Port 8085 das Attribut “csrfToken” ausgeschaltet hat. Da dies ein Sicherheitsrisiko darstellen kann, sollte man es nur zum Testen so belassen und später zum Beispiel ein eigenes CSRF-Token übergeben.
Gibt man den Befehl “set Lampe off” jetzt direkt über die Browser-Adressleiste ein, schaltet man das angegebene Gerät “Lampe” aus, anschließend wird die FHEM Startseite angezeigt. Dies ist in vielen Fällen unnötig – gerade wenn man von FHEM aus ein anderes FHEM System steuern möchte: Hier wird der gesamte Inhalt der Seite in die Log-Datei geschrieben.
Um das zu verhindern, kann man an das Ende des Befehls noch diesen Parameter anhängen: &XHR=1. Dies bewirkt, dass statt der gesamten Webseite einfach eine leere weiße Seite angezeigt wird. Der komplette Befehl sieht dann so aus:
http://192.168.1.1:8085/fhem?cmd=set%20Lampe%20off&XHR=1
So lässt er sich zum Beispiel auch aus der Linux-Konsole heraus aufrufen – hier sind aber die Anführungszeichen um die URL wichtig, damit das “&” auch mit übernommen wird:
curl "http://192.168.1.1:8085/fhem?cmd=set%20Lampe%20off&XHR=1"
Daten per HTTP von FHEM abfragen
Per HTTP lassen sich nicht nur Daten an FHEM senden, sondern auch abfragen: Zum Beispiel der Zustand (“state”) eines Gerätes, um zu prüfen, ob die Lampe ein- oder ausgeschaltet ist. Der Befehl zum Abfragen des Status eines FHEM device lautet dabei:
list Lampe state
oder als komplette Web-Adresse für den Browser oder Konsolen-Befehl:
http://192.168.1.1:8085/fhem?cmd=list%20Lampe%20state
Auch hier wird wieder die komplette FHEM Webseite übertragen, zusammen mit den gewünschten Daten. Wer das nicht möchte, kann dies deutlich reduzieren, wenn die Adresse wieder um den Parameter “&XHR=1” ergänzt wird:
http://192.168.1.1:8085/fhem?cmd=list%20Lampe%20state&XHR=1
Statt der gesamten Webseite enthält die Rückgabe dann nur noch den Namen des device, die Uhrzeit der Abfrage und den Status, sieht also zum Beispiel so aus:
Lampe 2018-07-01 17:24:06 on
- datenschutz (34x gelesen)
- windows-schneller-starten-autostart-aufraeumen (29x gelesen)
- windows-beschleunigen (28x gelesen)
- pc-einsteigerkurs (18x gelesen)
- pc-einsteigerkurs-1-2 (9x gelesen)
Mehr Tipps zu FHEM per HTTP-Request steuern oder D...
-
FHEM: JeeLink / LaCrosse Sensor: Batterie wechseln
Wer bei einem LaCrosse Temperatursensor die Batterien tauscht, muss eine Sache beachten - andernfalls wird die Hardware-ID zurückgesetzt und der Sensor wird unter einem neuen...
-
FHEM: Logitech Harmony Hub “Disconnected”
FHEM / Logitech Harmony Hub: Steht der Harmony Hub nach einem Update in der Smart Home Software plötzlich auf "Disconnected", lässt sich das in der...
-
Automagic Download für Android, AMAD und FHEM
Automagic ist eine Android-Software, über die sich zahlreiche Automatisierungen auf dem Gerät einstellen und planen lassen. Automagic ist aber auch wichtig, um Android-Tablets oder -Handys...
-
Philips Hue Lampen am Mac steuern
App: We Love Lights Schnell das Licht einschalten oder dimmen ohne das Handy zu suchen: Das geht direkt am Mac ohne zu den Handy-Apps zu...
-
Schnell-Tipp: Philips hue Lampen mit FHEM steuern
Um die schicken hue Lampen von Philips mit FHEM zu steuern, braucht man neben den bereits installierten und in der hue App angelernten hue Lampen...
-
Befehlstaste bei Windows: So findet man sie!
Die Befehlstaste auf der Apple-Tastatur (auch Apfeltaste, CMD-Taste oder Command-Taste genannt) gibt es auch unter Windows: Allerdings sieht die Befehlstaste bei Windows nicht nur anders...
- HTTP Request an www.example.com immer 400
- sunrise / sunset in FHEM: So bekommt man seine Geo-Daten für den Zeit-Berechnung
- fehlermeldung 400 bad request
Habe mediencenter Telekom aufgemacht 2tage alles dann die Fehlermeldung 400 Bad request...
- SQL abfragen!?!?!
hi. ich hab die folgenden aufgaben, die ich mit xampp machen muss:1. Auflistung al...
FHEM per HTTP-Request steuern oder Daten abfragen