So nun bin ich etwas weiter. Man kommt ja so langsam da rein.
Kann mir bitte jemand dies erklären.
1. Kann es sein das es in dem Script Hauptsächlich darum geht die (JSON)Werte einer Variablen zu zuweisen.
Was ja bei meiner Firmware nicht nötig ist da ja alles schon geordnet ist.
2. Könnte man dieses Script etwas abändern damit z.B.
Ampere
Watt
Heute
Gestern
Monat
Total
von allen sonoffpow( bzw. Energiemessgeräten ) in je einem Datenpunkt gesammelt werden ?
Und wie berechnet das Script überhaupt den Verbrauch, ich kann nirgend wo eine Berechnung sehen. Normal müsste doch einfach Total / und Heute hochzählen und so weiter…..und ab 0Uhr wieder von vorne.
Ich kann mir nicht vorstellen das es so komplex ist das umzusetzen oder sehe ich das falsch, leider verstehe ich von diesen Programmier teilen nicht so viel.
Fehler die ich Aktuell habe:
javascript.0 2017-11-10 19:16:50.130 warn at Object. (script.js.common.Sonoff-POW2-Werte:63:9)
javascript.0 2017-11-10 19:16:50.130 warn Wrong type of javascript.0.jsonconverter.SonoffPOW.POW2.Gestern: "undefined". Please fix, while deprecated and will not work in next versions.
javascript.0 2017-11-10 19:16:50.130 warn at Object. (script.js.common.Sonoff-POW2-Werte:62:9)
javascript.0 2017-11-10 19:16:50.130 warn Wrong type of javascript.0.jsonconverter.SonoffPOW.POW2.Heute: "undefined". Please fix, while deprecated and will not work in next versions.
javascript.0 2017-11-10 19:16:50.129 warn at Object. (script.js.common.Sonoff-POW2-Werte:61:9)
javascript.0 2017-11-10 19:16:50.129 warn Wrong type of javascript.0.jsonconverter.SonoffPOW.POW2.Total: "string". Please fix, while deprecated and will not work in next versions.
javascript.0 2017-11-10 19:16:50.129 warn at Object. (script.js.common.Sonoff-POW2-Werte:60:9)
javascript.0 2017-11-10 19:16:50.129 warn Wrong type of javascript.0.jsonconverter.SonoffPOW.POW2.Ampere: "string". Please fix, while deprecated and will not work in next versions.
javascript.0 2017-11-10 19:16:50.129 warn at Object. (script.js.common.Sonoff-POW2-Werte:59:9)
javascript.0 2017-11-10 19:16:50.129 warn Wrong type of javascript.0.jsonconverter.SonoffPOW.POW2.Volt: "string". Please fix, while deprecated and will not work in next versions.
javascript.0 2017-11-10 19:16:50.129 warn at Object. (script.js.common.Sonoff-POW2-Werte:58:9)
javascript.0 2017-11-10 19:16:50.128 warn Wrong type of javascript.0.jsonconverter.SonoffPOW.POW2.Watt: "string". Please fix, while deprecated and will not work in next versions.
/*
Json Converter Sonoff POW
Setup: Pfad + Channel + SName setzen / immer ein . am ende
*/
var pfad = "javascript.0.jsonconverter.";
var channel = "SonoffPOW.";
var sname = "POW2.";
// do not change
var idwatt = pfad + channel + sname + 'Watt';
var idvolt = pfad + channel + sname + 'Volt';
var idampere = pfad + channel + sname + 'Ampere';
var idtotal = pfad + channel + sname + 'Total';
var idyesterday = pfad + channel + sname + 'Gestern';
var idtoday = pfad + channel + sname + 'Heute';
// Create States
createState(idwatt, 0,{type: 'number',name: 'Aktuelle Leistung', read: true,write: true,role: 'value'});
createState(idvolt, 0,{type: 'number',name: 'Aktuelle Spannung', read: true,write: true,role: 'value'});
createState(idampere, 0,{type: 'number',name: 'Aktueller Strom', read: true,write: true,role: 'value'});
createState(idtotal, 0,{type: 'number',name: 'Total KWh', read: true,write: true,role: 'value'});
createState(idyesterday, 0,{type: 'number',name: 'Gestern KWh', read: true,write: true,role: 'value'});
createState(idtoday, 0,{type: 'number',name: 'Heute KWh', read: true,write: true,role: 'value'});
// script beginning
on({id: 'mqtt.0.POW.switch.POW2.data', change: "any"}, function (obj) {
//variabele erstellen fuer meine 3 beispiel objecte
var volt;
var power;
var ampere;
var total;
var today;
var yesterday;
try {obj = JSON.parse(getState('mqtt.0.POW.switch.POW2.data').val);
} catch (e) {
console.error('Cannot parse: ' + getState('mqtt.0.POW.switch.POW2.data').val);
return;
}
volt = obj.voltage;
watt = obj.power;
ampere = obj.current;
total = obj.energy_total;
today = obj.today;
yesterday = obj.yesterday;
setState(idwatt, watt);
setState(idvolt, volt);
setState(idampere, ampere);
setState(idtotal, total);
setState(idtoday, today);
setState(idyesterday, yesterday);
log(volt);
log(watt);
log(ampere);
log(total);
log(today);
log(yesterday);
});
( JSON )
{"current":"0.08","apparent":"18","energy_delta":"160.000","energy_total":"54789.000","power":"13","reactive":"12","voltage":"221","factor":"72.22","time":"2017/11/10 19:25:58","host":"POW2","ip":"192.168.178.56"}