FHEM Server von fremden Webseiten steuern

Begonnen von URHome, 06 Januar 2013, 19:38:58

Vorheriges Thema - Nächstes Thema

URHome

Hallo zusammen,

ich bin gerade dabei mein Haus etwas zu automatisieren und habe mir zwecks "Feldforschung" einen FHEM auf meiner Fritzbox installiert. Klappt auch alles wunderbar. Da ich bei mir im Haus einen NAS (QNAP 219) im Einsatz habe worauf ne Webapplikation läuft fände ich es jetzt gut wenn ich aus dieser WebApplikation heraus FHEM-Kommandos ausführen könnte. Ich kann jetzt über AJAX-Aufrufe direkt die Seiten aufrufen (was auch beim ersten Versuch zumindest mal den Aktor geschaltet hat aber mir dann mit nem Fehler gekommen ist). Aber vielleicht gibt es da noch ne schönere Möglichkeit oder irgendsowas wie WebServices oder REST ist irgendwie in Planung. Kann mir da irgendjemand was zu sagen oder nen Tip geben?

Gruß
Uwe

PS:
Selbst wenn ihr mir da keine tollen Antworten geben könnt finde ich FHEM immer noch geil :)

Dirk

Du könntest dich vom NAS aus per Telnet mit dem FHEM-Server verbinden und Kommandos absetzen. Das hatte ich mal mit einer PHP-Anwendung gemacht. Damit könntst du auch Events am NAS empfangen.

Gruß
Dirk

UliM

du kannst die die url jedes fhem-befehls aus dem frontend kopieren und in dein script einbauen.
anregungen dazu siehe im wiki unter 'Grundriss mit fhem-buttons'.
gruß uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

URHome

Hallo Dirk,
erst mal Danke für die Antwort.

Das mit dem Telnet hatte ich auch schon in Betracht gezogen. Da kann ich ja auch z.B. per jsonlist Sensorwerte abfragen. Es wäre allerdings schöner ne Lösung zu finden die mit JavaScript funktioniert. Ich könnte mir allerdings auch in PHP ne Bridge zwischen meiner Webseite und dem FHEM bauen. Ist wahrscheinlich geschickter als irgendwelche HTML-seite zu parsen.

URHome

Hallo Uli,

ist natürlich auch ne Möglichkeit. Sowas ähnliches bin ich gerade am probieren. Ich glaube ich spiel da einfach mal rum und schaue was mir am besten taugt.

thoweiss

Du kannst ja auch mit javascript über html den fhemserver ansprechen:

/fhem?cmd=jsonlist%20&XHR=1]

Dann bekommst Du ja eine komplette JSON-Struktur die man mit JS eigentlich leicht Parsen kann...

Befehle an fhem kann man ja so übetragen
/fhem?cmd.stufe_kwl=set%20stufe_kwl%20Stufe_1]

Die URL kann man sich ja auch mit JS zusammenbauen.

Ich habe mir für Misterhouse ein Webinterface mit jquery-mobile und Highcharts gebastelt - mal sehen ob ich das auf fhem Umfrickeln kann...



URHome

Hi thoweiss,

sowas geht natürlich auch. War auch eigentlich mein erster Gedanke. Mir mit JQuery über $.ajax die komplette Seite zu holen und dann alles zu parsen. Das hat aber einen entscheidenden Nachteil, nämlich das du nicht nur den json-Teil sondern den ganzen html-Klumpatsch auch noch bekommst und wenn da jemand mal meint etwas am html ändern zu wollen damit es schöner wird kann das schon der Tod sein weil du den json-teil nicht mehr findest.Ich hab mir da jetzt ne PHP-bridge gebaut die das Telnet-Interface nützt und sich da den json rauszieht und den auch bei bedarf entsprechend parst und auch aufbereitet. Die ajax-Funktion kriegt dann schon das HTML passend serviert und muss das nur noch an die richtige Stelle klatschen. Anders hätte ich mir auch das rausfieseln der Daten in die GUI setzen müssen was ich nicht schön finde.

rudolfkoenig


URHome


thoweiss

Wollte ich meinen - mit xhr=1 gibts nur den json string.

Das einzige was mich wurmt, ist dass man die Ausgabe nicht auf bestimmte Räume beschränken kann...

bei xmllist geht das allerdings