Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. PI(D) Regler - Adapter oder Skript?!

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.6k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.9k

PI(D) Regler - Adapter oder Skript?!

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
14 Beiträge 4 Kommentatoren 3.3k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • fu_zhouF Offline
    fu_zhouF Offline
    fu_zhou
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich brauche einen PID Regler zur Integration im Blockly-Skript. Ich könnte mir auch einen Adapter vorstellen, in dem man die Regler-Parameter einstellt und das Objekt des Istwerts angibt sowie die Grenzen und Einheit des Sollwertes (z.B. 0-100%, 0-10 kW). Hat das von euch schon mal jemand gelöst?
    Danke vorab und Grüße!

    Synology DS920+ VM, S7-315 PN mit ET200S

    paul53P 1 Antwort Letzte Antwort
    0
    • fu_zhouF fu_zhou

      Hallo zusammen,

      ich brauche einen PID Regler zur Integration im Blockly-Skript. Ich könnte mir auch einen Adapter vorstellen, in dem man die Regler-Parameter einstellt und das Objekt des Istwerts angibt sowie die Grenzen und Einheit des Sollwertes (z.B. 0-100%, 0-10 kW). Hat das von euch schon mal jemand gelöst?
      Danke vorab und Grüße!

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @fu_zhou
      Siehe hier (ohne D-Anteil). Trigger-Datenpunkt: Regelabweichung. Was soll geregelt werden?

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      fu_zhouF 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @fu_zhou
        Siehe hier (ohne D-Anteil). Trigger-Datenpunkt: Regelabweichung. Was soll geregelt werden?

        fu_zhouF Offline
        fu_zhouF Offline
        fu_zhou
        schrieb am zuletzt editiert von
        #3

        @paul53 Das ist genau mein Anwendungsfall: Ich will die überschüssige PV-Energie nicht einspeisen sondern ins Auto laden und der Wallbox den Ladestrom vorgeben, so dass das Auto nicht volle Kanne zieht und dabei meine Batterie im Keller leer macht. Erst wenn die dann in der Nacht mal leer ist, kriegt die Wallbox die Freigabe für Volldampf.
        Eine Idee wäre noch der PID Controller von Github:
        https://github.com/Philmod/node-pid-controller
        Da fehlt mir aber völlig die Fantasie, wie ich den im Script im iobroker einbinde...
        D-Anteil brauche ich nicht, PI langt.

        Synology DS920+ VM, S7-315 PN mit ET200S

        paul53P 1 Antwort Letzte Antwort
        0
        • fu_zhouF fu_zhou

          @paul53 Das ist genau mein Anwendungsfall: Ich will die überschüssige PV-Energie nicht einspeisen sondern ins Auto laden und der Wallbox den Ladestrom vorgeben, so dass das Auto nicht volle Kanne zieht und dabei meine Batterie im Keller leer macht. Erst wenn die dann in der Nacht mal leer ist, kriegt die Wallbox die Freigabe für Volldampf.
          Eine Idee wäre noch der PID Controller von Github:
          https://github.com/Philmod/node-pid-controller
          Da fehlt mir aber völlig die Fantasie, wie ich den im Script im iobroker einbinde...
          D-Anteil brauche ich nicht, PI langt.

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #4

          @fu_zhou sagte: D-Anteil brauche ich nicht, PI langt.
          ... Eine Idee wäre noch der PID Controller von Github:

          Alternative: PI-Regler
          Einfach in der Konfiguration der Javascript-Instanz als zusätzliches NPM-Modul eintragen. Beispiel

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          fu_zhouF 2 Antworten Letzte Antwort
          0
          • TimmerxT Offline
            TimmerxT Offline
            Timmerx
            schrieb am zuletzt editiert von
            #5

            Hallo fu-zhou,

            ich werde auch mir auch eine PV-Überschuss Steuerung programmieren.

            Als Wallbox werde ich wahrscheinliche eine Easy Wallbox Bausatz, B163, 11kW (oder 22kW) von
            https://www.evalbo.de/shop/wallbox/
            einsetzten, da ich diese mit 0-10V (0-5V) ansteuern kann.

            Meine Idee ist das Auto 1-phasig zu laden
            bei der 11kW Wallbox Start 6A also ab 1,4kW bis 16A also bis 3,6Kw
            bei der 22kW Walbox Start 6A also ab 1,4kW bis 32A also bis 7,3kw

            Ich würde keinen PI oder auch PID Regler für den Ladestron einsetzen.

            Da ich alle Störme in meiner Steuerung S7 1200 habe (über den IOBroker übermittelt) kann ich den Überschuss den ich ins Auto schieben möchte ausrechnen.

            PV Leistung
            Batterie Leistung
            Haus Leistung
            Netz Leistung
            Auto Leistung

            Die Netz Leistung soll am Ende der Berechnung immer 0 ergeben.

            PV - Batterie - (Haus + Auto) = 0 KW Netz
            PV - Batterie - Haus = Auto KW

            Auto KW will ich dann in 0-10V auflösen und jede 1sec einmal an die Wallbox übermitteln und eine Einschaltgrenze bei 1,4KW setzen.

            Da sich PV Leistung sowie die Haus Leistung Sprunghaft ändern können ist ein PID Regler aus meiner Sicht nicht hilfreich, da ich kein Über/Unterschwingen der Auto Ladeleistung gebrauchen kann.

            Jetzt könnte man noch ein paar Lademodis zusammenstellen.
            Auto Laden mit Überschuss
            Auto Laden mit Überschuss ohne Hausakku laden
            Auto Laden mit Netzstrom
            ....

            fu_zhouF 1 Antwort Letzte Antwort
            0
            • TimmerxT Timmerx

              Hallo fu-zhou,

              ich werde auch mir auch eine PV-Überschuss Steuerung programmieren.

              Als Wallbox werde ich wahrscheinliche eine Easy Wallbox Bausatz, B163, 11kW (oder 22kW) von
              https://www.evalbo.de/shop/wallbox/
              einsetzten, da ich diese mit 0-10V (0-5V) ansteuern kann.

              Meine Idee ist das Auto 1-phasig zu laden
              bei der 11kW Wallbox Start 6A also ab 1,4kW bis 16A also bis 3,6Kw
              bei der 22kW Walbox Start 6A also ab 1,4kW bis 32A also bis 7,3kw

              Ich würde keinen PI oder auch PID Regler für den Ladestron einsetzen.

              Da ich alle Störme in meiner Steuerung S7 1200 habe (über den IOBroker übermittelt) kann ich den Überschuss den ich ins Auto schieben möchte ausrechnen.

              PV Leistung
              Batterie Leistung
              Haus Leistung
              Netz Leistung
              Auto Leistung

              Die Netz Leistung soll am Ende der Berechnung immer 0 ergeben.

              PV - Batterie - (Haus + Auto) = 0 KW Netz
              PV - Batterie - Haus = Auto KW

              Auto KW will ich dann in 0-10V auflösen und jede 1sec einmal an die Wallbox übermitteln und eine Einschaltgrenze bei 1,4KW setzen.

              Da sich PV Leistung sowie die Haus Leistung Sprunghaft ändern können ist ein PID Regler aus meiner Sicht nicht hilfreich, da ich kein Über/Unterschwingen der Auto Ladeleistung gebrauchen kann.

              Jetzt könnte man noch ein paar Lademodis zusammenstellen.
              Auto Laden mit Überschuss
              Auto Laden mit Überschuss ohne Hausakku laden
              Auto Laden mit Netzstrom
              ....

              fu_zhouF Offline
              fu_zhouF Offline
              fu_zhou
              schrieb am zuletzt editiert von fu_zhou
              #6

              @timmerx
              ich bin mit dem go eCharger unterwegs, hat eine gute API, die über MQTT mit iobroker wunderbar funktioniert und es gibt auch den einen oder anderen iobroker Adapter. Der go eCharger kann sogar eine Phasenumschaltung über die API (1 phasiges oder 3 phasiges Laden, dann bis 11 kW). Wie und wann die Umschaltung dann passiert (z.B. Ladeunterbrechung ja/nein) muss dann in den Lademodi definiert werden.
              Ich habe eine S7-300 im Einsatz und steuere über 0-10 V einen Thyristorsteller an, um mit einer 6kW E-Heizung bei PV-Überschuss meinen 950l-Heizungspufferspeicher zu beheizen, ohne Gas verwenden zu müssen. Hier habe ich einen PI-Regler in der S7 im Einsatz der sehr gut funktioniert, weil ich bezogen auf die Gleichung oben folgendes Problem habe:
              PV - Batterie - (Haus + Thyro) = Thyro kW.
              Der Thyristor ist Teil der Verbraucher im Haus, Leistung Thyro kenne ich natürlich aus meiner Ansteuerung aber der PI Regler macht eben "händische" Berechnungen und Formeln überflüssig, und der I-Anteil baut die bleibende Regelabweichung ab. Noch dazu kann ich den Regler langsam genug machen, dass es nicht zu starken Sprüngen kommt, wenn sich mal kurz eine Wolke vor die Sonne schiebt - gut, kann man über eine Formel mit Faktoren auch. Am Anfang ist da bei zu großen Stellwertsprüngen (z.B. von 5 kW innerhalb von Sekunden auf 1 kW oder sogar 0) der Thyristorsteller in Störung gegangen. Wenn der dabei kaputt gegangen wäre, wäre das kein Beinbruch, beim Auto möchte ich aber dringenst vermeiden, dass sich die Wallbox oder die Ladelektronik vom Auto verabschiedet, weil zwischen 6A oder sogar aus und 16A hin- und hergesprungen wird, weil wir einen teilweise bewölkten Sommerhimmel haben.
              Daher würde ich beim Auto-Laden tendenziell wieder auf einen Regler gehen, könnte natürlich wieder einen in der S7 verwenden, das wäre dann aber ein Umweg: Vom Wechselrichter-Adapter in den S7 Adapter, in der S7 den Regler seine Arbeit machen lassen und den Stellwert dann vom S7 Adapter an den Wallbox-Adapter geben, was prinzipiell mit Blockly ja gut funktionieren würde.
              Ich habe mich ektuell dafür entschieden, dass das Laden des Autos bei Haus-Batterieentladung gesperrt ist, wobei hier auch eine "Toaster-Verzögerung" berücksichtigt ist. D.h. wenn morgens der 2 kW Toaster die Batterie teilweise entlädt, weil die Leistung vom Dach nur 2.5 kW ist, wird nicht sofort der Ladevorgang des Autos abgebrochen. Wie gesagt, ich möchte nicht für 10 € Energie optimieren/sparen und damit 2000 € Schaden produzieren (kaputte Elektronik, Batterien etc.).

              Wir können gerne Ideen zu den Lademodi inkl. Investitionsschutz entwickeln ==> neues Thema unter "Hardware" öffnen?

              Synology DS920+ VM, S7-315 PN mit ET200S

              1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @fu_zhou sagte: D-Anteil brauche ich nicht, PI langt.
                ... Eine Idee wäre noch der PID Controller von Github:

                Alternative: PI-Regler
                Einfach in der Konfiguration der Javascript-Instanz als zusätzliches NPM-Modul eintragen. Beispiel

                fu_zhouF Offline
                fu_zhouF Offline
                fu_zhou
                schrieb am zuletzt editiert von
                #7

                @paul53 super, vielen Dank!
                Die Zeile

                if (Tn) setInterval(control, 250 * Tn);
                

                Ist nicht kommentiert. Was passiert hier mit der Nachstellzeit?

                Synology DS920+ VM, S7-315 PN mit ET200S

                paul53P 1 Antwort Letzte Antwort
                0
                • HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #8

                  @fu_zhou sagte in PI(D) Regler - Adapter oder Skript?!:

                  ich bin mit dem go eCharger unterwegs, hat eine gute API,

                  ohne PI Oder D
                  Screenshot_20211027-202139_Firefox.jpg

                  go e Adapter und ein Blockly

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  fu_zhouF 1 Antwort Letzte Antwort
                  0
                  • HomoranH Homoran

                    @fu_zhou sagte in PI(D) Regler - Adapter oder Skript?!:

                    ich bin mit dem go eCharger unterwegs, hat eine gute API,

                    ohne PI Oder D
                    Screenshot_20211027-202139_Firefox.jpg

                    go e Adapter und ein Blockly

                    fu_zhouF Offline
                    fu_zhouF Offline
                    fu_zhou
                    schrieb am zuletzt editiert von fu_zhou
                    #9

                    @homoran super, wenn du mich auf die Folter spannen willst - ist dir gelungen ;-) Würdest du das Blockly mal posten?

                    Synology DS920+ VM, S7-315 PN mit ET200S

                    HomoranH 1 Antwort Letzte Antwort
                    0
                    • fu_zhouF fu_zhou

                      @homoran super, wenn du mich auf die Folter spannen willst - ist dir gelungen ;-) Würdest du das Blockly mal posten?

                      HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von
                      #10

                      @fu_zhou muss ich mal suchen. sollte hier im Forum sein.
                      bin aber schon im Bett und komm nicht auf den PC. Erst morgen wieder

                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      fu_zhouF 1 Antwort Letzte Antwort
                      0
                      • HomoranH Homoran

                        @fu_zhou muss ich mal suchen. sollte hier im Forum sein.
                        bin aber schon im Bett und komm nicht auf den PC. Erst morgen wieder

                        fu_zhouF Offline
                        fu_zhouF Offline
                        fu_zhou
                        schrieb am zuletzt editiert von
                        #11

                        @homoran Schlaf gut und danke schon mal vorab, ich suche selber schon mal...

                        Synology DS920+ VM, S7-315 PN mit ET200S

                        HomoranH 1 Antwort Letzte Antwort
                        0
                        • fu_zhouF fu_zhou

                          @homoran Schlaf gut und danke schon mal vorab, ich suche selber schon mal...

                          HomoranH Nicht stören
                          HomoranH Nicht stören
                          Homoran
                          Global Moderator Administrators
                          schrieb am zuletzt editiert von
                          #12

                          @fu_zhou sagte in PI(D) Regler - Adapter oder Skript?!:

                          @homoran Schlaf gut und danke schon mal vorab, ich suche selber schon mal...

                          hier sind die Links zu den Bestandteilen

                          https://forum.iobroker.net/topic/30676/e-auto-mit-pv-überschuss-laden/9?_=1635358994678

                          das größere Problem sind nämlich schnell wechselnde Wolken

                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          1 Antwort Letzte Antwort
                          0
                          • fu_zhouF fu_zhou

                            @paul53 super, vielen Dank!
                            Die Zeile

                            if (Tn) setInterval(control, 250 * Tn);
                            

                            Ist nicht kommentiert. Was passiert hier mit der Nachstellzeit?

                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von paul53
                            #13

                            @fu_zhou sagte: Ist nicht kommentiert. Was passiert hier mit der Nachstellzeit?

                            Der Regler wird zyklisch (mit 1/4 Nachstellzeit) aufgerufen, damit der I-Anteil kontinuierlich weiter laufen kann, wenn die Regelabweichung lange Zeit konstant ist, was bei der Raumtemperatur sein kann.

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                            1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @fu_zhou sagte: D-Anteil brauche ich nicht, PI langt.
                              ... Eine Idee wäre noch der PID Controller von Github:

                              Alternative: PI-Regler
                              Einfach in der Konfiguration der Javascript-Instanz als zusätzliches NPM-Modul eintragen. Beispiel

                              fu_zhouF Offline
                              fu_zhouF Offline
                              fu_zhou
                              schrieb am zuletzt editiert von fu_zhou
                              #14

                              @paul53 ich bin's mal wieder, nachdem jetzt sogar das E-Auto nach 15 Monaten Lieferzeit da ist... Wie kann ich den Regler aus dem Beispiel für z.B. 30 Sekunden lang "anhalten", weil meine Beobachtung ist folgende:
                              Der go-E-Charger verändert die Ladeleistung mit ganzen Ampere-Sprüngen, d.h. wenn ich mit 6 A Lade und der Regler wg. PV-Überschuss Richtung 7 A steuert, springt auf einmal bei 1-phasigem Laden der Istwert von ca. 1.4 kW (6 A) auf 1.6 kW (7 A), was natürlich beim Regler eine Sprungantwort provoziert und auf 6 A zurückgeschaltet wird und dann geht's hin und her. Ich möchte xp aber nicht so groß wählen, dass der Sprung so klein ist, dass es nicht zum Runterschalten kommt, dann wird das ganze viel zu träge. Der Trigger ist also die Änderung des Ladestroms in der Wallbox, was dazu führen soll, dass der Regler für z.B. 30 Sekunden inaktiv ist, um den Leistungssprung ohne Reaktion abzuwarten. Kriegt man die "function control" für eine bestimmte Zeit angehalten, getriggert durch die Veränderung des Ladestrom? Ggf. kann man das erreichen, indem man für die Zeit den Sollwert auf den Istwert schreibt (x=w), dann gibt es keine Abweichung zwischen x und w und y wird nicht verändert. Die Frage ist dann halt, was passiert, wenn wieder auf den echten Istwert geschaltet wird, ist ja auch ein Sprung. Die "function control" kurz anzuhalten scheint da der bessere Weg zu sein...

                              Danke schon mal vorab!

                              Ergänzung: habe das jetzt erst einmal gelöst, indem ich xp dynamisch aus Blockly heraus hochsetze, um die Sprungantwort zu dämpfen, aber vielleicht hast du noch eine elegantere Idee? Hier das komplette Regler-Skript mit dynamischem Xp.

                              // PI-Regler
                              // Datenpunkt-IDs eintragen !
                              const xid = 'javascript.0.Wallbox.Netzleistung'; // Istwert
                              const wid = 'javascript.0.Wallbox.Sollwert_Netzbezug'; // Sollwert
                              const yid = 'javascript.0.Wallbox.Ladeleistung'; // Stellgröße
                              const maxid = 'javascript.0.Wallbox.maxOut'; // Stellgröße Maximum zur Reglerbegrenzung
                              const xpid = 'javascript.0.Wallbox.xp'; // xp: je größer, je langsamer
                              
                              // P-Band in K, Nachstellzeit in s
                              const Xp = 50; // je größer, je langsamer ==> Initialwert, wird in "function control" dynamisch verändert
                              const Tn = 5; // je größer, je langsamer
                              
                              var x = getState(xid).val; // Istwert
                              var w = getState(wid).val; // Sollwert
                              var m = getState(maxid).val; // Sollwert Maximum
                              
                              const PI = require('pi-controller'); // als zusätzliches NPM-Modul in JS-Config eintragen
                              const pi = new PI(Xp, Tn);
                              //pi.setOutputMax(m); // default: OutputMax = 100 ==> wird in "function control" aufgerufen, um dynamisches maxOut zu berücksichtigen
                              
                              function control() {
                                const Xp = getState(xpid).val; // Xp kommt dynamisch vom Blockly-Skript
                                pi.setOutputMax(m); // maxOut kommt dynamisch vom Blockly-Skript
                                var y = pi.Control(w - x)+1.3; // Stellsignal mit 1.3 kW Offset um Totzeit zu reduzieren bis Mindestleistung von 1.4 kW erreicht ist
                                setState(yid, Math.round(y*100)/100); //Stellwert auf 2 Nachkommastellen runden
                                
                                console.log(Xp);
                                console.log(getState(yid).val);
                              }
                               
                              control(); // Script start
                              
                              on(xid, function(dp) {
                                x = dp.state.val;
                                control();
                              });
                               
                              on(wid, function(dp) {
                                w = dp.state.val;
                                control();
                              });
                              
                              on(maxid, function(dp) {
                                m = dp.state.val;
                                control();
                              });
                              
                              if (Tn) setInterval(control, 250 * Tn );
                              

                              Synology DS920+ VM, S7-315 PN mit ET200S

                              1 Antwort Letzte Antwort
                              0
                              Antworten
                              • In einem neuen Thema antworten
                              Anmelden zum Antworten
                              • Älteste zuerst
                              • Neuste zuerst
                              • Meiste Stimmen


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              652

                              Online

                              32.4k

                              Benutzer

                              81.5k

                              Themen

                              1.3m

                              Beiträge
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2025
                              logo
                              • Anmelden

                              • Du hast noch kein Konto? Registrieren

                              • Anmelden oder registrieren, um zu suchen
                              • Erster Beitrag
                                Letzter Beitrag
                              0
                              • Home
                              • Aktuell
                              • Tags
                              • Ungelesen 0
                              • Kategorien
                              • Unreplied
                              • Beliebt
                              • GitHub
                              • Docu
                              • Hilfe