Alles klar.
Vielen Dank!
Beiträge von mavax
VPN/Proxy erkannt
Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.
-
-
Ja das ist erstmal ein komplett gewachsener Scriptverhau ist mir klar.
Ich habe Probleme mit dem Variable Scoping oder so...
Ahh ich sehe, der Output, den ich eigentlich mal mit gepasted haben / wollte fehlt, das ist dumm, sorry.
Das Script erzeugt folgenden Output:
Initial, wie erwartet sind power, voltage und current in data mit 0 initialisiert.Sobald aber eine Status Event den Handler triggered steht in Data nur der aktuell gesetzte Wert.
Der Timed Data teil ist natürlich Bullshit und war von mir nur zum Debuggen hinzugefügt um zu sehen, dass die Var passend resolved wird, was sie ja zum Teil wird.
Mir ist nur nicht verständlich was mit den anderen Variablen des Objekts passiert.
Habe auch versucht data per ref als user_data zu übergeben, was den selben Effekt hat.
TLDR; Was muss ich tun um, die Werte in data zusammen zu sammeln.Code
Alles anzeigenData: {"power":0,"voltage":0,"current":0} 09:42:11 Url: /script/1/metric 09:42:11 {"delta":{"running":true,"id":1},"id":1,"name":"script","component":"script:1"} 09:42:11 {} 09:42:11 {"delta":{"apower":64.300000,"id":0},"id":0,"name":"switch","component":"switch:0"} 09:42:11 {"power":64.300000} 09:42:11 TIMED Data: {"power":64.300000} 09:42:13 TIMED Data: {"power":64.300000} 09:42:15 TIMED Data: {"power":64.300000} 09:42:17 {"delta":{"current":0.312000,"id":0},"id":0,"name":"switch","component":"switch:0"} 09:42:18 {"current":0.312000} 09:42:18 {"delta":{"apower":60.800000,"id":0},"id":0,"name":"switch","component":"switch:0"} 09:42:19 {"power":60.800000} 09:42:19 TIMED Data: {"power":60.800000} 09:42:19 {"delta":{"apower":64.100000,"id":0},"id":0,"name":"switch","component":"switch:0"} 09:42:20 {"power":64.100000} 09:42:20 {"delta":{"apower":69.400000,"id":0},"id":0,"name":"switch","component":"switch:0"} 09:42:21 {"power":69.400000} 09:42:21 TIMED Data: {"power":69.400000} 09:42:21 {"delta":{"apower":64.800000,"id":0},"id":0,"name":"switch","component":"switch:0"} 09:42:22 {"power":64.800000}
-
Hi Zusammen,
ich versuche gerade die Power Voltage und Current werte eines Plug S mittels EventHandler zu sammeln um diese gesammelt mittels HTTP.registerEndpoint zur Verfügung zu stellen.
Leider bin ich nicht gerade fluent in Javascript. Was mich zu folgenden Problem führt.
In folgenden Script sollten die Messdaten im dict data gespeichert werden. Allerdings sieht der Output wie unten dargestellt aus. Habe bereits versucht die Referenz auf data mittels userdata zu übergeben -> erfolglos, data mittels var zu definieren führt zum Fehler var not implemented.
Würde mich über hinweise freuen.
THX
Code
Alles anzeigenlet data = { "current": 0, "voltage": 0, "power": 0 }; function httpCallback(request, response, userdata) { response.code = 200; response.body = "Hello You"; response.send(); }; let httpEndpoint = HTTPServer.registerEndpoint("metric", httpCallback); print("Data: ", JSON.stringify(data)) let evtSubs = Shelly.addStatusHandler(function (event_data, userdata){ print(JSON.stringify(event_data)); if (event_data.delta.apower !== null){ data["power"] = event_data.delta.apower; } if (event_data.delta.current !== null){ data["current"] = event_data.delta.current; } if (event_data.delta.voltage !== null){ data["voltage"] = event_data.delta.voltage; } print(JSON.stringify(data)); }, null); print("Url: " + httpEndpoint ); // Shelly.GetStatus function timerCode() { print("TIMED Data: ", JSON.stringify(data)) }; Timer.set( /* number of miliseconds */ 2000, /* repeat? */ true, /* callback */ timerCode );