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.
    • 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
                                          • F
                                            fellpower @mcm1957 last edited by

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

                                            pid.gif

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

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            548
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly javascript
                                            19
                                            152
                                            20800
                                            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