XML-RPC Interface-Beschreibung

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

Moderator: Co-Administratoren

Benutzeravatar
kaju74
Beiträge: 2050
Registriert: 06.03.2007, 13:14
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: XML-RPC Interface-Beschreibung

Beitrag von kaju74 » 10.08.2010, 15:49

Hallo.

Mittlerweile sind auch die C# Quellcodes der Beispielprojekte aus dem ELVjournal "online". Ich habe diese mal mit
Visual Studio Express neu übersetzt und bei mir aufgenommen:

http://www.homematic-inside.de/index.ph ... press.html

Lieben Gruß,
kaju

ColdFireIce
Beiträge: 407
Registriert: 06.03.2009, 15:38
Wohnort: Karlsruhe
Danksagung erhalten: 1 Mal

Re: XML-RPC Interface-Beschreibung

Beitrag von ColdFireIce » 12.08.2010, 06:44

Und hier ein Beispiel was man damit machen kann: http://homematic-forum.de/forum/viewtopic.php?t=4901

Viele Grüße
Daniel

Schablone
Beiträge: 42
Registriert: 03.05.2008, 18:58
Wohnort: Bocholt

Re: XML-RPC Interface-Beschreibung

Beitrag von Schablone » 15.08.2010, 11:29

Hallo Daniel,

besten Dank für deine Ausführungen.

Ich bin gerade dabei die HomeMatic über VB.NET anzusprechen. Die Clientmethoden (getValue, setValue, ...)funktionieren bereits.
Was ich noch nicht verstanden habe wie ich events empfange. Über den init Befehl gebe ich der CCU die IP-Adresse des Rechners an?
Über welchen Port kommen dann die Daten? Und wie empfange ich dann die Daten von einem entsprechenden Port?
Müsste da nicht ein Dienst gestartet werden der an diesem Port lauscht?


Für deine Hilfe besten Dank und bis dann


Martin

ColdFireIce
Beiträge: 407
Registriert: 06.03.2009, 15:38
Wohnort: Karlsruhe
Danksagung erhalten: 1 Mal

Re: XML-RPC Interface-Beschreibung

Beitrag von ColdFireIce » 16.08.2010, 00:37

Schablone hat geschrieben:Was ich noch nicht verstanden habe wie ich events empfange. Über den init Befehl gebe ich der CCU die IP-Adresse des Rechners an?
Über welchen Port kommen dann die Daten? Und wie empfange ich dann die Daten von einem entsprechenden Port?
Müsste da nicht ein Dienst gestartet werden der an diesem Port lauscht?
Hallo Martin,

wie ich schon in meiner Erklärung geschrieben habe schickt man beim init Befehl nicht nur eine IP Adresse mit:

Code: Alles auswählen

http://192.168.128.1:80/xmlrpc/demo/server/xmlrpc_server.php
Das kann alles mögliche Sein, so wie hier ein Protokoll (HTTP), eine IP (192.168.128) einen Port (80) und sogar einen Pfad (/xmlrpc/demo/server/xmlrpc_server.php). So sind Adressen aber grundsätzlich immer Aufgebaut.
Also ja, die IP des Rechners bzw da wo der XML-Server eben läuft.
Ja du musst, bzw. solltest einen Port angeben. Welcher, hängt davon ab auf welchem dein Server "lauscht"
Und ja dein Server bzw. dein Programm ist dann eine Instanz die die ganze Zeit auf diesem Port lauscht ob da was für sie kommt. Man kann wohl aber auch den BidCos Dienst von Homematic dafür nutzen. Musst mal in dem ELV Heft schaun da steht das drin.
Schablone hat geschrieben:Ich bin gerade dabei die HomeMatic über VB.NET anzusprechen.
dann wäre wohl dieser Link das wo nach du suchst: Die Zauberkugel die alles weiß, wenn du die richtige Frage stellst

Viele Grüße
Daniel

Schablone
Beiträge: 42
Registriert: 03.05.2008, 18:58
Wohnort: Bocholt

Re: XML-RPC Interface-Beschreibung

Beitrag von Schablone » 18.08.2010, 18:59

Hallo Daniel,
Die Zauberkugel die alles weiß, wenn du die richtige Frage stellst
Ich habe immer nach xml, xml-server, server gefragt......

"broadcast mit vb.net" ist die richtige Frage.

Diese Frage bringt dich zum "httplistener"!

Besten Dank und bis dann

Martin

ultrah
Beiträge: 427
Registriert: 08.03.2010, 13:38
Hat sich bedankt: 6 Mal
Danksagung erhalten: 34 Mal

Re: XML-RPC Interface-Beschreibung

Beitrag von ultrah » 06.09.2010, 21:55

ColdFireIce hat geschrieben:

Code: Alles auswählen

<?xml version="1.0"?>
<methodResponse><params>
    <param><value><string>http://192.168.128.1:80/xmlrpc/demo/server/xmlrpc_server.php</string></value></param>
    <param><value><string>123456</string></value></param>
</params></methodResponse>
Daniel
moin daniel,

der init-befehl kommt doch von client-seite, müsste das dann nicht ein methodcall sein ?

schönen gruß,

philipp

ColdFireIce
Beiträge: 407
Registriert: 06.03.2009, 15:38
Wohnort: Karlsruhe
Danksagung erhalten: 1 Mal

Re: XML-RPC Interface-Beschreibung

Beitrag von ColdFireIce » 07.09.2010, 02:47

ultrah hat geschrieben:
ColdFireIce hat geschrieben:

Code: Alles auswählen

<?xml version="1.0"?>
<methodResponse><params>
    <param><value><string>http://192.168.128.1:80/xmlrpc/demo/server/xmlrpc_server.php</string></value></param>
    <param><value><string>123456</string></value></param>
</params></methodResponse>
Daniel
moin daniel,

der init-befehl kommt doch von client-seite, müsste das dann nicht ein methodcall sein ?

schönen gruß,

philipp
Hallo Philipp,

natürlich muss dass ein methodeCall sein, da muss was beim "Gerüst" kopieren schief gegangen sein. Vielen Dank für den Hinweiß. Habs schon im orginal Post geändert.

Viele Grüße
Daniel

mark
Beiträge: 13
Registriert: 18.08.2010, 11:33

Re: XML-RPC Interface-Beschreibung

Beitrag von mark » 14.12.2010, 10:42

Hi Martin,

kannst Du mir mal ein paar ansätze geben, wie Du die XML-RPS Schnittstelle mit VB ansprichst?
Ich wäre Dir sehr dankbar.

Gruß,
Mark

Schablone
Beiträge: 42
Registriert: 03.05.2008, 18:58
Wohnort: Bocholt

Re: XML-RPC Interface-Beschreibung

Beitrag von Schablone » 20.01.2011, 18:13

mark hat geschrieben:Hi Martin,

kannst Du mir mal ein paar ansätze geben, wie Du die XML-RPS Schnittstelle mit VB ansprichst?
Ich wäre Dir sehr dankbar.

Gruß,
Mark
Hallo Mark,

ich habe jetzt erst diese Nachricht gelesen.
Tut mir echt leid. :oops:

Brauchst Du da noch Hilfe?
Oder habe ich das Problem ausgesessen?

Nochmal dickes "Sorry".

Bis dann

Martin

quickmic
Beiträge: 518
Registriert: 20.01.2011, 14:39
Hat sich bedankt: 5 Mal
Danksagung erhalten: 4 Mal

Re: XML-RPC Interface-Beschreibung

Beitrag von quickmic » 31.01.2011, 19:06

Brauche bitte Hilfe... Versuche gerade ein Kommando per PHP zu schicken, klappt aber nicht... Hier mein Code:

Code: Alles auswählen

<html>
<head>
</head>


</body>
</html>


<?php





interface iApi {
    public function __construct();
    public function connect($ip);
    public function sendRequest($request);
    public function getResponse();
    public function __destruct();
}
class Api implements iApi {
    protected $stream;
    public function __construct() {
        $this->stream = null;
    }
    public function connect($ip) {
        $this->stream = @fsockopen($ip, 2000);
        if($this->stream === false) {
            trigger_error("connection failed", E_USER_ERROR);
		echo 'failed';
	}
	else
	{
			echo 'connected';
        }
    }
    public function sendRequest($request) {
        return (bool) @fwrite($this->stream, $request, strlen($request));
    }
    public function getResponse() {
        $contents = "";
        do {
              $contents .= @fread($this->stream, 2000);
        } while (!feof($this->stream));
        return $contents;
    }
    public function __destruct() {
        @fclose($this->stream);
    }
}

$api = new Api();


$api->connect("192.168.0.10");
echo 'test3';
$request = '
<?xml version="1.0"?>
<methodCall>
	<methodName>setValue</methodName>
	<params>
		<param><value><string>HEQ0228540:3</string></value></param>
		<param><value><string>STATE</string></value></param>
		<param><value><boolean>0</boolean></value></param>
	</params>
</methodCall>
';

echo $api->sendRequest($request);

echo 'fertig';

//$response = $api->getResponse();
//$xml = simplexml_load_string($response);
//echo "<pre>";
//var_dump($xml);
//echo "</pre>";
?> 
Als Antwort bekomme ich das:
connectedtest31fertig

Aber das Licht wird nicht abgeschaltet.
Jemand eine Idee?
Müssen da noch die Logindaten rein oder hab ich was übersehen?

mfg
quickmic

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“