Keine Rückgabewerte bei PHP Modulen über JSON-RPC?

Hallo zusammen,

ich habe ein PHP Modul geschrieben, welches mir eine Methode zur Verfügung stellt, die einen Wert zurückgibt.
Wenn ich diese Methode in einem IPS-Script aufrufe, dann funktioniert das problemlos.
Beim Aufruf über die JSON-RPC-Schnittstelle hingegen bekomme ich keinen Wert zurück. Bei einer internen Methode (bspw. GetValueBoolean) funktioniert die Abfrage von Werten auch über JSON-RPC.

$rpc = new JSONRPC("http://user:pass@ip:3777/api/");

// PROBLEMSTELLE
echo "response: " . $rpc->HKA_GetPowerState(12345); // liefert keinen Rückgabewert

// FUNKTIONIERT
echo "response: " . HKA_GetPowerState(12345); // direkter Aufruf im Script liefert den richtigen Rückgabewert
echo "response: " . $rpc->GetValueBoolean(12346); // liefert den korrekten Wert der Variable
echo "response: " . $rpc->HKA_SetPowerState(12345, true); // setzen von Werten ist kein Problem und funktioniert

Funktioniert die Rückgabe von Werten bei den PHP Modulen aktuell nicht über JSON-RPC?

Danke und Gruß,

André

Kann man nicht generell bejahen :eek: (Problemsatz in der Natur wie im folgenen PHP-Auszug beim 2ten Statement kommentiert).

Folgende Funktionen (als Auszug aus einem PHP-Skript) bringen bei mir korrekte Rückgabewerte:

...
            // $EAObj2 = $rpc -> IPS_GetScriptIDByFile ($Skript); führt bei Nichtexistenz zu einem JSON-Fehler, deshalb
            $Liste = $rpc -> IPS_GetScriptList ();            // von hinten durch die Brust ins Auge
...
                $EAObj2 = $rpc -> IPS_CreateScript (0);                                         // Als ObjektName
                $rpc -> IPS_SetName ($EAObj2, $Skript);                                  
...
                $Msg = $rpc -> IPS_RunScriptWait ($EAObj2);
...

ist denn "$rpc = new JSONRPC("http://user:pass@ip:3777/api/");" korrekt ??

ip muß $ip sein mit einer IP-Adresse als String
genauso die anderen Konstanten

Viele Grüsse
Harald

Fehler kann ich auch nachstellen.
Es kommt nur ein leerer String zurück.


$rpc = new JSONRPC("http://127.0.0.1:3777/api/");
$data = $rpc->LMS_GetLibaryInfo(50852 /*[LMSSplitter]*/);
var_dump($data);
$data = LMS_GetLibaryInfo(50852 /*[LMSSplitter]*/);
var_dump($data);

 string(0) ""
array(4) {
  ["Genres"]=>
  int(60)
  ["Artists"]=>
  int(2042)
  ["Albums"]=>
  int(1124)
  ["Songs"]=>
  int(14390)
}

Michael

Fix im nächsten Update!

paresy