-
Autor
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
let 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
);
Alles anzeigen