@homoran
was meinst Du mit Array? Meinst Du die Ausgabe unter dem Script?
Kann es sein, dass es irgendein Rechteproblem ist weswegen das Script nicht die Objekte beschreiben darf?
@homoran
was meinst Du mit Array? Meinst Du die Ausgabe unter dem Script?
Kann es sein, dass es irgendein Rechteproblem ist weswegen das Script nicht die Objekte beschreiben darf?
Den screenshot der Objekte ist ja im Post vorher.
Und hier das Skript:
// Photovoltaik: Piko 5.5 Anlage (alte Firmware)
// Danke an homoran für den regex
// @bahnuhr; 03/2019 Dieter Müller
//Variaben
var idaktuell = 'javascript.0.Photovoltaik.Leistung_aktuell';
var idTag = 'javascript.0.Photovoltaik.Tagesleistung';
var idall = 'javascript.0.Photovoltaik.Leistung_gesamt';
var idP1 = 'javascript.0.Photovoltaik.Leistung_Strang1';
var idP2 = 'javascript.0.Photovoltaik.Leistung_Strang2';
var idP3 = 'javascript.0.Photovoltaik.Leistung_Strang3';
var NameAnlage = 'pvserver'; // Nutzername der Photovoltaik-Anlage
var PassAnlage = 'pvwr'; // Password der Photovoltaik-Anlage
var IPAnlage = '192.168.176.211'; // IP der Photovoltaik-Anlage
var logging = false;
var request = require('request');
function Piko() {
log("Piko 10.1 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);
log (z[1]);
}
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));
});
}
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.Photovoltaik.Tagesleistung', 0);
});
Mein "Hauptproblem" ist gerade, dass die Objekte nicht geschrieben werden.
Das Skript läuft ja grundsätzlich und holt Werte vom Wechselrichter ab.
Info am Rande:
@SirTiGer will in den nächsten Tagen sein für Kostal 10.1 (3 Strings) angepasstes Skript hier einstellen, dann ist das auch mal hier für die Nachwelt verfügbar.
Guten Morgen allerseits,
sorry dass ich nur sporadisch schreiben kann, aber zeitlich klapt es leider nicht anders.
Aktueller Stand:
Im Fenster unter dem Skript sehe ich nach jeder Abfrage des Wechselrichters die aktuellen Werte (ich glaube die aktuelle AC-Leistung gesamt fehlt hierbei).
Die "Objekte" im Ordner "Photovoltaik" werden jedoch nicht aktualisiert.
Im Objekt "Leistung Strang 3" habe ich mal händisch eine "1" geschrieben, diese wird auch nicht überschrieben.
Ich sende mal ein paar Fotos. Die EInstellungen der Instanz "javascript" mit den "Schreib Rechten" sollte doch so passen , oder?
Ich habe jetzt auch nochmal das Script, das die Variablen erzeugt wie folgt angepasst.
// Photovoltaik -------------------------------------------------------------------------------------------------------------
createState('javascript.0.Photovoltaik.Leistung_aktuell', 0, {type: 'number',name: 'Leistung aktuell',min: 0,role: 'per Script'});
createState('javascript.0.Photovoltaik.Tagesleistung', 0, {type: 'number',name: 'Tagesleistung',min: 0,role: 'per Script'});
createState('javascript.0.Photovoltaik.Leistung_gesamt', 0, {type: 'number',name: 'Leistung gesamt',min: 0,role: 'per Script'});
createState('javascript.0.Photovoltaik.Leistung_Strang1', 0, {type: 'number',name: 'Leistung Strang 1',min: 0,role: 'per Script'});
createState('javascript.0.Photovoltaik.Leistung_Strang2', 0, {type: 'number',name: 'Leistung Strang 2',min: 0,role: 'value'});
createState('javascript.0.Photovoltaik.Leistung_Strang3', 0, {type: 'number',name: 'Leistung Strang 3',min: 0,role: 'value'});
Die Variablen (Objekte) sind nun auch vorhanden.
Aber alle haben den Wert "0".
Ich werde morgen weiterschauen... Muss für heute Schluss machen.
Vielen Dank schonmal für die tatkräftige Unterstützung!
in etwa so?
// Photovoltaik: Piko 5.5 Anlage (alte Firmware)
// Danke an homoran für den regex
// @bahnuhr; 03/2019 Dieter Müller
//Variaben
var idaktuell = 'javascript.0.Photovoltaik.Leistung_aktuell';
var idTag = 'javascript.0.Photovoltaik.Tagesleistung';
var idall = 'javascript.0.Photovoltaik.Leistung_gesamt';
var idP1 = 'javascript.0.Photovoltaik.Leistung_Strang1';
var idP2 = 'javascript.0.Photovoltaik.Leistung_Strang2';
var idP3 = 'javascript.0.Photovoltaik.Leistung_Strang3';
var NameAnlage = 'pvserver'; // Nutzername der Photovoltaik-Anlage
var PassAnlage = 'pvwr'; // Password der Photovoltaik-Anlage
var IPAnlage = '192.168.176.211'; // IP der Photovoltaik-Anlage
var logging = false;
var request = require('request');
function Piko() {
log("Piko 10.1 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);
log (z[1]);
}
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));
});
}
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.Photovoltaik.Tagesleistung', 0);
});
Ich habe jetzt mal so erweitert:
// Photovoltaik: Piko 5.5 Anlage (alte Firmware)
// Danke an homoran für den regex
// @bahnuhr; 03/2019 Dieter Müller
//Variaben
var idaktuell = 'javascript.0.Photovoltaik.Leistung_aktuell';
var idTag = 'javascript.0.Photovoltaik.Tagesleistung';
var idall = 'javascript.0.Photovoltaik.Leistung_gesamt';
var idP1 = 'javascript.0.Photovoltaik.Leistung_Strang1';
var idP2 = 'javascript.0.Photovoltaik.Leistung_Strang2';
var NameAnlage = 'pvserver'; // Nutzername der Photovoltaik-Anlage
var PassAnlage = 'pvwr'; // Password der Photovoltaik-Anlage
var IPAnlage = '192.168.176.211'; // IP der Photovoltaik-Anlage
var logging = false;
var request = require('request');
function Piko() {
log("Piko 10.1 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);
log (z[1]);
}
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[12]; // 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));
});
}
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.Photovoltaik.Tagesleistung', 0);
});
Danke Dir schonmal.
Lass das aber erstmal. Es eilt mir nicht.
Ich hoffe einfach dass @bahnuhr nochmal reinschaut und seinen code postet.
Viele Grüße
Hier nochmal das bisherige Script in Code-Tags:
// Photovoltaik: Piko 5.5 Anlage (alte Firmware)
// Danke an homoran für den regex
// @bahnuhr; 03/2019 Dieter Müller
//Variaben
var idaktuell = 'javascript.0.Photovoltaik.Leistung_aktuell';
var idTag = 'javascript.0.Photovoltaik.Tagesleistung';
var idall = 'javascript.0.Photovoltaik.Leistung_gesamt';
var idP1 = 'javascript.0.Photovoltaik.Leistung_Strang1';
var idP2 = 'javascript.0.Photovoltaik.Leistung_Strang2';
var NameAnlage = 'pvserver'; // Nutzername der Photovoltaik-Anlage
var PassAnlage = 'pvwr'; // Password der Photovoltaik-Anlage
var IPAnlage = '192.168.176.211'; // IP der Photovoltaik-Anlage
var logging = false;
var request = require('request');
function Piko() {
log("Piko 10.1 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);
log (z[1]);
}
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);
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");
setState(idaktuell, parseFloat(pwr));
setState(idTag, parseFloat(day));
setState(idall, parseFloat(all));
setState(idP1, parseFloat(p1));
setState(idP2, parseFloat(p2));
});
}
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.Photovoltaik.Tagesleistung', 0);
});
Nach dem Post von SirTiGer
am 31 Dec 2022, 14:06 hatte ich gehofft, dass er einfach nochmal seinen Code hier einstellt.....
Hier der Quelltext von meinem Wechselrichter:
<!DOCtype HTML PUBLIC "-//W3C//Dtd HTML 4.0 Transitional//EN">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<meta name="Generator" CONTENT="ChrisB">
<title>PV Webserver</title>
</head>
<body nof="(MB=(DefaultMasterborder, 65, 60, 150, 10), L=(HomeLayout, 700, 600))" bgcolor="#EAF7F7" text="#000000" link="#0033CC" vlink="#990099" alink="#FF0000" topmargin=0 leftmargin=0 marginwidth=0 marginheight=0>
<form method="post" action="">
<table cellspacing="0" cellpadding="0" width="770" nof="ly">
<tr><td height="5"></td></tr>
<tr><td width="190" height="55"></td>
<td width="400">
<font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif" size="+3">
PIKO 10.1
<br><font size="+1">
Friedrich (255)
</font>
</font>
</td>
<td><img alt="Logo" height="42" width="130" src="KSE.gif"></td>
</tr>
</table>
<font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif">
<table Border="0" width="100%"><tr>
<td width="150"></td>
<td> <hr> </td>
</tr></table>
<table cellspacing="0" cellpadding="0" width="770">
<tr><td></td></tr>
<tr>
<td width="190"></td>
<td colspan="2">
<b>AC-Leistung</b></td>
<td> </td>
<td>
<b>Energie</b></td></tr>
<tr><td height="10"></td></tr>
<tr>
<td width="190"></td>
<td width="100">
aktuell</td>
<td width="70" align="right" bgcolor="#FFFFFF">
x x x </td>
<td width="140">  W</td>
<td width="100">
Gesamtenergie</td>
<td width="70" align="right" bgcolor="#FFFFFF">
69360</td>
<td width="50">  kWh</td>
<td> </td></tr>
<tr height="2"><td></td></tr>
<tr>
<td width="190"></td>
<td width="100">
 </td>
<td width="70" align="right">
 </td>
<td width="140"> </td>
<td width="100">
Tagesenergie</td>
<td width="70" align="right" bgcolor="#FFFFFF">
29.41</td>
<td width="50">  kWh</td>
<td> </td></tr>
<tr height="5"><td></td></tr>
<tr>
<td width="190"></td>
<td width="100">
Status</td>
<td colspan="4">
Aus</td>
<td> </td></tr>
<tr height="8"><td></td></tr>
<tr><td colspan="7">
<table align="top" width="100%"><tr>
<td width="182"></td>
<td><hr size="1"></font></td></tr>
<tr><td height="5"></td></tr></table>
</td></tr>
<tr>
<td width="190"></td>
<td colspan="2">
<b>PV-Generator</b></td>
<td width="140"> </td>
<td colspan="2">
<b>Ausgangsleistung</b></td>
<td width="30"> </td>
<td> </td></tr>
<tr><td height="10"></td></tr>
<tr>
<td width="190"></td>
<td width="100">
<u>String 1</u></td>
<td width="70"> </td>
<td width="140"> </td>
<td width="95">
<u>L1</u></td>
<td width="70"> </td>
<td width="30"> </td>
<td> </td></tr>
<tr>
<td width="190"></td>
<td width="100">
Spannung</td>
<td width="70" align="right" bgcolor="#FFFFFF">
x x x </td>
<td width="140">  V</td>
<td width="100">
Spannung</td>
<td width="70" align="right" bgcolor="#FFFFFF">
x x x </td>
<td width="30">  V</td>
<td> </td></tr>
<tr height="2"><td></td></tr>
<tr valign="top" align="left">
<td width="190"> </td>
<td width="100">
Strom</td>
<td width="70" align="right" bgcolor="#FFFFFF">
x x x </td>
<td width="140">  A</td>
<td width="100">
Leistung</td>
<td width="70" align="right" bgcolor="#FFFFFF">
x x x </td>
<td width="30">  W</td>
<td> </td></tr>
<tr height="22"><td></td></tr>
<tr>
<td width="190"></td>
<td width="100">
<u>String 2</u></td>
<td width="70"> </td>
<td width="140"> </td>
<td width="100">
<u>L2</u></td>
<td width="70"> </td>
<td width="30"> </td>
<td> </td></tr>
<tr>
<td width="190"></td>
<td width="100">
Spannung</td>
<td width="70" align="right" bgcolor="#FFFFFF">
x x x </td>
<td width="140">  V</td>
<td width="100">
Spannung</td>
<td width="70" align="right" bgcolor="#FFFFFF">
x x x </td>
<td width="30">  V</td>
<td> </td></tr>
<tr height="2"><td></td></tr>
<tr valign="top" align="left">
<td width="190"> </td>
<td width="100">
Strom</td>
<td width="70" align="right" bgcolor="#FFFFFF">
x x x </td>
<td width="140">  A</td>
<td width="100">
Leistung</td>
<td width="70" align="right" bgcolor="#FFFFFF">
x x x </td>
<td width="30">  W</td>
<td> </td></tr>
<tr height="22"><td></td></tr>
<tr>
<td width="190"></td>
<td width="100">
<u>String 3</u></td>
<td width="70"> </td>
<td width="140"> </td>
<td width="100">
<u>L3</u></td>
<td width="70"> </td>
<td width="30"> </td>
<td> </td></tr>
<tr>
<td width="190"></td>
<td width="100">
Spannung</td>
<td width="70" align="right" bgcolor="#FFFFFF">
x x x </td>
<td width="140"> 
V</td>
<td width="95">
Spannung</td>
<td width="70" align="right" bgcolor="#FFFFFF">
x x x </td>
<td width="30">  V</td>
<td> </td></tr>
<tr height="2"><td></td></tr>
<tr valign="top" align="left">
<td width="190"> </td>
<td width="95">
Strom</td>
<td width="70" align="right" bgcolor="#FFFFFF">
x x x </td>
<td width="140"> 
A</td>
<td width="95">
Leistung</td>
<td width="70" align="right" bgcolor="#FFFFFF">
x x x </td>
<td width="30">  W</td>
<td> </td></tr>
<tr><td height="15"></td></tr>
<tr><td colspan="7">
<table align="top" width="100%">
<tr><td width="182"></td>
<td><hr size="1"></font></td>
</tr><tr><td height="5"></td></tr></table>
</td></tr></table>
<table cellspacing="0" cellpadding="0" width="770">
<tr><td width="190"></td>
<td><font face="Arial,Helvetica,Geneva,Sans-serif">
<b>RS485 Kommunikation</b></td></tr>
<tr><td height="8"></td></tr>
<tr><td width="190"></td>
<td><font face="Arial,Helvetica,Geneva,Sans-serif">
Wechselrichter 
<INPUT TYPE="Text" NAME="edWrNr" VALUE="255" SIZE="3" MAXLENGTH="3">
<input type="submit" value="Anzeigen/Aktualisieren">
</td></tr><tr><td height="10"></td></tr>
</table>
</td></tr></table></font>
<hr>
<table cellspacing="0" cellpadding="0" width="770">
<tr><td height="5"></td></tr>
<tr><td width="190"></td>
<td width="440">
<font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif">
<a href="LogDaten.dat">Historie</a>
   
<a href="Info.fhtml">Infoseite</a>
   
<a href="BA.fhtml"></a>
   
<a href="igak.fhtml"></a>
</font></td>
<td align="right">
<font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif">
<a href="Solar2.fhtml">Einstellungen</a></font></td>
<td width="50"></td>
</tr></table></font>
</form>
</body>
</html>
Achso, ich dachte man kann irgendwo im Downloadbereich dieses Script downloaden und ich finde es nur nicht.
Ich bin ganz neu mit iobroker und auch in diesem Forum.
Aktuell nutze ich dieses Script:
// Photovoltaik: Piko 5.5 Anlage (alte Firmware)
// Danke an homoran für den regex
// @bahnuhr; 03/2019 Dieter Müller
//Variaben
var idaktuell = 'javascript.0.Photovoltaik.Leistung_aktuell';
var idTag = 'javascript.0.Photovoltaik.Tagesleistung';
var idall = 'javascript.0.Photovoltaik.Leistung_gesamt';
var idP1 = 'javascript.0.Photovoltaik.Leistung_Strang1';
var idP2 = 'javascript.0.Photovoltaik.Leistung_Strang2';
var NameAnlage = 'pvserver'; // Nutzername der Photovoltaik-Anlage
var PassAnlage = 'pvwr'; // Password der Photovoltaik-Anlage
var IPAnlage = '192.168.176.211'; // IP der Photovoltaik-Anlage
var logging = false;
var request = require('request');
function Piko() {
log("Piko 10.1 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);
log (z[1]);
}
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);
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");
setState(idaktuell, parseFloat(pwr));
setState(idTag, parseFloat(day));
setState(idall, parseFloat(all));
setState(idP1, parseFloat(p1));
setState(idP2, parseFloat(p2));
});
}
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.Photovoltaik.Tagesleistung', 0);
});
MOD-EDIT: Code in code-tags gesetzt!
Das sind die Ausgen:
31.8.2023, 20:12:00.005 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: Auslöser: Schedule
31.8.2023, 20:12:00.005 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: Piko 10.1 auslesen
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 69360
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 29.41
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 219
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 229
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 0.00
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 0
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 218
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 228
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 0.00
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 0
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 218
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 226
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 0.00
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 0