Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Heizungsregelung --- timeout?

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    12
    2
    280

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

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

Heizungsregelung --- timeout?

Heizungsregelung --- timeout?

Scheduled Pinned Locked Moved Blockly
16 Posts 2 Posters 1.1k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    SamyD
    wrote on last edited by
    #1

    Hallo zusammen,

    ich bin noch relativ neu mit Blockly unterwegs und verzweifle derzeit an einer Heizungssteuerung?! Meine ursprüngliche Idee war es, einen PI-Regler für die Heizung einzusetzen, aber das ist mir irgendwie dann doch zu komplex. Jetzt habe ich das einfacher gelöst ... bzw. versucht zu lösen ... bisher leider mit mäßigem Erfolg.
    Es wäre super, wenn Ihr mich unterstützen könntet!

    Ziel des Ganzen soll es sein, dass je nach PV-Einspeisung oder Netzbezug die Solltemperatur der Heizung sich erhöht oder wieder reduziert. Da die Heizung träge ist, merkt man erst nach einer gewissen Zeit die Auswirkung auf den Strombedarf. Daher wollte ich die Nachstellzeit mit einem Timeout machen. Hier scheitere ich allerdings .... irgendwie will das nicht funktionieren??

    07e91aa5-75cd-4714-aa17-dd3cd7057759-image.png

    paul53P 1 Reply Last reply
    0
    • S SamyD

      Hallo zusammen,

      ich bin noch relativ neu mit Blockly unterwegs und verzweifle derzeit an einer Heizungssteuerung?! Meine ursprüngliche Idee war es, einen PI-Regler für die Heizung einzusetzen, aber das ist mir irgendwie dann doch zu komplex. Jetzt habe ich das einfacher gelöst ... bzw. versucht zu lösen ... bisher leider mit mäßigem Erfolg.
      Es wäre super, wenn Ihr mich unterstützen könntet!

      Ziel des Ganzen soll es sein, dass je nach PV-Einspeisung oder Netzbezug die Solltemperatur der Heizung sich erhöht oder wieder reduziert. Da die Heizung träge ist, merkt man erst nach einer gewissen Zeit die Auswirkung auf den Strombedarf. Daher wollte ich die Nachstellzeit mit einem Timeout machen. Hier scheitere ich allerdings .... irgendwie will das nicht funktionieren??

      07e91aa5-75cd-4714-aa17-dd3cd7057759-image.png

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #2

      @samyd sagte: PI-Regler für die Heizung einzusetzen, aber das ist mir irgendwie dann doch zu komplex.

      Was ist daran zu komplex?
      Komplex ist es eher, die vielen Timer in den Griff zu bekommen und deren Mehrfachstart zu verhindern.

      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

      S 1 Reply Last reply
      0
      • paul53P paul53

        @samyd sagte: PI-Regler für die Heizung einzusetzen, aber das ist mir irgendwie dann doch zu komplex.

        Was ist daran zu komplex?
        Komplex ist es eher, die vielen Timer in den Griff zu bekommen und deren Mehrfachstart zu verhindern.

        S Offline
        S Offline
        SamyD
        wrote on last edited by
        #3

        @paul53: Ich habe es hiermit mal probiert, finde das schon recht interessant:

        793a179d-9812-4a5c-8db2-37d5be0a3973-image.png

        Leider habe ich das bis dato nicht geschafft richtig einzustellen.
        Meine Heizung lässt sich nur in 0,5°C-Schritten zwischen 5°C - 30°C steuern.

        paul53P 1 Reply Last reply
        0
        • S SamyD

          @paul53: Ich habe es hiermit mal probiert, finde das schon recht interessant:

          793a179d-9812-4a5c-8db2-37d5be0a3973-image.png

          Leider habe ich das bis dato nicht geschafft richtig einzustellen.
          Meine Heizung lässt sich nur in 0,5°C-Schritten zwischen 5°C - 30°C steuern.

          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by paul53
          #4

          @samyd sagte: Meine Heizung lässt sich nur in 0,5°C-Schritten zwischen 5°C - 30°C steuern.

          Die 0,5 Grad Schritte erhält man durch

          runde(output * 2) / 2
          

          Bild_2021-11-14_181140.png

          Der Stellbereich beträgt 30 - 5 = 25 (für Berechnung von p). Es muss außerdem lauten

          setze output auf 15 + p + i
          

          Der Trigger-Datenpunkt enthält Einspeisung - Bezug (kann negativ 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

          S 1 Reply Last reply
          0
          • paul53P paul53

            @samyd sagte: Meine Heizung lässt sich nur in 0,5°C-Schritten zwischen 5°C - 30°C steuern.

            Die 0,5 Grad Schritte erhält man durch

            runde(output * 2) / 2
            

            Bild_2021-11-14_181140.png

            Der Stellbereich beträgt 30 - 5 = 25 (für Berechnung von p). Es muss außerdem lauten

            setze output auf 15 + p + i
            

            Der Trigger-Datenpunkt enthält Einspeisung - Bezug (kann negativ werden)?

            S Offline
            S Offline
            SamyD
            wrote on last edited by
            #5

            @paul53 : Super, Danke!!! Habs gleichmal übernommen, kann ich aber erst morgen testen, wenn ich wieder Strom auf der PV-Anlage habe.

            Den Trigger habe ich direkt auf die Einspeisung gelegt, ist bei mir immer positiv. Ist das so richtig?

            Ist es richtig, dass Tn die Nachstellzeit für den Sollwert ist?
            Wie binde ich ein, dass die Heizung sich ausschaltet, wenn keine Einspeisung über eine gewisse Zeit erfolgt?

            paul53P 1 Reply Last reply
            0
            • S SamyD

              @paul53 : Super, Danke!!! Habs gleichmal übernommen, kann ich aber erst morgen testen, wenn ich wieder Strom auf der PV-Anlage habe.

              Den Trigger habe ich direkt auf die Einspeisung gelegt, ist bei mir immer positiv. Ist das so richtig?

              Ist es richtig, dass Tn die Nachstellzeit für den Sollwert ist?
              Wie binde ich ein, dass die Heizung sich ausschaltet, wenn keine Einspeisung über eine gewisse Zeit erfolgt?

              paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by paul53
              #6

              @samyd sagte: Einspeisung gelegt, ist bei mir immer positiv. Ist das so richtig?

              Nein, der Wert muss auch negativ werden, da sich sonst der I-Anteil des Reglers nur in eine Richtung (größer) bewegen kann. Ziehe den Bezug ab.

              Bild_2021-11-14_185414.png

              ... oder einen festen Zielwert

              Bild_2021-11-14_190345.png

              @samyd sagte in Heizungsregelung --- timeout?:

              Ist es richtig, dass Tn die Nachstellzeit für den Sollwert ist?

              Ja.

              @samyd sagte in Heizungsregelung --- timeout?:

              Wie binde ich ein, dass die Heizung sich ausschaltet, wenn keine Einspeisung über eine gewisse Zeit erfolgt?

              Bei einem Sollwert von 5°C ist die Heizung praktisch aus.

              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

              S 1 Reply Last reply
              0
              • paul53P paul53

                @samyd sagte: Einspeisung gelegt, ist bei mir immer positiv. Ist das so richtig?

                Nein, der Wert muss auch negativ werden, da sich sonst der I-Anteil des Reglers nur in eine Richtung (größer) bewegen kann. Ziehe den Bezug ab.

                Bild_2021-11-14_185414.png

                ... oder einen festen Zielwert

                Bild_2021-11-14_190345.png

                @samyd sagte in Heizungsregelung --- timeout?:

                Ist es richtig, dass Tn die Nachstellzeit für den Sollwert ist?

                Ja.

                @samyd sagte in Heizungsregelung --- timeout?:

                Wie binde ich ein, dass die Heizung sich ausschaltet, wenn keine Einspeisung über eine gewisse Zeit erfolgt?

                Bei einem Sollwert von 5°C ist die Heizung praktisch aus.

                S Offline
                S Offline
                SamyD
                wrote on last edited by
                #7

                @paul53 : Ich habe das Objekt jetzt vom Smartmeter genommen, hier ist Bezug und Einspeisung enthalten.

                Bei einem positiven Wert sollte der Regler hoch fahren, bei einem negativen Wert runter regeln, richtig? Dann sollte bei Bezug der Wert negativ sein und bei Einspeisung negativ??
                0d023815-5f37-4bac-aa51-ee49dce11a36-image.png

                Das mit der Nachstellzeit klappt noch nicht ganz. Der Output läuft zu schnell, vermutlich wird die Reaktion der Heizung (Stromaufnahme) nicht hinter her kommen.

                paul53P 1 Reply Last reply
                0
                • S SamyD

                  @paul53 : Ich habe das Objekt jetzt vom Smartmeter genommen, hier ist Bezug und Einspeisung enthalten.

                  Bei einem positiven Wert sollte der Regler hoch fahren, bei einem negativen Wert runter regeln, richtig? Dann sollte bei Bezug der Wert negativ sein und bei Einspeisung negativ??
                  0d023815-5f37-4bac-aa51-ee49dce11a36-image.png

                  Das mit der Nachstellzeit klappt noch nicht ganz. Der Output läuft zu schnell, vermutlich wird die Reaktion der Heizung (Stromaufnahme) nicht hinter her kommen.

                  paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by paul53
                  #8

                  @samyd sagte: hier ist Bezug und Einspeisung enthalten.

                  Bezug - Einspeisung?

                  Ändere den Trigger auf "wurde aktualisiert", damit der I-Anteil kontinuierlich hoch-/runter läuft, auch wenn der Trigger-Wert konstant ist.

                  @samyd sagte in Heizungsregelung --- timeout?:

                  Das mit der Nachstellzeit klappt noch nicht ganz. Der Output läuft zu schnell

                  Ja, 2 Minuten sind recht wenig für thermische Prozesse.

                  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

                  S 1 Reply Last reply
                  0
                  • paul53P paul53

                    @samyd sagte: hier ist Bezug und Einspeisung enthalten.

                    Bezug - Einspeisung?

                    Ändere den Trigger auf "wurde aktualisiert", damit der I-Anteil kontinuierlich hoch-/runter läuft, auch wenn der Trigger-Wert konstant ist.

                    @samyd sagte in Heizungsregelung --- timeout?:

                    Das mit der Nachstellzeit klappt noch nicht ganz. Der Output läuft zu schnell

                    Ja, 2 Minuten sind recht wenig für thermische Prozesse.

                    S Offline
                    S Offline
                    SamyD
                    wrote on last edited by
                    #9

                    @paul53 : das mit Tn scheint irgendwie nicht ganz zu klappen?! Der Regler läuft bei der Trigger-Aktualisierung zu schnell hoch bzw. runter und das nach ein paar Sekunden. Anscheinend regelt er nicht entsprechend der Einstellung bei Tn??

                    paul53P 1 Reply Last reply
                    0
                    • S SamyD

                      @paul53 : das mit Tn scheint irgendwie nicht ganz zu klappen?! Der Regler läuft bei der Trigger-Aktualisierung zu schnell hoch bzw. runter und das nach ein paar Sekunden. Anscheinend regelt er nicht entsprechend der Einstellung bei Tn??

                      paul53P Offline
                      paul53P Offline
                      paul53
                      wrote on last edited by
                      #10

                      @samyd sagte: Der Regler läuft bei der Trigger-Aktualisierung zu schnell hoch bzw. runter und das nach ein paar Sekunden. Anscheinend regelt er nicht entsprechend der Einstellung bei Tn??

                      Mit welchem Zyklus wird getriggert?
                      Wenn Tn keinen Einfluss hat, ist sicherlich noch ein Fehler enthalten. Poste mal den Blockly-Export in Code tags.

                      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 Reply Last reply
                      0
                      • S Offline
                        S Offline
                        SamyD
                        wrote on last edited by
                        #11

                        @paul53 : Es wird alle 6 Sekunden getriggert.

                        f7a58b20-3cc6-4dfe-9271-dd9925dcc70d-image.png

                        paul53P 1 Reply Last reply
                        0
                        • S SamyD

                          @paul53 : Es wird alle 6 Sekunden getriggert.

                          f7a58b20-3cc6-4dfe-9271-dd9925dcc70d-image.png

                          paul53P Offline
                          paul53P Offline
                          paul53
                          wrote on last edited by paul53
                          #12

                          @samyd
                          Das ist nicht der Export. Poste bitte die Javascript-Ansicht ohne die letzte Zeile in Code tags. Etwa so:

                          var i, Xp, Tn, p, lasti, output;
                          
                          
                          i = 0;
                          Xp = 1600;
                          Tn = 300;
                          // Einspeisung - Bezug
                          on({id: 'default', change: "any"}, async function (obj) {
                            var value = obj.state.val;
                            var oldValue = obj.oldState.val;
                            p = parseFloat((parseFloat(25) / Xp)) * (parseFloat((obj.state ? obj.state.val : "")) - 200);
                            lasti = i;
                            i = (typeof i == 'number' ? i : 0) + parseFloat(p) * (parseFloat((parseFloat((obj.state ? obj.state.ts : "")) - (obj.oldState ? obj.oldState.ts : ""))) / (parseFloat(1000) * Tn));
                            output = parseFloat(Math.round(parseFloat((parseFloat(15) + parseFloat(p) + i)) * 2)) / 2;
                            if (output > 30) {
                              output = 30;
                              i = lasti;
                            }
                            if (output < 5) {
                              output = 5;
                              i = lasti;
                            }
                            if (output != getState("0_userdata.0.Blockly.Soll_Temperatur").val) {
                              setState("0_userdata.0.Blockly.Soll_Temperatur"/*Sollwert*/, output);
                            }
                          });
                          

                          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

                          S 1 Reply Last reply
                          0
                          • paul53P paul53

                            @samyd
                            Das ist nicht der Export. Poste bitte die Javascript-Ansicht ohne die letzte Zeile in Code tags. Etwa so:

                            var i, Xp, Tn, p, lasti, output;
                            
                            
                            i = 0;
                            Xp = 1600;
                            Tn = 300;
                            // Einspeisung - Bezug
                            on({id: 'default', change: "any"}, async function (obj) {
                              var value = obj.state.val;
                              var oldValue = obj.oldState.val;
                              p = parseFloat((parseFloat(25) / Xp)) * (parseFloat((obj.state ? obj.state.val : "")) - 200);
                              lasti = i;
                              i = (typeof i == 'number' ? i : 0) + parseFloat(p) * (parseFloat((parseFloat((obj.state ? obj.state.ts : "")) - (obj.oldState ? obj.oldState.ts : ""))) / (parseFloat(1000) * Tn));
                              output = parseFloat(Math.round(parseFloat((parseFloat(15) + parseFloat(p) + i)) * 2)) / 2;
                              if (output > 30) {
                                output = 30;
                                i = lasti;
                              }
                              if (output < 5) {
                                output = 5;
                                i = lasti;
                              }
                              if (output != getState("0_userdata.0.Blockly.Soll_Temperatur").val) {
                                setState("0_userdata.0.Blockly.Soll_Temperatur"/*Sollwert*/, output);
                              }
                            });
                            
                            S Offline
                            S Offline
                            SamyD
                            wrote on last edited by
                            #13

                            @paul53 : sorry

                            @paul53 :

                            var i, Xp, Tn, p, lasti, output;
                            
                            
                            i = 0;
                            Xp = 1600;
                            Tn = 120;
                            // Einspeisung/Bezug
                            on({id: 'smartmeter.0.1-0:16_7_0__255.value', change: "any"}, async function (obj) {
                              var value = obj.state.val;
                              var oldValue = obj.oldState.val;
                              p = parseFloat((parseFloat(25) / Xp)) * (parseFloat(getState("javascript.0.variables.Einspeisung").val) - getState("javascript.0.variables.Netzbezug").val);
                              lasti = i;
                              i = (typeof i == 'number' ? i : 0) + parseFloat(p) * (parseFloat((parseFloat((obj.state ? obj.state.ts : "")) - (obj.oldState ? obj.oldState.ts : ""))) / (parseFloat(1000) * Tn));
                              output = parseFloat(Math.round(parseFloat((parseFloat(15) + parseFloat(p) + i)) * 2)) / 2;
                              if (output > 30) {
                                output = 30;
                                i = lasti;
                              }
                              if (output < 5) {
                                output = 5;
                                i = lasti;
                                setState("vaillant.0.xxx.systemcontrol.zones01.heating.configuration.mode"/*mode*/, ('' + 'OFF'));
                              }
                              if (output != getState("vaillant.0.xxx.systemcontrol.zones01.heating.configuration.setpoint_temperature").val) {
                                setState("vaillant.0.xxx.systemcontrol.zones01.heating.configuration.setpoint_temperature"/*setpoint_temperature*/, output);
                                console.warn(output);
                              }
                            });
                            
                            paul53P 1 Reply Last reply
                            0
                            • S SamyD

                              @paul53 : sorry

                              @paul53 :

                              var i, Xp, Tn, p, lasti, output;
                              
                              
                              i = 0;
                              Xp = 1600;
                              Tn = 120;
                              // Einspeisung/Bezug
                              on({id: 'smartmeter.0.1-0:16_7_0__255.value', change: "any"}, async function (obj) {
                                var value = obj.state.val;
                                var oldValue = obj.oldState.val;
                                p = parseFloat((parseFloat(25) / Xp)) * (parseFloat(getState("javascript.0.variables.Einspeisung").val) - getState("javascript.0.variables.Netzbezug").val);
                                lasti = i;
                                i = (typeof i == 'number' ? i : 0) + parseFloat(p) * (parseFloat((parseFloat((obj.state ? obj.state.ts : "")) - (obj.oldState ? obj.oldState.ts : ""))) / (parseFloat(1000) * Tn));
                                output = parseFloat(Math.round(parseFloat((parseFloat(15) + parseFloat(p) + i)) * 2)) / 2;
                                if (output > 30) {
                                  output = 30;
                                  i = lasti;
                                }
                                if (output < 5) {
                                  output = 5;
                                  i = lasti;
                                  setState("vaillant.0.xxx.systemcontrol.zones01.heating.configuration.mode"/*mode*/, ('' + 'OFF'));
                                }
                                if (output != getState("vaillant.0.xxx.systemcontrol.zones01.heating.configuration.setpoint_temperature").val) {
                                  setState("vaillant.0.xxx.systemcontrol.zones01.heating.configuration.setpoint_temperature"/*setpoint_temperature*/, output);
                                  console.warn(output);
                                }
                              });
                              
                              paul53P Offline
                              paul53P Offline
                              paul53
                              wrote on last edited by
                              #14

                              @samyd
                              Kein Fehler zu finden. Erhöhe mal Tn auf 600.

                              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

                              S 1 Reply Last reply
                              0
                              • paul53P paul53

                                @samyd
                                Kein Fehler zu finden. Erhöhe mal Tn auf 600.

                                S Offline
                                S Offline
                                SamyD
                                wrote on last edited by
                                #15

                                @paul53 : Tn steht auf 600, regelt aber immer noch krass hin und her...

                                2f26edbc-6ae5-4713-baa3-88832b1c9e82-image.png

                                paul53P 1 Reply Last reply
                                0
                                • S SamyD

                                  @paul53 : Tn steht auf 600, regelt aber immer noch krass hin und her...

                                  2f26edbc-6ae5-4713-baa3-88832b1c9e82-image.png

                                  paul53P Offline
                                  paul53P Offline
                                  paul53
                                  wrote on last edited by
                                  #16

                                  @samyd sagte: regelt aber immer noch krass hin und her...

                                  Dann muss die Leistung (Einspeisung - Bezug) stark schwanken, so dass diese Schwankungen des Ausgangs durch den P-Anteil bedingt sind. Da hilft nur, Xp zu vergrößern.

                                  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 Reply Last reply
                                  0
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  212

                                  Online

                                  32.4k

                                  Users

                                  81.3k

                                  Topics

                                  1.3m

                                  Posts
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Login

                                  • Don't have an account? Register

                                  • Login or register to search.
                                  • First post
                                    Last post
                                  0
                                  • Recent
                                  • Tags
                                  • Unread 0
                                  • Categories
                                  • Unreplied
                                  • Popular
                                  • GitHub
                                  • Docu
                                  • Hilfe