NEWS
Leistungssteuerung PV-Wechselrichter "0-Einspeisung"
-
Hier mal, wenn ich den PI "umdrehe". also anstatt -100 habe ich mal auf 100 gestellt. Er spring wieder brutal.
Das überrascht dich?
Man sieht aber auch, das einige Werte anders aussehen, obwohl er nicht regelt. "p" hat mal mehr Nachkommastellen, mal nicht.
Na dass die Nachkommastellen variieren ist ja wohl kein Problem. Ergänze die fehlenden Stellen einfach mal mit Nullen - trailing Nullen werden halt nicht angezeigt.
Werte mal dein Log aus, rechne manuell nach und eruiere welcher Wert sich da anders verhält als du erwartest.
Wenn du mit js-Adapter den Javascript Adapter meinst - ja der kann hier mitspielen. Nur das der js-controlelr hier einen nennenswerten Einfluss hat (ausgenommen dein Skript ist empfindlich auf verändertes Timing) bezweifle ich nach wie vor.
Das ist noch ioffen:
Bitte nenn mal die Version des javascript Adapters und die Version von node die du im Einsatz hast.
-
@mcm1957
Nein, das überrascht mich nicht. Aber wir reden aneinander vorbei.Das Script hat vor dem Update von JS-Controller und Scriptausführung mit Node.js: v18.20.4 sehr gut funktioniert. Erst NACHDEM JS-Controller und Scriptausführung geupdatet wurden, funktioniert es nicht mehr, wie es soll. Da brauch ich nichts nachrechnen, ob es stimmen könnte. Es hatte bis vor dem Update gestimmt.
Node.js: v18.20.4 und Scriptausführung: 8.7.6 SInd die fehlenden Infos, die du noch haben wolltest.
Guck dir doch mal das GIF an:
Bei "Leistung Haus" siehst du den Wert, der bei Überschuss auf NULL geregelt werden soll. Bei "Dimmer Ladegerät" siehst du den Wert, der das macht. Das ist meine Steuergröße für ein Ladegerät.
Dieser Wert sollte (und ist vorher) - jeh nach Höhe des Überschusses, durchaus auch mal sprunghaft - auf einen Wert gestiegen.
NACH dem Update, sieht man es 2 Werte sind, welche da irgendwie ne Rolle spielen. Man sieht am Zeiger, das einmal der Output Wert angezeigt wird - und einmal ein anderer Wert - scheinbar.Er könnte / sollte ja so regeln: 0% - 10% - 20% usw
Was er aber macht ist: 0% - 10%(30% Sprung) - wieder 10% - 40% Sprung.
Sieht man doch eindeutig auf dem Bild, das es so nicht richtig ist. Und DAS hat er vor den Updates nicht gemacht - und es stört massiv meine Akkuladung ^^
-
@fellpower sagte: Man sieht aber auch, das einige Werte anders aussehen, obwohl er nicht regelt.
Schau mal die Berechnung von
output
an. Da passt was nicht. In diesen Zeilen passt die Berechnung mit "output = 50 + p + i":javascript.0 17:11:15.137 info script.js.PID: Bezug:715.96 W, p:-23.865333333333336 %, i:-12.016195333333334 %, Output:14.11847133333333 javascript.0 17:11:17.126 info script.js.PID: Bezug:715.53 W, p:-23.851 %, i:-23.876105083333336 %, Output:2.272894916666665
In dieser und weiteren Zeilen müsste
output
> 0 sein:javascript.0 17:11:39.207 info script.js.PID: Bezug:622.61 W, p:-20.753666666666668 %, i:-23.876105083333336 %, Output:0
EDIT: Das kommt wahrscheinlich von dieser Oder-Verknüpfung:
Was soll sie bewirken?
-
Ich nehme die Aussage schon zur Kenntnis dass es irgendeine eine Änderungen gegeben haben muss wenn dein Skript sich nun anders verhält als vorher. Aber um den Fehler einzugrenzen der bei deinem Script auftritt wirst du nicht drum herumkommen nachzurechnen oder sonstwie festzustellen was denn nun anders funktioniert wie erwartet. Ohne eine konkrete Angabe dass eine Rechenoperation was anderes liefert als sie soll oder dass Updates nicht vorgenommen werden oder ... werden wir nicht weiterkommen. Das Bild ist nett aber hilft bei einer Problemeingrenzung wenig. Aber da du ja weißt was dein Skript tun soll, kannst du ja feststellen wo es das nicht tut.
Wenn sich der Wert sprunghaft ändert, grenze bitte ein warum. Log die in der Berechnung verwendeten Timestamps jedenfalls auch mit. Ändern sich die Input Werte sprunghaft? Wird was falsch berechnet? Hat dein Script ein Timingproblem? Passen die Timestamps?
Sorry, aber es wird sicher kein Dev dein Script debuggen.
Bisher ist mir kein Fehler in Java Script / Blockly bekannt der mit deinem Problem in Zusammenhng stehen könnte.
-
Der Output wird auf Null gestellt, wenn der HM400 Wechselrichter an ist. Das hat auch so funktioniert. Macht ja keinen Sinn, den Akku mit dem Strom zu laden, den der Wechselrichter aus dem Akku holt, der geladen werden soll ^^
@mcm1957
Natürlich nehme auch ich zur Kenntnis, das ihr mir hier in eurer Freizeit helft. Es mag vielleicht manchmal etwas komisch rüber kommen, wenn ich etwas schreibe - aber man geht ja prinzipiell erstmal davon aus, das etwas besser funktionieren sollte, nach einem Update.Ich habe soeben mal das - bisher tadellos funktionierende Script - auf eine Komplett frische Installation (LCX im Proxmox, ohne Docker) gezogen mit :
Node.js: v20.16.0
JS-Controller 6.0.9
Scriptausführung 8.7.6Gleiche Probleme.
Niemand muss mein Blockly debuggen, weil es ja vor dem Update funktioniert hat. Viel mehr ist die Frage, was ist jetzt bei der Scriptausführung anders?
Kann ich eine andere Version (die davor) von der Scriptausführung installieren? Wenn ja, wie? Das ich das mal gegentesten kann. (Schon gefunden - und mal die Version davor installiert - morgen früh weiß ich mehr)
-
@fellpower sagte in Leistungssteuerung PV-Wechselrichter "0-Einspeisung":
Viel mehr ist die Frage, was ist jetzt bei der Scriptausführung anders?
und genau das musst du uns sagen.
@fellpower sagte in Leistungssteuerung PV-Wechselrichter "0-Einspeisung":
weil es ja vor dem Update funktioniert hat.
es hat auch schon Dinge gegeben die gefixt wurden, und vorher hätte es auch nicht funktionieren dürfen.
Deswegen brauchen wir von dir die Info was genau mit welcher Version anders läuft.
-
@fellpower said in Leistungssteuerung PV-Wechselrichter "0-Einspeisung":
Niemand muss mein Blockly debuggen, weil es ja vor dem Update funktioniert hat.
Aber jetzt offenbar nicht mehr.
Viel mehr ist die Frage, was ist jetzt bei der Scriptausführung anders?
Das wirst du und wir nur durch eine Analyse des Ablaufs deines Scripts herausbekommen.
Kann ich eine andere Version (die davor) von der Scriptausführung installieren? Wenn ja, wie? Das ich das mal gegentesten kann. (Schon gefunden - und mal die Version davor installiert - morgen früh weiß ich mehr)
Ältere Versionen als 8.7.6 sind bekannter Maßen NICHT mit js-controller 6 kompatibel. Vieles geht aber insbesondere im Bereich zusätzlicher npms crasht da schon mal. Also js-controller 6 && javascript < 8.7.6 ist unsupported. Als Info ist der Versuch sicher mal brauchbar - zur eigentlichen Eingrenzung muss zuerst festgestellt werden was im Detail nicht bzw anders funktioniert.
Aber ich zieh mich da dann mal zurück. Solange keine weiteren (Debug-) Infos kommen ist da für mich nichts mehr zu tun. Die Wiederholung dass es bisher ging bringt nichts zur Lösung des Problems.
-
@homoran
Moin. Naja, vor dem Update hat der PI sauber funktioniert. Und hat den Überschuss ausgeregelt. Das Script habe ich nicht geändert, ich habe nur diese massiven Sprünge und das komische Verhalten bei der Steuerung des Shelly - und damit dem Ladegerät - gesehen. Sonst habe ich nichts verändert am System. Nur JS / Javascript geupdatet.Nach dem Update macht ers nicht mehr. Die Steuergröße, also "Output" springt massiv. (Wie im Gif zu sehen) - Ich habe natürlich davon noch kein Log, das kann ich erst machen, wenn ich wieder Überschuss habe - also morgen früh.
Wenn du mir sagst, welche Logs du noch du brauchst - und wie ich sie zur Verfügung stellen kann, helfe ich natürlich, mit dem Wissen, was ich habe - Euch die nötigen Infos zukommen zu lassen.
-
@fellpower sagte in Leistungssteuerung PV-Wechselrichter "0-Einspeisung":
Naja, vor dem Update hat der PI sauber funktioniert. Und hat den Überschuss ausgeregelt.
und genau das ist keine Aussage mit der man eine Ursache eingrenzen kann!
@fellpower sagte in Leistungssteuerung PV-Wechselrichter "0-Einspeisung":
Die Steuergröße, also "Output" springt massiv
@mcm1957 sagte in Leistungssteuerung PV-Wechselrichter "0-Einspeisung":
Wenn sich der Wert sprunghaft ändert, grenze bitte ein warum. Log die in der Berechnung verwendeten Timestamps jedenfalls auch mit. Ändern sich die Input Werte sprunghaft? Wird was falsch berechnet? Hat dein Script ein Timingproblem? Passen die Timestamps?
-
@homoran
Wenn ich wüsste, warum der Output sich jetzt anders verhält, als vor dem Update - müsste ich ja nicht fragen.Ich bin auch nur ein Casual User - kein Programmierer, habe also nicht den Durchblick, wie ihr es habt ^^
Kann euch also nur sagen, was ich sehe. Logs habe ich gezeigt, weitere folgen morgen früh, dann kann ich das auch mal länger laufen lassen.Ich habe leider kein "vorher" mehr, weil ja jetzt alles geupdatet ist. Oder ich downgrade den JS Controller nochmal und bringe die Scriptausführung auch noch einmal auf den alten Stand (vorher). Dann könnte ich das auch noch einmal loggen, zum Vergleich. Ich setzte gleich mal n Container auf und Downgrade den mal.
Mehr wüsste ich jetzt auch nicht, was ich noch an Infos zusammentragen kann ^^
-
@fellpower said in Leistungssteuerung PV-Wechselrichter "0-Einspeisung":
Wenn du mir sagst, welche Logs du noch du brauchst - und wie ich sie zur Verfügung stellen kann, helfe ich natürlich, mit dem Wissen, was ich habe - Euch die nötigen Infos zukommen zu lassen.
Die Werte aller Variable incl. Zwischenvariablen und Timestamps protokollieren.
Nachrechne und feststellen welche Werte nicht dem entsprechen was du erwartest. Also
z.B. aber nicht ausschließlich:Wenn der Output springt warum tut er das?
Welcher Inputwert für die Berechnung des Output springt? Oder funktioniert die Berechnung nicht?
Wenn ein Inputwerte der Berechnung für den Output sprint warum tut dieser das?
usw.Damit muss dann herauskommen dass
- irgendwelche Inputwerte unerwartete Values haben
- oder dass eine Berechnung ein falsches Ergebnis liefert
- dass Timingwerte unerwartete oder ev. auch falsche Daten liefern (kommt das Skript mit Delta-t === 0 zurecht?
- oder auch dass ein logischer Fehler im Skript existiert
Was wir von dir brauchen ist eine Aussage der Art:
Alter Timestamp is neuer als neuer Timetamp
A*100 - y liefert einen falschwn Wert
Zwischengespeichtere Variable verliert irhen Wert
etc. etc.DANN kann man weiterschaun.
Und bitte Aussagen "Hat bisher funktioniert" nur in Verbindung mit z.B. "Ermitteln der Zeitdifferenz hat bisher funktioniert und jetzt passiert ..."
Ansonsten bin ich wirklich weg ...
-
@fellpower sagte: Macht ja keinen Sinn, den Akku mit dem Strom zu laden, den der Wechselrichter aus dem Akku holt, der geladen werden soll
Also "Wert von producing = 1" bedeutet Akku-Entladung? Dann sollte dies als Sperre für den gesamten PI-Regler wirken.
-
@paul53
Möglich. Aber er hat so seine Arbeit wirklich sehr gut gemacht bisherSchön, rund um +-10W ausgeregelt. Schneller geht halt nicht, weil der Shelly 3EM nicht so schnell Daten nachliefert. Reicht mir auch, wenn er etwas langsamer ist.
-
Heute war leider kaum Sonne, um ein ordentliches Log zu schreiben. Aber man sieht trotzdem sehr schön, das "Output" also die Stellgröße für das Ladegerät "pumpt".
Hier sieht man sehr schön, was passiert. Immer, wenn er regeln muss, springt er.
Mein Log aus dem Iobroker ist nicht brauchbar, da es nicht richtig aufgezeichnet wurde. Es sind alle Variablen drin, die wichtig sind. Leider hab ich das nicht ordentlich gemacht, muss also auf den nächsten Tag warten.
-
@fellpower sagte in Leistungssteuerung PV-Wechselrichter "0-Einspeisung":
Mein Log aus dem Iobroker ist nicht brauchbar, da es nicht richtig aufgezeichnet wurde.
am sinnvollsten stellst du dir die Informationen mit "erstelle Text aus" zusammen und schreibst sie in einen Datenpunkt.
Den loggst du, dann kannst du mit dem Eventlist Widget alle Infos übersichtlich darstellen.So in der Art:
nur halt mit deinen relevanten Daten
-
@fellpower sagte: Immer, wenn er regeln muss, springt er.
Die Regelung ist instabil. Vergrößere
Xp
! -
Das versuche ich mal. Danke für den Tipp. Könntest du mich da evtl kurz mal unterstützen, wie das aussehen müsste? Den Adapter "Ereignisanzeige" hab ich installiert, den Debug Output auch schon aktiv. Und wie gehts dann weiter? Leider kann ich irgendwie die internen Variablen des PI nicht direkt auswählen, die schreibe ich mir dann einfach in selbst angelegte?
@paul53
Wie ich schon schrieb, es ist nicht PI, zumindest nicht anhand fehlerhafter Konfiguration. Die in den Bildern zu sehenden Einstellungen (XP usw), haben vor dem Update super funktioniert. Es liegt nicht daran glaub mir.Aufgrund fehlender Sonne heute, habe ich wieder kein Log, aber ich hab mal was getestet. Wenn man den PI anmacht, springt er ja erstmal auf 50% Steuergröße - und regelt dann runter, weil Bezug ist - eben keine Sonne. Hier mal ein Log davon.
5.8.2024, 15:13:09.005 [info ]: javascript.0 (512) Stopping script script.js.PID 5.8.2024, 15:13:11.589 [info ]: javascript.0 (512) Start JavaScript script.js.PID (Blockly) 5.8.2024, 15:13:11.594 [info ]: javascript.0 (512) script.js.PID: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 5.8.2024, 15:13:12.981 [info ]: javascript.0 (512) script.js.PID: Bezug: 415.6 W, p: -6.926666666666667 %,i: -3.4685283333333334 %,lasti: 0 %, Output: 49.604805 %, Shelly: 49.6 %, Zeitstempel: 1722863592980 , Vor-Zeitstempel: 1722863590977 5.8.2024, 15:13:14.982 [info ]: javascript.0 (512) script.js.PID: Bezug: 427.65 W, p: -7.1274999999999995 %,i: -7.032278333333333 %,lasti: -3.4685283333333334 %, Output: 45.84022166666667 %, Shelly: 45.8 %, Zeitstempel: 1722863594980 , Vor-Zeitstempel: 1722863592980 5.8.2024, 15:13:16.984 [info ]: javascript.0 (512) script.js.PID: Bezug: 415.84 W, p: -6.930666666666666 %,i: -10.502809666666666 %,lasti: -7.032278333333333 %, Output: 42.56652366666667 %, Shelly: 42.6 %, Zeitstempel: 1722863596983 , Vor-Zeitstempel: 1722863594980 5.8.2024, 15:13:18.999 [info ]: javascript.0 (512) script.js.PID: Bezug: 415.56 W, p: -6.926 %,i: -13.984856166666667 %,lasti: -10.502809666666666 %, Output: 39.08914383333333 %, Shelly: 39.1 %, Zeitstempel: 1722863598994 , Vor-Zeitstempel: 1722863596983 5.8.2024, 15:13:20.988 [info ]: javascript.0 (512) script.js.PID: Bezug: 400.56 W, p: -6.676 %,i: -17.311173166666666 %,lasti: -13.984856166666667 %, Output: 36.012826833333335 %, Shelly: 36 %, Zeitstempel: 1722863600987 , Vor-Zeitstempel: 1722863598994 5.8.2024, 15:13:22.987 [info ]: javascript.0 (512) script.js.PID: Bezug: 467.76 W, p: -7.795999999999999 %,i: -21.207224166666666 %,lasti: -17.311173166666666 %, Output: 30.996775833333334 %, Shelly: 31 %, Zeitstempel: 1722863602986 , Vor-Zeitstempel: 1722863600987 5.8.2024, 15:13:25.005 [info ]: javascript.0 (512) script.js.PID: Bezug: 485.92 W, p: -8.098666666666666 %,i: -25.290976833333332 %,lasti: -21.207224166666666 %, Output: 26.6103565 %, Shelly: 26.6 %, Zeitstempel: 1722863605003 , Vor-Zeitstempel: 1722863602986 5.8.2024, 15:13:26.993 [info ]: javascript.0 (512) script.js.PID: Bezug: 474.61 W, p: -7.910166666666667 %,i: -29.224307208333332 %,lasti: -25.290976833333332 %, Output: 22.865526125 %, Shelly: 22.9 %, Zeitstempel: 1722863606992 , Vor-Zeitstempel: 1722863605003 5.8.2024, 15:13:28.993 [info ]: javascript.0 (512) script.js.PID: Bezug: 478.95 W, p: -7.9825 %,i: -33.21356158333333 %,lasti: -29.224307208333332 %, Output: 18.803938416666668 %, Shelly: 18.8 %, Zeitstempel: 1722863608991 , Vor-Zeitstempel: 1722863606992 5.8.2024, 15:13:30.993 [info ]: javascript.0 (512) script.js.PID: Bezug: 467.15 W, p: -7.785833333333333 %,i: -37.10842470833333 %,lasti: -33.21356158333333 %, Output: 15.10574195833334 %, Shelly: 15.1 %, Zeitstempel: 1722863610992 , Vor-Zeitstempel: 1722863608991 5.8.2024, 15:13:33.075 [info ]: javascript.0 (512) script.js.PID: Bezug: 422.68 W, p: -7.044666666666667 %,i: -40.775173708333334 %,lasti: -37.10842470833333 %, Output: 12.180159625000002 %, Shelly: 12.2 %, Zeitstempel: 1722863613074 , Vor-Zeitstempel: 1722863610992 5.8.2024, 15:13:34.998 [info ]: javascript.0 (512) script.js.PID: Bezug: 458.27 W, p: -7.637833333333333 %,i: -44.447062083333336 %,lasti: -40.775173708333334 %, Output: 7.915104583333331 %, Shelly: 7.9 %, Zeitstempel: 1722863614997 , Vor-Zeitstempel: 1722863613074 5.8.2024, 15:13:36.996 [info ]: javascript.0 (512) script.js.PID: Bezug: 435.62 W, p: -7.2603333333333335 %,i: -48.073598583333336 %,lasti: -44.447062083333336 %, Output: 4.666068083333329 %, Shelly: 4.7 %, Zeitstempel: 1722863616995 , Vor-Zeitstempel: 1722863614997 5.8.2024, 15:13:38.999 [info ]: javascript.0 (512) script.js.PID: Bezug: 398.01 W, p: -6.6335 %,i: -51.395323708333336 %,lasti: -48.073598583333336 %, Output: 1.9711762916666657 %, Shelly: 2 %, Zeitstempel: 1722863618998 , Vor-Zeitstempel: 1722863616995 5.8.2024, 15:13:41.000 [info ]: javascript.0 (512) script.js.PID: Bezug: 367.57 W, p: -6.126166666666666 %,i: -51.395323708333336 %,lasti: -51.395323708333336 %, Output: 0 %, Shelly: 0 %, Zeitstempel: 1722863620999 , Vor-Zeitstempel: 1722863618998 5.8.2024, 15:13:43.007 [info ]: javascript.0 (512) script.js.PID: Bezug: 359.47 W, p: -5.991166666666667 %,i: -51.395323708333336 %,lasti: -51.395323708333336 %, Output: 0 %, Shelly: 0 %, Zeitstempel: 1722863623005 , Vor-Zeitstempel: 1722863620999 5.8.2024, 15:13:45.005 [info ]: javascript.0 (512) script.js.PID: Bezug: 356.92 W, p: -5.948666666666667 %,i: -51.395323708333336 %,lasti: -51.395323708333336 %, Output: 0 %, Shelly: 0 %, Zeitstempel: 1722863625004 , Vor-Zeitstempel: 1722863623005 5.8.2024, 15:13:47.005 [info ]: javascript.0 (512) script.js.PID: Bezug: 358.87 W, p: -5.981166666666667 %,i: -51.395323708333336 %,lasti: -51.395323708333336 %, Output: 0 %, Shelly: 0 %, Zeitstempel: 1722863627004 , Vor-Zeitstempel: 1722863625004 5.8.2024, 15:13:49.026 [info ]: javascript.0 (512) script.js.PID: Bezug: 361.23 W, p: -6.0205 %,i: -51.395323708333336 %,lasti: -51.395323708333336 %, Output: 0 %, Shelly: 0 %, Zeitstempel: 1722863629025 , Vor-Zeitstempel: 1722863627004 5.8.2024, 15:13:49.828 [info ]: javascript.0 (512) Stopping script script.js.PID
Was man hier sieht, das PI den Output so ausgibt, wie er eigentlich soll - aber guckt euch mal die Zeitstempel an. Ich habe mal Zeitstempel und vorheriger geloggt. Die "kurzen "p"-Werte sind normal, hab ich ja gelesen, aber immer, wenn die kommen, springt der Wert ^^ Und die Zeitstempel geraten dann auch durcheinander.
Ich habe nochmal die Systemzeit der Maschine geprüft - sofern sie da ne Rolle spielt - die ist aktuell (NTP on).
-
@fellpower sagte in Leistungssteuerung PV-Wechselrichter "0-Einspeisung":
Den Adapter "Ereignisanzeige" hab ich installiert,
von Adapter schrieb ich nichts
einfach in einen eigenen Datenpunkt schreiben und den loggen
fertig!
-
Ich glaube, selbst die hat schon gereicht. Schau mal ^^
Irgendwie schreibt das Script den Wert mehrmals - aber nicht immer in der gleichen Größe. Man sieht oben sehr schön: 19,19,19,19 (echter Wert) und dann kommt ne 1,1. Dann: 21,21,21,21 - 5,7.
Alles zurück, mache ich den PI aus, stoppen die Werte auch.
Hier sieht man die Sprünge auch gut
-
@fellpower sagte in Leistungssteuerung PV-Wechselrichter "0-Einspeisung":
Es gibt definitiv nichts, was noch auf diesen Datenpunkt schreibt.
was zeigt denn die Historie im Objekt?
("logge Quelle mit" ist hoffentlich aktiviert)