@bahnuhr
Das angepasste Script mit angepassten Variablen erzeugt bei mir WarnMeldungen und es werden keine Variablen aktualisiert, ich habe den schedule Teil ausgenommen um es erstmal manuell zu starten...
Name und Kennwort habe ich nachträglich unkenntlich gemacht.
// Photovoltaik: Piko 5.5 Anlage (alte Firmware)
// Danke an homoran für den regex
// @bahnuhr; 03/2019 Dieter Müller
// @bahnuhr; 10/2021 Dieter Müller - angepasst auf 3 String
//Variaben
var idaktuell = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_aktuell';
var idTag = '0_userdata.0.Geraete.PV.Photovoltaik.Tagesleistung';
var idall = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_gesamt';
var idP1 = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_Strang1';
var idP2 = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_Strang2';
var idP3 = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_Strang3';
var NameAnlage = 'pvXXXX'; // Nutzername der Photovoltaik-Anlage
var PassAnlage = 'pXXXXX'; // Password der Photovoltaik-Anlage
var IPAnlage = '192.168.1.8'; // IP der Photovoltaik-Anlage
var logging = false;
var request = require('request');
function Piko() {
log("Piko 5.5 auslesen");
var results = [];
request('http://' + NameAnlage + ':' + PassAnlage +'@' + IPAnlage, function (error, response, body) {
var d = body.toString();
if (logging) log (d);
var reg = /#FFFFFF">[^\d]+([^<]+)/g
var z = reg.exec(d);
while(z != null) {
if (isNaN(z[1])) {
if (logging) log("keine Zahl= "+ z[1]);
z[1] = 0;
} else {
if (logging) log("Zahl= "+ z[1]);
parseFloat(z[1]);
}
results[results.length] = z[1];
z = reg.exec(d);
}
if (logging) log("results= "+ results);
// Werte zuordnen
var pwr = results[0]; // Energie aktuell in W
var day = results[2]; // Tagesenergie in kWh
var all = results[1]; // Gesamtenergie in kWh
var v1 = results[3]; // PV Generator Nr. 1 - Spannung in V
var i1 = results[5]; // PV Generator Nr. 1 - Strom in A
var p1 = parseInt(v1 * i1);
var v2 = results[7]; // PV Generator Nr. 2 - Spannung in V
var i2 = results[9]; // PV Generator Nr. 2 - Strom in A
var p2 = parseInt(v2 * i2);
var v3 = results[11]; // PV Generator Nr. 3 - Spannung in V
var i3 = results[13]; // PV Generator Nr. 3 - Strom in A
var p3 = parseInt(v3 * i3);
if (logging) log("Leistung aktuell= " + pwr + " W");
if (logging) log("Tagesleistung= " + day + " kWh");
if (logging) log("Leistung gesamt= " + all + " kWh");
if (logging) log("Leistung Strang 1= " + p1 + " W");
if (logging) log("Leistung Strang 2= " + p2 + " W");
if (logging) log("Leistung Strang 3= " + p3 + " W");
setState(idaktuell, parseFloat(pwr));
setState(idTag, parseFloat(day));
setState(idall, parseFloat(all));
setState(idP1, parseFloat(p1));
setState(idP2, parseFloat(p2));
setState(idP3, parseFloat(p3));
});
}
Piko();
return;
schedule("2,7,12,17,22,27,32,37,42,47,52,57 * * * *", function () {
log ("Auslöser: Schedule");
Piko();
});
schedule("3 0 * * *", function () { // Variablen löschen um 00:03 Uhr
setState('javascript.0.Geräte.Photovoltaik.Tagesleistung', 0);
});