Seite 1 von 1

XMLRPC & PHP

Verfasst: 25.02.2021, 20:59
von Luapos
Hallo,
ich versuche mich gerade an der Kommunikation der CCU3 via XML-RPC und PHP.
Dazu nutze ich die Skripte von hier ->
viewtopic.php?t=8070

Über "GetParamset" bekomme ich die benötigten Daten eines WTH2 auch im array.

Code: Alles auswählen

$api = new client_xmlrpc(array('url'=>'http://192.168.178.20:2010'));
$devlist=$api->getParamset("000A97099C19B8:1", "MASTER");
Leider klappt das beschreiben mit PutParamset nicht. Derzeit probiere ich es so:

Code: Alles auswählen

$test = $api->PutParamset("1011", "000A97099C19B8:1", "MASTER", "P1_ENDTIME_MONDAY_1", "980");
Mir ist unklar, wie PutParamset jetzt aufgerufen werden müsste, damit die Daten übergeben werden.

Wenn ich per HM-Skirpt das ganze probiere, funktioniert es.

Code: Alles auswählen

xmlrpc.PutParamset("1011", "000A97099C19B8:1", "MASTER", "P1_ENDTIME_MONDAY_1", "980");

Vllt. kann jemand helfen?

Vielen Dank

Re: XMLRPC & PHP

Verfasst: 27.02.2021, 11:56
von Black
Bei putparamset benutzt du die Syntax des xmlrpc Namensraumes aus homematik Script. Das ist allerdings nur ein wrapper für den richtigen schnittstellenprozess. Dessen Syntax sieht dann schon anders aus. Die 1011 für die iseid des interface haben da gar nix verloren, das interface beschreibt sich durch den Port der Anfrage.

Black.

Re: XMLRPC & PHP

Verfasst: 27.02.2021, 14:09
von Luapos
Hey,
danke!
Auch wenn ich die iseid weglasse, passiert leider nichts. Der Rückgabewert ist "NULL".
Habe es auch versucht, wie in einem anderen Beispiel mit array()

$test=$api->PutParamset("000A97099C19B8:1", "MASTER", array("P1_ENDTIME_MONDAY_1"=> "500"));

Ist denn irgendwo beschrieben, wie das paramset set aussehen muss?

Re: XMLRPC & PHP

Verfasst: 27.02.2021, 14:30
von Black
das muss auch kein array sondern ein Struct sein. und definitv braucht er die angabe des datentypes auf der xmlrpc...

guggst du auch Hier

und auch hier

Black

Re: XMLRPC & PHP

Verfasst: 27.02.2021, 21:50
von Luapos
Danke für die Hinweise!

Egal wie ich das Struct gestalte, es werden leider keine Werte übernommen.
Mit

Code: Alles auswählen

__getLastRequest ()
bekomme ich jedoch angezeigt, dass "putParamset" angekommen ist.

Code: Alles auswählen

string(359) " putParamset 000A97099C19B8:1 MASTER {P1_ENDTIME_MONDAY_1 {i4 500}} "
Allerdings scheint es am Aufbau des Structs zu hängen. Egal ob ich Eckige Klammern, geschweifte Klammern, int statt i4 nutze... Es wird nichts geschhrieben :/

Re: XMLRPC & PHP

Verfasst: 27.02.2021, 22:09
von Black
kann naürlich auch sein, dass deine php API da noch einen Wrapper drüberstülpt.

In IOBroker unter Javascript z.b. sieht die Syntax so aus:

Code: Alles auswählen

sendTo('hm-rpc.0', 'putParamset', {ID: 'OEQ1861203', paramType: 'MASTER', params: {'ENDTIME_FRIDAY_1': 700}}, res => {
    log(JSON.stringify(res));
});
Gruss, Black