HTML-Anwendung zur Steuerung mit XML-API

Nutzung von XML RPC, Remote Script, JSON RPC, XMLAPI

Moderator: Co-Administratoren

Grunzi
Beiträge: 68
Registriert: 06.01.2014, 09:31

HTML-Anwendung zur Steuerung mit XML-API

Beitrag von Grunzi » 20.10.2014, 14:17

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

Beatz
Beiträge: 45
Registriert: 26.04.2014, 21:45

Re: HTML-Anwendung zur Steuerung mit XML-API

Beitrag von Beatz » 20.10.2014, 14:38

Ich würde das über Ajax realisieren, z.B. mit jQuery.

Benutzeravatar
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

Beitrag von Dragonfly » 20.10.2014, 20:03

Ja, der trick heißt iframe:

Code: Alles auswählen

<iframe
 name="answer" frameborder="no" height="0" width="0">Ihr Browser kann leider keine eingebetteten Frames anzeigen.</iframe>
und ein link dazu:

Code: Alles auswählen

<a target="answer" href="http://...">

Grunzi
Beiträge: 68
Registriert: 06.01.2014, 09:31

Re: HTML-Anwendung zur Steuerung mit XML-API

Beitrag von Grunzi » 20.10.2014, 22:03

Danke Dir, ich werde mal versuchen es damit zum Laufen zu bringen.

Gruß
Roland

Edit: Es läuft! Besten Dank!

h0ru5
Beiträge: 2
Registriert: 03.01.2015, 16:30

Re: HTML-Anwendung zur Steuerung mit XML-API

Beitrag von h0ru5 » 03.01.2015, 16:54

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

Grunzi
Beiträge: 68
Registriert: 06.01.2014, 09:31

Re: HTML-Anwendung zur Steuerung mit XML-API

Beitrag von Grunzi » 18.02.2015, 08:33

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

z000ao8q
Beiträge: 122
Registriert: 02.12.2013, 17:26

Re: HTML-Anwendung zur Steuerung mit XML-API

Beitrag von z000ao8q » 18.02.2015, 10:28

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

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 ('');	
	}
im HTML dann einfach das JS aufrufen

Code: Alles auswählen

<input type="checkbox" onclick="javascript:hm_schalten(2051,'1')" id="2051">
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...

Grunzi
Beiträge: 68
Registriert: 06.01.2014, 09:31

Re: HTML-Anwendung zur Steuerung mit XML-API

Beitrag von Grunzi » 18.02.2015, 12:21

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

z000ao8q
Beiträge: 122
Registriert: 02.12.2013, 17:26

Re: HTML-Anwendung zur Steuerung mit XML-API

Beitrag von z000ao8q » 18.02.2015, 14:04

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

Grunzi
Beiträge: 68
Registriert: 06.01.2014, 09:31

Re: HTML-Anwendung zur Steuerung mit XML-API

Beitrag von Grunzi » 18.02.2015, 17:54

Hallo,

genau das meine ich, wenn ich zum Beispiel folgenden Befehl absetze
http://ip_der_Homematic/config/xmlapi/state.cgi?datapoint_id=1790
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?

Gruß
Roland

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“