NEWS
Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?
-
@hotmaggi sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
bei mir heißen die Variablen anders... das scheint der Fehler zu sein...
Natürlich
-
Funktioniert einwandfrei. Vielen Dank!
Habe einen alten Piko 5.5 mit FW 3.70 (nicht aktualisierbar). Datenpunkte per Script angelegt, einmalig laufen lassen. Abfragescript erstellt, dabei User/PW und IP eingetragen. Klappt alles auf Anhieb.Was ich mich frage: Läuft das Script von alleine immer wieder durch, oder muss ich das selbst irgendwie dazu bewegen? So wie ich es interpretiere, läuft das Script von alleine alle 5 Minuten los, richtig?
Wie könnte ich es z.B. jede Minute laufen lassen (ohne alle Zahlen von 0-59 in schedule einzutragen) -
@bahnuhr : Lässt es sich eigentlich irgendwie vermeiden, dass für jede Abfrage ein Eintrag ins iobroker-Log geschrieben wird? Ich lasse die Abfrage minütlich laufen, da kommt ganz schön was zusammen...
Falls du mir auch noch sagen könnte, wie das hinbekomme, dass das Script alle Minute läuft, ohne alle Zahlen von 0 bis 59 in "schedule" eintragen zu müssen, wäre cool.
-
@io2345 sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
dass das Script alle Minute
* * * * *
im ersten Cron!@io2345 sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
ie vermeiden, dass für jede Abfrage ein Eintrag ins iobroker-Log geschrieben wird?
im ersten Cron die Zeile
log....
entfernen -
Klasse, funzt. Vielen Dank für die spontane Hilfe!
Für alle, die sich - wie ich - erst mal am Kopf kratzen, bevor sie verstehen, was zu ändern ist. Das Ende des obigen Scripts sieht dann so aus:...
schedule("* * * * *", 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);
}); -
@homoran Seit kurzem kommt regelmäßig folgende Meldung bei diesem Script:
"request package is deprecated - please use httpGet (or a stable lib like axios) instead"
Weiß einer der Nutzer, wie das anzupassen wäre? Ich vermute mal schwer, es geht um den Abschnitt, der mitrequest('http://' + NameAnlage + ':' + PassAnla...
beginnt. Aber was man da jetzt genau ändern müsste ???
-
@io2345 sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
@homoran Seit kurzem kommt regelmäßig folgende Meldung bei diesem Script:
"request package is deprecated - please use httpGet (or a stable lib like axios) instead"
Weiß einer der Nutzer, wie das anzupassen wäre? Ich vermute mal schwer, es geht um den Abschnitt, der mitrequest('http://' + NameAnlage + ':' + PassAnla...
beginnt. Aber was man da jetzt genau ändern müsste ???
Vielleicht ist @bahnuhr so nett und passt das Skript nochmal an.
-
@homoran
Für Rainer mach ich alles.
Obwohl es 100.. Beispiele mittlerweile gibt, wie man dies anpasst.Dieses läuft bei mir derzeit:
// 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.Geräte.Photovoltaik.2012_Leistung_alt_aktuell'; var idTag = 'javascript.0.Geräte.Photovoltaik.2012_Tagesleistung'; var idall = 'javascript.0.Geräte.Photovoltaik.2012_Leistung_alt_gesamt'; var idP1 = 'javascript.0.Geräte.Photovoltaik.2012_Leistung_Strang1'; var idP2 = 'javascript.0.Geräte.Photovoltaik.2012_Leistung_Strang2'; var NameAnlage = 'SN-Login'; // Nutzername der Photovoltaik-Anlage var PassAnlage = 'abc'; // Password der Photovoltaik-Anlage var IPAnlage = '192.168.xxx.xxx'; // IP der Photovoltaik-Anlage var logging = false; function Piko() { log("Piko 5.5 auslesen"); var results = []; httpGet('http://' + NameAnlage + ':' + PassAnlage +'@' + IPAnlage, { timeout: 10000, responseType: 'document' }, (err, response) => { if (err) { if (err.indexOf("size of -1") != -1) { log (err,"info"); } else { console.error(err); } } else { var d = (response.data).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); // Tagesenergie auf 0 setzen wenn es Nacht ist var Zeit1 = isTimeInRange('00:01:00', '09:00:00'); if (Zeit1 && pwr == 0 && p1 == 0 && p2 == 0) { day = 0; } // geändert: in pwr wird die aktuelle Energie angezeigt; dies passt aber nicht mit p1 + p2 überein. // vermutlich wird die W des Wechselrichters abgezogen. neu habe ich nun pwr = p1 + p2 pwr = p1 + p2; if (logging) log("aktuell -> Leistung aktuell= " + pwr + " W // Tagesleistung= " + day + " kWh // Leistung alt gesamt= " + all + " kWh // Leistung Strang 1= " + p1 + " W // 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('5 * * * * *', function () { //log ("Auslöser: Schedule"); Piko(); }); /* schedule("3 0 * * *", function () { // Variablen löschen um 00:03 Uhr setState('javascript.0.Geräte.Photovoltaik.2012_Tagesleistung', 0); }); */ //Piko();
-
@bahnuhr sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
Für Rainer mach ich alles.
DANKE!
Dann ist das wenigstens hier mit im Thread!Schade dass du nicht in Solingen warst.
-
@homoran sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
Schade dass du nicht in Solingen warst.
Ja, stimmt.
War mir zu weit; nach Ffm wäre ich gekommen.
Soll ja gut gewesen sein. -
@bahnuhr sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
War mir zu weit; nach Ffm wäre ich gekommen.
dafür hatte ich nur 50km
@bahnuhr sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
Soll ja gut gewesen sein.
War es!
[/OT]
-
@bahnuhr
Danke für das angepasste Script. Habe ich so bei mir reinkopiert und nur die drei Variablen mit "Anlage" im Namen korrigiert. Aber jede Minute kommt nun die Meldung*javascript.0 15:53:05.603 error at Object.<anonymous> (script.js.common.Kostal_Piko_55_WR_auslesen_neu:60:25)*
In Zeile 60 ist das Zeichen 25 das Leerzeichen zwischen & und pwr.
*...if (Zeit1 && pwr == 0...*
Kapier ich nicht, was da das Problem sein soll.
-
@io2345 sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
Kapier ich nicht, was da das Problem sein soll.
Ich auch nicht.
Bei mir läuft es einwandfrei. -
@io2345 sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
In Zeile 60
Zeile 60 ist aber auch ne andere !
(zumindest lt. meinem Script)Warum änderst du dein bestehendes Script nicht einfach ab.
Wolltest doch "nur" httpget haben -
@bahnuhr sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
Zeile 60 ist aber auch ne andere !
du hast oben noch ne Leerzrile drin.
-
@homoran sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
@bahnuhr sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
Zeile 60 ist aber auch ne andere !
du hast oben noch ne Leerzrile drin.
lt. oben wäre doch dies Zeile 60:
-
lass die mal weg!
-
@homoran sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
lass die mal weg!
Ich mach gar nix; da ich ja auch kein Problem habe.
Und der, der das Problem hat zeigt ja nicht einmal sein Script.
Für mich jetzt Ende hier.
-
@bahnuhr sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
Ich mach gar nix; da ich ja auch kein Problem habe.
wenn du (man) beim kopieren diese Leerzeile weglässt, verschiebt dich die Zeilennummerierung um 1.
dann ist Zeile 61 bei dir die 60.und davon gehe ich aus, dass @io2345 diese unnötige Leerzeile weggelassen hat.
Damit stimmt wieder alles
-
@homoran Ah, sorry, gestern war Kindergeburtstag.
Ja, genau, die obere Leerzeile habe ich natürlich weggelassen. Ansonsten Script komplett kopiert und nur die drei Werte Name, Passwort und IP befüllt.
Das Script startet, nach 37 Sekunden kommt die Meldung das erste Mal, dann jede Minute.16.11.2024, 08:22:28.236 [info ]: javascript.0 (1210) Start JavaScript script.js.common.Kostal_Piko_55_WR_auslesen_neu (Javascript/js) 16.11.2024, 08:22:28.248 [info ]: javascript.0 (1210) script.js.common.Kostal_Piko_55_WR_auslesen_neu: registered 0 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions 16.11.2024, 08:23:05.336 [error]: javascript.0 (1210) at Object.<anonymous> (script.js.common.Kostal_Piko_55_WR_auslesen_neu:60:25) 16.11.2024, 08:24:05.544 [error]: javascript.0 (1210) at Object.<anonymous> (script.js.common.Kostal_Piko_55_WR_auslesen_neu:60:25) 16.11.2024, 08:25:05.544 [error]: javascript.0 (1210) at Object.<anonymous> (script.js.common.Kostal_Piko_55_WR_auslesen_neu:60:25)
...und natürlich hatte ich als Erstes versucht, nur den Block "function Piko()" auszutauschen. Da kommt dann ein anderer Fehler.