HTML-Anwendung zur Steuerung mit XML-API
Moderator: Co-Administratoren
HTML-Anwendung zur Steuerung mit XML-API
Hallo zusammen,
um mit allen Geräten in meinem Haushalt (egal ob Android oder Windows) die gleiche Oberfläche zu nutzen, bin ich hergegangen über die XML-API Befehle als Link in eine einfache HTML-Seite einzubinden.
Funktioniert so weit auch ganz gut, nur stört mich noch, dass nach dem Senden des Befehls stets die XML-Seite mit dem Ergebnis angezeigt wird, schöner wäre es, wenn dies intern abgefangen werden könnte, der Befehl zwar abgesetzt wird, die Anzeige aber nicht verändert wird.
Gibt es dazu einen einfachen Trick?
Gruß
Roland
um mit allen Geräten in meinem Haushalt (egal ob Android oder Windows) die gleiche Oberfläche zu nutzen, bin ich hergegangen über die XML-API Befehle als Link in eine einfache HTML-Seite einzubinden.
Funktioniert so weit auch ganz gut, nur stört mich noch, dass nach dem Senden des Befehls stets die XML-Seite mit dem Ergebnis angezeigt wird, schöner wäre es, wenn dies intern abgefangen werden könnte, der Befehl zwar abgesetzt wird, die Anzeige aber nicht verändert wird.
Gibt es dazu einen einfachen Trick?
Gruß
Roland
- Dragonfly
- Beiträge: 1249
- Registriert: 04.01.2010, 11:40
- Wohnort: Tyrol
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 4 Mal
- Kontaktdaten:
Re: HTML-Anwendung zur Steuerung mit XML-API
Ja, der trick heißt iframe:
und ein link dazu:
Code: Alles auswählen
<iframe
name="answer" frameborder="no" height="0" width="0">Ihr Browser kann leider keine eingebetteten Frames anzeigen.</iframe>
Code: Alles auswählen
<a target="answer" href="http://...">
Re: HTML-Anwendung zur Steuerung mit XML-API
Danke Dir, ich werde mal versuchen es damit zum Laufen zu bringen.
Gruß
Roland
Edit: Es läuft! Besten Dank!
Gruß
Roland
Edit: Es läuft! Besten Dank!
Re: HTML-Anwendung zur Steuerung mit XML-API
Hi,
ich hab dazu mal ein node.js-modul geschrieben, das durch browserify auch im browser läuft und eine abstraktion für die XML-API bietet.
(zugegeben, diese Abstraktion ist etwas "opinionated")
einfach ein "bower install homematic"
dokumentiert isses jetzt nicht wirklich, aber die index gibt ein paar Beispiele:
https://github.com/h0ru5/homematic-bowe ... index.html
ich hab dazu mal ein node.js-modul geschrieben, das durch browserify auch im browser läuft und eine abstraktion für die XML-API bietet.
(zugegeben, diese Abstraktion ist etwas "opinionated")
einfach ein "bower install homematic"
dokumentiert isses jetzt nicht wirklich, aber die index gibt ein paar Beispiele:
https://github.com/h0ru5/homematic-bowe ... index.html
Re: HTML-Anwendung zur Steuerung mit XML-API
Hallo zusammen,
soweit funktioniert alles wie gewünscht mit dem iframe. Bei Gelegenheit möchte ich die html-Seite auch abhängig von den Werten einiger Systemvariablen gestalten. Was ich aber bisher noch nicht hinbekommen habe ist, wie ich die XML-Seite (in der auch der Value der Systemvariablen steht) gescheit auswerten kann. Könnt Ihr mir da auch einen Tipp geben?
Gruß und Danke
Roland
soweit funktioniert alles wie gewünscht mit dem iframe. Bei Gelegenheit möchte ich die html-Seite auch abhängig von den Werten einiger Systemvariablen gestalten. Was ich aber bisher noch nicht hinbekommen habe ist, wie ich die XML-Seite (in der auch der Value der Systemvariablen steht) gescheit auswerten kann. Könnt Ihr mir da auch einen Tipp geben?
Gruß und Danke
Roland
Re: HTML-Anwendung zur Steuerung mit XML-API
Hallo,
das Problem hier ist aber, dass es nur im internen Netz funktioniert - denn das Device macht den XML-Aufruf und benötigt Zugriff auf die CCU.
Wenn Du die Seite extern zugängig machst, dann brauchst Du nen Zwischenschritt.
Ich rufe dazu eine PHP-Seite auf meiner NAS auf, die den eigentlichen Aufruf macht.
Hier de Grobe Ansatz:
auf der Webpage im JS
im HTML dann einfach das JS aufrufen
in der php dann einfach den URL-Parameter auslesen und die XML aufrufen (komme grad nicht auf die php source).
simpler erster Schritt
in einem zweiten Schritt kann man sich dann Gedanken machen, ob man die Stati der verwendeten IDs auch noch aktiv abfragt...
das Problem hier ist aber, dass es nur im internen Netz funktioniert - denn das Device macht den XML-Aufruf und benötigt Zugriff auf die CCU.
Wenn Du die Seite extern zugängig machst, dann brauchst Du nen Zwischenschritt.
Ich rufe dazu eine PHP-Seite auf meiner NAS auf, die den eigentlichen Aufruf macht.
Hier de Grobe Ansatz:
auf der Webpage im JS
Code: Alles auswählen
function hm_schalten(id,value)
{
var change="modules/homematic/index.php?ise_id="+id+"&new_value="+value;
doRequest(change);}
function doRequest(file, mode)
{
var xmlObj = null;
if (window.XMLHttpRequest) {
xmlObj = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
} else {
return;
}
xmlObj.open ('GET', file, true);
xmlObj.send ('');
}
Code: Alles auswählen
<input type="checkbox" onclick="javascript:hm_schalten(2051,'1')" id="2051">
simpler erster Schritt
in einem zweiten Schritt kann man sich dann Gedanken machen, ob man die Stati der verwendeten IDs auch noch aktiv abfragt...
Re: HTML-Anwendung zur Steuerung mit XML-API
Vielen Dank schon mal für die Antwort. Mir geht es aber tatsächlich nur darum, im internen Netz die Ergebnisseite eines XML-API-Aufrufes, der in einem iframe steht, auswerten zu können. Deine Antwort verstehe ich demgegenüber als das Absetzen eines entsprechenden Befehls. Falls ich das falsch interpretiert habe korrigiert mich bitte.
Gruß
Roland
Gruß
Roland
Re: HTML-Anwendung zur Steuerung mit XML-API
Hallo,
der XML-Aufruf einer Status-Änderung liefert doch garkeinen sinnvollen return, wenn ich mich recht erinnere.
Meinst Du vielleicht, dass Du den Status eines Gerätes abfragen willst (state.cgi wenn ich mich recht erinnere)?
Denn dieser gibt die Informationen für die relevante ise_id zurück
der XML-Aufruf einer Status-Änderung liefert doch garkeinen sinnvollen return, wenn ich mich recht erinnere.
Meinst Du vielleicht, dass Du den Status eines Gerätes abfragen willst (state.cgi wenn ich mich recht erinnere)?
Denn dieser gibt die Informationen für die relevante ise_id zurück
Re: HTML-Anwendung zur Steuerung mit XML-API
Hallo,
genau das meine ich, wenn ich zum Beispiel folgenden Befehl absetze
Gruß
Roland
genau das meine ich, wenn ich zum Beispiel folgenden Befehl absetze
erhalte ich innerhalb eines state-Bereiches den Datapoint-Value und zusätzlich nochmal die ise_id angegeben. Doch wie kann ich diese Daten einfach auswerten. Da gibt es doch bestimmt einen Trick, oder?http://ip_der_Homematic/config/xmlapi/state.cgi?datapoint_id=1790
Gruß
Roland