Moin moin,
Hab jetzt nochmal ein wenig rumgespielt, leider ohne viel erfolg, nur neue Erkenntnisse
die Listmethodes haben nun wieder einen Parameter, schicken alle Methoden mit, ändert aber nicht wirklich was
Code: Alles auswählen
function systemlistMethods ($id) {
writeToFile("system.ListMethodes" , "_");
return new xmlrpcresp(
new xmlrpcval("event", "string"),
new xmlrpcval("listDevices", "string"),
new xmlrpcval("newDevice", "string"),
new xmlrpcval("newDevices", "string"),
new xmlrpcval("multiCall", "string")
);
}
function listMethods ($id) {
writeToFile("listMethodes" , "_");
return $this->retVal;
}
Code: Alles auswählen
Nov 28 12:53:01 homematic-ccu2 user.err rfd: XmlRpc fault calling system.listMethods({"100300"}) on http://192.168.178.xxx.xxx/home/xmlrpc/server.php:[faultCode:3,faultString:"Incorrect parameters passed to method: No method signature matches number of parameters"]
Nov 28 12:53:01 homematic-ccu2 user.err rfd: XmlRpc transport error calling listDevices({"100300"}) on http://192.168.178.xxx.xxx/home/xmlrpc/server.php:
Bei den Events hatte ich tatsächlich das Problem das nicht alle Anfragen beantwortet wurden, scheinbar weil ein Fehler beim abfragen der Parameter eintrat. Hab das ganze nun in ein Try & Catch gepackt... nun werden laut meinem Log alle Anfragen beantwortet, die Homematic stört sich aber immer noch dran :/
hier mal beide Logs, da sieht man ganz gut was ankommt und was nicht mehr entwertet wird
Code: Alles auswählen
*** Homematic Log
### XML-RPC Log
*** Nov 28 12:31:54 homematic-ccu2 user.err rfd: XmlRpc fault calling system.listMethods({"100300"}) on http://192.168.xxx.xxx/home/xmlrpc/server.php:[faultCode:3,faultString:"Incorrect parameters passed to method: No method signature matches number of parameters"]
Nov 28 12:31:54 homematic-ccu2 user.err rfd: XmlRpc transport error calling listDevices({"100300"}) on http://192.168.xxx.xxx/home/xmlrpc/server.php:
### [2015-11-28 12:31:54] (lisDevices) - listDevices
*** Nov 28 12:32:28 homematic-ccu2 user.err rfd: XmlRpcClient error calling event({[methodName:"event",params:{"100300","KEQ0732097:4","CONTROL_MODE",1}],[methodName:"event",params:{"100300","KEQ0732097:4","FAULT_REPORTING",0}],[methodName:"event",params:{"100300","KEQ0732097:4"
*** Nov 28 12:32:28 homematic-ccu2 user.err rfd: XmlRpc transport error
### [2015-11-28 12:32:28] (event) - + + + Start + + +
### [2015-11-28 12:32:28] (event) - event
### [2015-11-28 12:32:28] (event) - KEQ0732097:4, CONTROL_MODE, 1
### [2015-11-28 12:32:28] (event) - - - - Stop - - -
### [2015-11-28 12:32:28] (event) - + + + Start + + +
### [2015-11-28 12:32:28] (event) - event
### [2015-11-28 12:32:28] (event) - KEQ0732097:4, CONTROL_MODE, 1
### [2015-11-28 12:32:28] (event) - - - - Stop - - -
*** Nov 28 12:32:36 homematic-ccu2 user.err rfd: XmlRpcClient error calling event({[methodName:"event",params:{"100300","KEQ0732097:4","SET_TEMPERATURE",22.000000}],[methodName:"event",params:{"100300","KEQ0732097:4","PARTY_TEMPERATURE",5.000000}],[methodName:"event",params:{"10
*** Nov 28 12:32:36 homematic-ccu2 user.err rfd: XmlRpc transport error
### [2015-11-28 12:32:29] (event) - + + + Start + + +
### [2015-11-28 12:32:29] (event) - event
### [2015-11-28 12:32:29] (event) - KEQ0732097:4, SET_TEMPERATURE, 22
### [2015-11-28 12:32:29] (event) - - - - Stop - - -
### [2015-11-28 12:32:36] (event) - + + + Start + + +
### [2015-11-28 12:32:36] (event) - event
### [2015-11-28 12:32:36] (event) - KEQ0732097:4, SET_TEMPERATURE, 22
### [2015-11-28 12:32:36] (event) - - - - Stop - - -
*** Nov 28 12:33:24 homematic-ccu2 user.err rfd: XmlRpcClient error calling event({[methodName:"event",params:{"100300","MEQ0251503:4","CONTROL_MODE",0}],[methodName:"event",params:{"100300","MEQ0251503:4","FAULT_REPORTING",0}],[methodName:"event",params:{"100300","MEQ0251503:4"
*** Nov 28 12:33:24 homematic-ccu2 user.err rfd: XmlRpc transport error
### [2015-11-28 12:33:19] (event) - + + + Start + + +
### [2015-11-28 12:33:19] (event) - event
### [2015-11-28 12:33:19] (event) - MEQ0251503:4, CONTROL_MODE, 0
### [2015-11-28 12:33:19] (event) - - - - Stop - - -
### [2015-11-28 12:33:24] (event) - + + + Start + + +
### [2015-11-28 12:33:24] (event) - event
### [2015-11-28 12:33:24] (event) - MEQ0251503:4, CONTROL_MODE, 0
### [2015-11-28 12:33:24] (event) - - - - Stop - - -
Und hier nochmal mein kleiner "Server", hab auch nochmal die xmlrpc lib ausgetauscht... auch ohne erfolg :/
Code: Alles auswählen
<?php
include "lib_2_2_2/xmlrpc.inc"; // from http://phpxmlrpc.sourceforge.net/
include "lib_2_2_2/xmlrpcs.inc"; // from http://phpxmlrpc.sourceforge.net/
require "../database/db.php";
$retVal = new xmlrpcresp(new xmlrpcval("", "string"));
function event ($xmlrpcmsg) {
try {
writeToFile("event" , " + + + Start + + +");
$meth = $xmlrpcmsg->method();
writeToFile("event" , $meth);
//Get Parameters
$par1 = $xmlrpcmsg->getParam(1);
$par2 = $xmlrpcmsg->getParam(2);
$par3 = $xmlrpcmsg->getParam(3);
//DeviceID
$deviceID = $par1->scalarval();
$type = $par2->scalarval();
$wert = $par3->scalarval();
writeToFile("event" , $deviceID . ", " . $type . ", " . $wert);
} catch (Exception $e) {
writeToFile("Exception" , $e->getMessage());
} finally {
writeToFile("event" , " - - - Stop - - -");
return $this->retVal;
}
/*
$dbhandler = new db();
if($type == "ACTUAL_TEMPERATURE") {
$dbhandler->insertLog($deviceID,$wert,0);
}
*/
}
function init ($xmlrpcmsg) {
$meth = $xmlrpcmsg->method();
writeToFile("init" , $meth);
return $this->retVal;
}
function listDevices ($xmlrpcmsg) {
$meth = $xmlrpcmsg->method();
writeToFile("lisDevices" , $meth);
return $this->retVal;
}
function multiCall ($xmlrpcmsg) {
$meth = $xmlrpcmsg->method();
writeToFile("multiCall" , $meth);
return $this->retVal;
}
function newDevice ($xmlrpcmsg) {
$meth = $xmlrpcmsg->method();
writeToFile("newDevice" , $meth);
return $this->retVal;
}
function newDevices ($xmlrpcmsg) {
$meth = $xmlrpcmsg->method();
writeToFile("newDeviceS" , $meth);
return $this->retVal;
}
function systemlistMethods ($id) {
writeToFile("system.ListMethodes" , "_");
return new xmlrpcresp(
new xmlrpcval("event", "string"),
new xmlrpcval("listDevices", "string"),
new xmlrpcval("newDevice", "string"),
new xmlrpcval("newDevices", "string"),
new xmlrpcval("multiCall", "string")
);
}
function listMethods ($id) {
writeToFile("listMethodes" , "_");
return $this->retVal;
}
/**
* Debug Log
* @param $tag
* @param $text
*/
function writeToFile($tag,$text) {
$myfile = fopen("logxml.txt", "a") or die("Unable to open file!");
$date = date('Y-m-d H:i:s');
$line = "[" . $date . "] (" .$tag .") - " . $text . "\n";
fwrite($myfile, $line);
fclose($myfile);
}
/**
* Init XML-RPC Server
*/
$s = new xmlrpc_server(
array(
"event" => array(
"function" => "event"
),
"init" => array(
"function" => "init"
),
"listDevices" => array(
"function" => "listDevices"
),
"multiCall" => array(
"function" => "multiCall"
),
"listMethods" => array(
"function" => "listMethods"
),
"system.listMethods" => array(
"function" => "systemlistMethods"
),
"newDevices" => array(
"function" => "newDevices"
),
"newDevice" => array(
"function" => "newDevice"
)
));
?>