Freysein ...im Log des Plan44 sehe ich nichts ankommen. Kann mir jemand auf die sprünge helfen?
Der Endpoint in der P44, der von Scripten bedient werden kann ist /api/json/scriptapi nicht /api/json/custom.
Zudem muss der Sender http auth mit dem user/password der Weboberfläche machen, um Zugriff zu bekommen.
Vorallem aber muss auch ein entsprechender handler für scriptapi-Webrequests bestehen, damit Du im P44-Log etwas siehst, also etwas wie:
on (webrequest()) as req {
log(5,"webrequest: %s", req)
req.answer('ok')
}
Anstatt alle Zugriffe in einem handler zu fangen, kannst Du auch "subendpoints" machen, also z.B. einen Handler in jedem scripted device, der nur die Requests von "seinem" Shelly hört:
on (webrequest('shelly_blu_dw_001')) as req {
log(5,"shelly_blu_dw_001 sends: %s", req)
req.answer('ok')
}
Die Sende-URL in Deinem JS müsste dann (inkl. http auth) lauten:
http://" + CONFIG.PLAN44_USER + ":" + CONFIG.PLAN44_PW + "@" + CONFIG.PLAN44_IP + ":" + CONFIG.PLAN44_PORT + "/api/json/script/" + CONFIG.DEVICE_ID + ?input=0&value=" + state
Wenn Du die IP des Shelly in der P44-Implementation kennst (kennen musst, etwa weil auch Daten in die andere Richtung gehen), kannst Du webrequests auch nach IP-Adresse filtern:
on (webrequest(null, '192.168.xxx.xxx')) as req {
log(5,"192.168.xxx.xxx sends: %s", req)
req.answer('ok')
}