Hallo,
ich benutze Homegear 0.8.0-2302 (nightly) auf einem Raspi 3.
Um die Rooms abzufragen, benutze ich die Funktion getDeviceDescription.
Folgender PHP-Code liefert das korrekte Ergebnis, wenn er direkt über homegear ausgeführt wird:
$description=$hg->getDeviceDescription(2,-1,[“ROOM”]);
var_dump($description);
Ergebnis:
array(1) {
[“ROOM”]=>
int(1)
}
Wenn ich die Abfrage aber von einem anderen Computer aus über den XMLRPC Client ausführe, erhalte ich keinen Rückgabewert für den Room:
$description=$Client->send(“getDeviceDescription”,array(2,-1,[“ROOM”]));
var_dump($description);
liefert leider das Ergebnis
array(1) {
[“ROOM”]=>
NULL
}
Ich verwende keine Authentifizierung und alle anderen Befehle über die XMLRPC Schnittstelle funktionieren problemlos. Es kann also kein generelles Issue sein.
Andere Description-Felder wie z.B. „NAME“ geben jeweils das richtige Ergebnis zurück.
Das Logfile zeigt an, dass Homegear eigentlich die richtige Antwort zurückschickt:
09/14/18 15:01:44.297 RPC Server (Port 2001): Info: Client number 548 is calling RPC method: getDeviceDescription (1) Parameters:
(Integer) 2
(Integer) -1
(Array length=1)
{
(String) ROOM
}
09/14/18 15:01:44.298 RPC Server (Port 2001): Response:
(Struct length=1)
{
[ROOM]
{
(Integer64) 1
}
}
Kann das an der PHP Version liegen ? Auf dem Client läuft PHP7.0.
Abgesehen davon, wie wäre es mit einer Funktion getDeviceRoom o.Ä., die gleich die Room-ID eines Devices liefert ? Das wäre wirklich praktisch.
Vielen Dank !
Viele Grüße
FiveEights