NEWS
Leistungssteuerung PV-Wechselrichter "0-Einspeisung"
-
Aufm Papier hat das Netzteil 480W DC Leistung. Verluste sind nicht inbegriffen AC dürfte aber etwas höher sein ^^
Aber der PID dürfte doch gar nicht loslegen, wenn ich aktuell +250W Bezug habe ^^
Er regelt quasi genau verkehrt herum.
-
@fellpower sagte: 480W DC Leistung.
Dann verringere Xp auf 5000, damit der Regler schneller reagiert.
@fellpower sagte in Leistungssteuerung PV-Wechselrichter "0-Einspeisung":
250W Bezug
250 / 5000 = 5 %, also startet der Regler (bei Xp = 5000) mit 45 % und läuft Richtung 0 %.
-
Ich glaube wir missverstehen uns gerade.
Sobald ich den PI anmache und 250W Bezug habe, regelt der PI den Dimmer hoch, damit erzeugt er noch mehr Bezug, den ich ja nicht haben will. Da gerade +250W Bezug anstehen, darf er ja nicht das Ladegerät anmachen, da ja gerade kein Überschuss produziert wird. Es ist dunkel draussen - und mein WR liefert nix mehr.
Also die Richtung ist verkehrt. Er versucht die +250W auf NULL zu regeln, aber da er ja ein Ladegerät steuert, erzeugt er mehr Bezug, wenn er hochregelt. Er müsste jetzt gar nix machen, bzw den Dimmer auf NULL halten, bis wieder negativer Bezug, also Einspeisung vorliegen würde ^^
PS: Der Regler läuft bis 100% durch und bleibt da auch ^^
-
@fellpower sagte: regelt der PI den Dimmer hoch
Im Bild sehe ich -100. Also sollte er bei Einspeisung (negative Werte) hoch und bei Bezug runter regeln.
-
@paul53
tut er aber nicht.Schalte ich ein, geht er in Schritten auf 100% Dimmerwert
-
@fellpower sagte: Wo liegt der Fehler?
Das müssen Additionen sein - keine Divisionen:
Verkleinere Tn auf 4.
-
oh man, na klar! das war natürlich der super FAIL
Ich geh in die Ecke und schäme mich. Danke Paul!
-
@fellpower bitte keine externen "Hoster" verwenden
-
Okay, merke ich mir für die Zukunft. Mein Video war leider zu groß zum Einbetten. Ich nehms raus.
-
@fellpower sagte in Leistungssteuerung PV-Wechselrichter "0-Einspeisung":
Mein Video war leider zu groß zum Einbetten.
versuch es beim nächsten mal mit screen2gif.
(natürlich auch nur mit minimalen Einstellungen und nicht 4k 24fps ) -
Moin Leute
Seit dem neusten JS Controller Update, geht das PID Script nicht mehr. Der Wert für den Shelly, also die Stellgröße Springt nur noch hin und her. Hat jemand ne Idee?
Rechts bei Dimmer ist das Steuersignal. Es spinnt total, obwohl ich keine Einspeisung habe (Leistung Haus). Es sollte also bei Null sein. Habe ich Überschuss, springt es auch nur rum.
Jemand ne Idee?
Nachtrag: Ich habe mal mein "altes" Script probiert - das funktioniert tadellos. Muss also am PID liegen ^^
Hab dann ne komplett frische Installation gemacht. Und es passiert genau das Gleiche. Also muss es am neuen JS Controller liegen - das ist das Einzige, was ich geändert habe.
-
@fellpower
Kann mir nicht wirklich vorstellen welchen Einfluss der js-controller auf dein Blockly hätte. Wenn dann liegt es eher am (wahrscheinlich auch vorgenommenen) Upodate des javascript Adapters.Aber debug mal dein Skript und grenze ein welche Daten sich wie unverändert verändern. Log z.B. den Shella Power Wert, die Timestamps udn die berechneten Werte mit. Dann solltest du sehen können wo unerwartete Daten auftauchen.
Wenn dein "altes Skript" besser funktioniert dann schau auch mal was der Unterschied in den Skripten ist.
P.S: Bitte nenn mal die Version des javascript Adapters und die Version von node die du im Einsatz hast.
-
@fellpower sagte Hat jemand ne Idee?
Am js-controller kann es nicht liegen. Ist vielleicht
Xp
zu klein, so dass die Regelung instabil ist?
Bau Debug ein, um das Verhalten zu testen.Anmerkung: Es handelt sich um einen PI-Regler (nicht PID).
-
Nein - es liegt am Update des Controllers / JS Adapters.
Bevor ich das Update gemacht habe, hat das Script sehr gut funktioniert. Der PI hat smooth und schön auf Null geregelt, ohne diese Sprünge. Und genau die sind das Problem. Der Wert für "Helligkeit" des Shelly springt, wie man sieht - und zwar sieht man den "echten" Regelwert auch sehr gut - nur das da irgendwas überlagert wird. Und nein, kein anderer Adapter schreibt in diese Variable.
Sorry, für die Verwirrung, natürlich ist es ein PI.
Ich sende euch gleich einen Debug. (Wird schwierig, da ich gerade keinen Überschuss produziere) - aber man sieht am ersten aufgenommenen GIF ja, wie der Stellwert (Dimmer - Ladegerät in %) springt. Das er mal schnell steigt, kann ja mal sein, aber man sieht, das dort irgendwie 2 Werte drin sind. Einmal der richtige Wert - und irgendwas, was nicht gelöscht wird.
Ein Debug atm sieht so aus - aber er regelt ja jetzt auch nix.
javascript.0 17:01:18.969 info script.js.PID: Bezug:602.88W, p:-20.096%, i:-10.068096%, Output:19.835904 javascript.0 17:01:20.960 info script.js.PID: Bezug:592.69W, p:-19.756333333333334%, i:-19.911689083333336%, Output:10.33197758333333 javascript.0 17:01:22.960 info script.js.PID: Bezug:599.5W, p:-19.983333333333334%, i:-29.903355750000003%, Output:0.11331091666666282 javascript.0 17:01:24.967 info script.js.PID: Bezug:605.75W, p:-20.191666666666666%, i:-29.903355750000003%, Output:0 javascript.0 17:01:26.959 info script.js.PID: Bezug:599.03W, p:-19.967666666666666%, i:-29.903355750000003%, Output:0 javascript.0 17:01:28.958 info script.js.PID: Bezug:599.14W, p:-19.971333333333334%, i:-29.903355750000003%, Output:0 javascript.0 17:01:30.955 info script.js.PID: Bezug:597.95W, p:-19.93166666666667%, i:-29.903355750000003%, Output:0 javascript.0 17:01:32.954 info script.js.PID: Bezug:596.56W, p:-19.88533333333333%, i:-29.903355750000003%, Output:0 javascript.0 17:01:34.924 info script.js.PID: Bezug:607.37W, p:-20.245666666666665%, i:-29.903355750000003%, Output:0 javascript.0 17:01:37.942 info script.js.PID: Bezug:592.42W, p:-19.74733333333333%, i:-29.903355750000003%, Output:0 javascript.0 17:01:38.953 info script.js.PID: Bezug:596.78W, p:-19.892666666666667%, i:-29.903355750000003%, Output:0 javascript.0 17:01:40.953 info script.js.PID: Bezug:595.22W, p:-19.840666666666667%, i:-29.903355750000003%, Output:0
Hier mal, wenn ich den PI "umdrehe". also anstatt -100 habe ich mal auf 100 gestellt. Er spring wieder brutal.
javascript.0 17:07:07.258 info Start JavaScript script.js.PID (Blockly) javascript.0 17:07:07.261 info script.js.PID: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 17:07:09.071 info script.js.PID: Bezug:734.37W, p:24.479%, i:12.31905675%, Output:86.79805675 javascript.0 17:07:11.063 info script.js.PID: Bezug:731.67W, p:24.389%, i:24.46477875%, Output:98.85377875 javascript.0 17:07:13.062 info script.js.PID: Bezug:721.68W, p:24.055999999999997%, i:24.46477875%, Output:100 javascript.0 17:07:15.061 info script.js.PID: Bezug:924.39W, p:30.813%, i:24.46477875%, Output:100 javascript.0 17:07:17.070 info script.js.PID: Bezug:1212.5W, p:40.416666666666664%, i:24.46477875%, Output:100 javascript.0 17:07:19.065 info script.js.PID: Bezug:1209.46W, p:40.315333333333335%, i:24.46477875%, Output:100 javascript.0 17:07:20.974 info Stopping script script.js.PID
Man sieht aber auch, das einige Werte anders aussehen, obwohl er nicht regelt. "p" hat mal mehr Nachkommastellen, mal nicht.
javascript.0 17:11:13.758 info Start JavaScript script.js.PID (Blockly) javascript.0 17:11:13.760 info script.js.PID: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 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 javascript.0 17:11:19.171 info script.js.PID: Bezug:706.51 W, p:-23.550333333333334 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:21.127 info script.js.PID: Bezug:706.82 W, p:-23.56066666666667 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:23.130 info script.js.PID: Bezug:723.13 W, p:-24.104333333333333 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:25.132 info script.js.PID: Bezug:734.86 W, p:-24.495333333333335 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:27.129 info script.js.PID: Bezug:705.18 W, p:-23.505999999999997 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:29.146 info script.js.PID: Bezug:699.43 W, p:-23.31433333333333 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:31.134 info script.js.PID: Bezug:670.96 W, p:-22.365333333333336 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:33.271 info script.js.PID: Bezug:666.57 W, p:-22.219 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:35.134 info script.js.PID: Bezug:666.46 W, p:-22.215333333333334 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:37.160 info script.js.PID: Bezug:671.75 W, p:-22.391666666666666 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:39.207 info script.js.PID: Bezug:622.61 W, p:-20.753666666666668 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:41.151 info script.js.PID: Bezug:704.9 W, p:-23.496666666666666 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:43.305 info script.js.PID: Bezug:699.36 W, p:-23.312 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:45.157 info script.js.PID: Bezug:695.66 W, p:-23.188666666666666 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:47.205 info script.js.PID: Bezug:680.47 W, p:-22.682333333333332 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:49.242 info script.js.PID: Bezug:695.27 W, p:-23.175666666666665 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:51.149 info script.js.PID: Bezug:688.67 W, p:-22.955666666666666 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:53.153 info script.js.PID: Bezug:686.35 W, p:-22.878333333333334 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:55.145 info script.js.PID: Bezug:696.13 W, p:-23.204333333333334 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:57.154 info script.js.PID: Bezug:654.18 W, p:-21.805999999999997 %, i:-23.876105083333336 %, Output:0 javascript.0 17:11:59.143 info script.js.PID: Bezug:692.86 W, p:-23.095333333333333 %, i:-23.876105083333336 %, Output:0 javascript.0 17:12:00.882 info Stopping script script.js.PID
Ein richtiges Debug kann ich erst wieder morgen früh machen, wenn er auch richtig regeln kann.
-
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.