Hallo zusammen,
ich brauche bei der Erstellung eines Skript etwas Unterstützung.
Was soll das Skript tun
- Einen Shelly Plug S bei Überschuss meiner PV Anlage (solaredge) schalten.
- Die Prüfung nach x Millisekunden wiederholen.
Code
let interval = 30000;
let notifyTimer = Timer.set(interval, true, function () {
Shelly.call(
"HTTP.GET",
{
url: "https://monitoringapi.solaredge.com/site/3111507/currentPowerFlow.json?api_key=xxx",
//ssl_ca: "*",
},
function (res, error_code, error_msg, ud) {
if (res && res.code === 200) {
let resobj = JSON.parse(res.body);
print("GRID_currentPower: ", resobj.siteCurrentPowerFlow.GRID.currentPower);
if (resobj.siteCurrentPowerFlow.GRID.currentPower > 1.0) {
Shelly.call("Switch.Set", "{ id:0, on:true }", null, null);
} else {
Shelly.call("Switch.Set", "{ id:0, on:false }", null, null);
}
}
},
null
);
});
Alles anzeigen
Fehlermeldung
- shos_rpc_inst.c:230 HTTP.GET via loopback
- shelly_http_client.:302 0x3ffe165c: HTTPS GET https://monitoringapi.solaredge.com/site/3111507/c…son?api_key=xxx (CA ca.pem)
- shos_init.c:81 New min heap free: 101820
- shelly_http_client.:606 0x3ffe165c: Finished; bytes 655, code 0, redir 0/3, auth 0, status -12: Failed to parse headers
- shelly_notification:163 Status change of switch:0: {"id":0,"aenergy":{"by_minute":[0.000,0.000,0.000],"minute_ts":1696430579,"total":0.000}}
- shos_rpc_inst.c:230 script.stop via WS_in 192.168.0.55:59298
Es gibt scheinbar ein Problem mit dem parsen des headers, siehe Zeile 4
Leider komme ich mit der Dokumentation zu HTTP nicht weiter: https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/HTTP
Die Antwort meines Wechselrichters
Response-Headers
X-Firefox-Spdy: h2
cache-control: no-cache, no-store, max-age=0
content-language: de
content-type: application/json;charset=UTF-8
date: Wed, 04 Oct 2023 14:30:21 GMT
expires: Thu, 01 Jan 1970 00:00:00 GMT
pragma: no-cache
server: nginx
Resquest-Headers
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: de,en-US;q=0.7,en;q=0.3
Connection: keep-alive
Host: monitoringapi.solaredge.com
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
TE: trailers
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/118.0
Ich hoffe jemand mit mehr Erfahrung kann mir hier helfen.
Danke euch und liebe Grüße
Dominik