Ich übertrage Daten von meinen Raspis (IPS 4.0) auf mein Windows Wirksystem unter IPS 3.4 nach dem Rezept Datenaustausch mit der o.g. Funktion. Damit übertrage ich Daten und Kommandos.
Das funktioniert bestens!
Ohne Erläuterung ein Auszug mit dem Aufruf:
$rpc -> IPS_RunScriptEx ($LAN['Svr1']['Con'], Array ( // als Heartbeat
'Cmd' => "PutData",
'PC' => PCname,
'ObjTp' => 'LE', // = Bluetooth Low Energie
'EAObj' => 'LE',
'ParPac' => serialize ($DvListe['LE']),
'TRIG' => $_IPS['SELF'] . '@' . PCname));
Nur kurz: im array $LAN stehen die IP-Adressen, Passwörter usw.
Jetzt versuche ich, Daten mit der gleichen Methode von IPS 3.4 an 4.0 zu senden und scheitere.
Hier der Auszug mit Trace-Informationen (auch die auskommentierte Funktion IPS_RunScript scheitert):
print ("
'new JSONRPC' folgt:
");
print ("http://" . $LAN['Svr1']['Li'] . ':' . $LAN[$PC]['PW'] . '@' . $LAN[$PC]['IP'] . '/api/');
$rpc = new JSONRPC ("http://" . $LAN['Svr1']['Li'] . ':' . $LAN[$PC]['PW'] . '@' . $LAN[$PC]['IP'] . '/api/');
// print ("
'rpc ->' IPS_RunScript folgt
");
// print ($LAN[$PC]['Con']);
// $rpc -> IPS_RunScript ($LAN[$PC]['Con']);
print ("
'rpc ->' IPS_RunScriptEx folgt mit ObjID ");
print ($LAN[$PC]['Con']);
$rpc -> IPS_RunScriptEx ($LAN[$PC]['Con'], Array (
'Cmd' => "SetSkript",
'PC' => PCname,
'ObjTp' => 'Skript',
'EAObj' => $EAObj,
'Par' => IPS_GetScriptContent ($EAObj),
'TRIG' => $_IPS['SELF'] . '@' . PCname));
Das ist die Fehlerausgabe (Angaben zu Lizenz und Passwörtern mit ‚?‘ gelöscht):
'new JSONRPC' folgt:
http://H?????@T-Online.de:???@192.168.0.82/api/
'rpc ->' IPS_RunScriptEx folgt mit ObjID 25764
Fatal error: Uncaught exception 'Exception' with message 'Request error: No response' in D:\IPS-Steigerts\scripts\__jsonrpc.inc.php:109
Stack trace:
#0 D:\IPS-Steigerts\scripts\__jsonrpc.inc.php(37): JSONRPC::makeRequest('http://192.168....', 'H?????@T-On...', '???', 'IPS_RunScriptEx', Array, false)
#1 D:\IPS-Steigerts\scripts\JSONcon.ips.php(87): JSONRPC->__call('IPS_RunScriptEx', Array)
#2 D:\IPS-Steigerts\scripts\JSONcon.ips.php(87): JSONRPC->IPS_RunScriptEx(25764, Array)
#3 {main}
thrown in D:\IPS-Steigerts\scripts\__jsonrpc.inc.php on line 109
Das aufzurufende Skript mit der ObjID 25764 existiert auf dem Zielsystem, es wird aber nicht aufgerufen.
Wo liegt der Fehler?
Viele Grüsse
Harald