Ich möchte von einem ShellyPlus1 auf einen anderen ShellyPlus1 Daten übertragen. Ich stelle mir das so vor wie mit den Actions, die man z.B. in einem ShellyPlusHT aktivieren kann und damit eine Funktion auf anderen Shellys aufrufen kann.
Funktionierende Beispiel:
Action auf HTPlus1: http://192.168.62.17/rpc/script.eval?id=2&code="htTest(${ev.tC})"
Dies führt auf dem ShellyPlus1 zum Aufruf der Funktion htTest:
function htTest(Temp)
{
console.log ("Temp:"+Temp);
}
Jetzt möchte ich aber einen ähnlichen Aufruf (für das Beispiel hier der gleiche Aufruf htTest(Temp)) von einem Skript auf einem anderen ShellyPlus1 aus auslösen.
Leider habe ich hierfür kein Beispiel im Forum gefunden. Ich habe mich etwas rangetastet mit diesem Code-Schnipsel für das sendende ShellyPlus1:
function callOtherShelly()
{
console.log ("Shelly.call ...");
try{
Shelly.call('http.get', {url: 'http://admin:@192.168.62.17/rpc/script.eval?id=2 & code="htTest(21.5)"'});
}catch(e){print(e);}
console.log ("... Shelly.call");
}
Der Aufruf von callOtherShelly() führt im Debuglog des SenderShelly zu:
shos_rpc_inst.c:243 script.eval via WS_in 192.168.62.2:63021
Shelly.call ...
shelly_ejs_rpc.cpp:41 Shelly.call http.get {"url":"http://admin:@192.168.62.17/rpc/script.eval?id=2 & code=\"htTest(21.5)\""}
... Shelly.call
shos_rpc_inst.c:243 http.get via loopback
shelly_http_client.:308 0x3ffdfc48: HTTP GET http://admin:@192.168.62.17/rpc/script.eval?id=2 & code="htTest(21.5)"
shelly_http_client.:611 0x3ffdfc48: Finished; bytes 0, code 0, redir 0/3, auth 0, status -1: Connection error: -14
Beim EmpfängerShelly gibt es keinen Debuglogeintrag.
Ich hoffe, die Idee für das was ich machen möchte, kommt rüber.
Jetzt wäre es super, wenn ich etwas Hilfe bei der Überwindung der Skripthürde bekommen würde.