Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Leistungssteuerung PV-Wechselrichter "0-Einspeisung"

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Leistungssteuerung PV-Wechselrichter "0-Einspeisung"

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      stiffler2244 last edited by stiffler2244

      Hallo Zusammen,
      Ich bin eigentlich in der Hardware tätig und habe unter anderem auch mit Regler zu tun. Darum habe ich auch meinen Regler selbst in Blockly gebaut. Ob's der Weisheit letzter Schluss ist, mag ich nicht behaupten, aber bei mir funktionieren alle davon recht gut.
      Ich steure damit ein Ladegerät für meinen Akku, einen Vollwellenthyristor mit Heizstab und natürlich den Akkuwechselrichter allesamt für die Nulleinspeisung der PV Anlage. Also wie auch jeder andere hier 😉
      Mein "Regler" sieht im Grunde so aus:
      Regler Akku.png
      So schaut das Ganze dann in der Realität aus:
      Stromverbrauch.png
      Was mir jetzt beim Durchlesen aufgefallen ist: Viele hier arbeiten mit ja mit Tasmota - genauer gesagt mit dem Dimmer. Das ist meiner Ansicht nach nicht optimal, da Tasmota den Dimmer logarithmisch auslegt, dieser sollte aber linear sein, für ein optimales Regelergebnis. Deshalb sollte in Tasmota

      setoption15 0
      

      in der Konsole ausgeführt werden. Das Blöde an der Geschichte ist allerdings, dass jetzt der PWM Wert nicht mehr mit MQTT geändert werden kann. Darum behelfe ich mit den http Requests und das sieht so aus:
      PWM senden.png
      Nicht vergessen: Tasmota kann dann die Werte zwischen 0 und 1023 einstellen (was 0 bis 100% entspricht).

      Ich hoffe, ich konnte den einen oder anderen weiter helfen oder eine Idee geben. 😛

      1 Reply Last reply Reply Quote 0
      • F
        fellpower last edited by fellpower

        Hallo Leute

        Ich habe auch den PID gebaut, aber habe etwas Probleme.

        a2c6816f-b618-4431-9fc1-bafcf971c0a4-image.png

        Ich habe einen Shelly 3EM, welcher bei Bezug positive und bei Überschuss negative Werte als Gesamtleistung liefert.
        Steuern möchte ich einen Shelly plus 0-10V Dimmer, welcher ein Meanwell Netzteil steuert. (Strom steuerbar - und damit die AC Leistung des Netzteils)
        Ich möchte den Überschuss, den mein WR tagsüber produziert, in einen Akku schieben. Der Datenpunkt für den Dimmer kennt Werte zwischen 0-100.

        Also haben wir positive Werte (Bezug), soll der Output natürlich 0 sein, da ich ja dann den Akku nicht laden will.

        Habe ich negativen Bezug, speise also ein, sollte der PID eigentlich den Dimmer soweit "aufdrehen", das der Überschuss vom Meanwell Netzteil "geklaut", im Akku landet.

        Sobald ich den PID jedoch anschalte, startet mein Dimmer sofort los - obwohl gerade Bezug ist, also kein Überschuss da ist. Ein Umstellen auf -100 hat nix gebracht beim p-Wert.

        Wo liegt der Fehler?

        paul53 2 Replies Last reply Reply Quote 0
        • paul53
          paul53 @fellpower last edited by paul53

          @fellpower sagte: Sobald ich den PID jedoch anschalte, startet mein Dimmer sofort los

          Er startet bei etwas unter 50 %. Der I-Anteil sorgt aber dafür, dass er bei Bezug Richtung 0 % läuft.
          Wie hoch ist die Ladeleistung? Wie oft aktualisiert der Shelly?

          @fellpower sagte in Leistungssteuerung PV-Wechselrichter "0-Einspeisung":

          Fehler?

          Blockly_temp.JPG

          Richtig: setze i auf lasti

          F 1 Reply Last reply Reply Quote 0
          • F
            fellpower @paul53 last edited by fellpower

            @paul53
            Die Ladeleistung ist ja die, welche der PID ausregeln soll. Shelly aktualisiert alle 2 Sekunden.

            Sagen wir, ich habe einen Bezug von -100W. Dann soll der PID das 0-10V Signal am Dimmer (0-100%) solange regeln, bis diese -100W auf 0W runtergeregelt sind.
            Das Netzteil nimmt diese 100W dann - und packt sie in einen Akku.

            Damit ist der vom WR generierte Überschuss im Akku gelandet.

            paul53 1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @fellpower last edited by

              @fellpower sagte: Die Ladeleistung ist ja die, welche der PID ausregeln soll.

              Ich meinte die Ladeleistung bei 100 % (10 V).

              @fellpower sagte in Leistungssteuerung PV-Wechselrichter "0-Einspeisung":

              Shelly aktualisiert alle 2 Sekunden.

              Dann verringere Tn auf 4 s, damit der I-Anteil schneller regelt.

              F 1 Reply Last reply Reply Quote 0
              • F
                fellpower @paul53 last edited by fellpower

                @paul53

                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.

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @fellpower last edited by paul53

                  @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 %.

                  F 1 Reply Last reply Reply Quote 0
                  • F
                    fellpower @paul53 last edited by fellpower

                    @paul53

                    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 ^^

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @fellpower last edited by paul53

                      @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.

                      F 1 Reply Last reply Reply Quote 0
                      • F
                        fellpower @paul53 last edited by fellpower

                        @paul53
                        tut er aber nicht.

                        Schalte ich ein, geht er in Schritten auf 100% Dimmerwert

                        Homoran 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @fellpower last edited by paul53

                          @fellpower sagte: Wo liegt der Fehler?

                          Das müssen Additionen sein - keine Divisionen:

                          Blockly_temp.JPG

                          Verkleinere Tn auf 4.

                          F 1 Reply Last reply Reply Quote 0
                          • F
                            fellpower @paul53 last edited by

                            @paul53

                            oh man, na klar! das war natürlich der super FAIL 😞

                            Ich geh in die Ecke und schäme mich. Danke Paul!

                            1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @fellpower last edited by

                              @fellpower bitte keine externen "Hoster" verwenden

                              F 1 Reply Last reply Reply Quote 0
                              • F
                                fellpower @Homoran last edited by

                                @homoran

                                Okay, merke ich mir für die Zukunft. Mein Video war leider zu groß zum Einbetten. Ich nehms raus.

                                Homoran 1 Reply Last reply Reply Quote 0
                                • Homoran
                                  Homoran Global Moderator Administrators @fellpower last edited by

                                  @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 😁 )

                                  F 1 Reply Last reply Reply Quote 0
                                  • F
                                    fellpower @Homoran last edited by fellpower

                                    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?

                                    107c0077-0d77-4516-bae4-28bfab23ef0c-image.png

                                    475661d3-64b8-4350-871a-8d6bf38271d7-image.png

                                    pid.gif

                                    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 ^^

                                    9eac0def-ff7d-4bfa-9833-6f8991133af0-image.png

                                    alteregelung.gif

                                    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.

                                    mcm1957 paul53 2 Replies Last reply Reply Quote 0
                                    • mcm1957
                                      mcm1957 @fellpower last edited by mcm1957

                                      @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.

                                      F 1 Reply Last reply Reply Quote 1
                                      • paul53
                                        paul53 @fellpower last edited by paul53

                                        @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.

                                        Blockly_temp.JPG

                                        Anmerkung: Es handelt sich um einen PI-Regler (nicht PID).

                                        1 Reply Last reply Reply Quote 1
                                        • F
                                          fellpower @mcm1957 last edited by fellpower

                                          @mcm1957
                                          @paul53

                                          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.

                                          mcm1957 paul53 2 Replies Last reply Reply Quote 0
                                          • mcm1957
                                            mcm1957 @fellpower last edited by mcm1957

                                            @fellpower

                                            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.

                                            F 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            748
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly javascript
                                            19
                                            152
                                            20646
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo