Skip to content
  • Home
  • 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
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Vorlage] Ventilsteuerung PWM-Ansatz für FBH/IR-Panele o.ä.

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    518

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    5.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

[Vorlage] Ventilsteuerung PWM-Ansatz für FBH/IR-Panele o.ä.

Scheduled Pinned Locked Moved Skripten / Logik
83 Posts 22 Posters 21.3k Views 9 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.
  • Q Offline
    Q Offline
    quorle
    wrote on last edited by
    #27

    Also ich hätte da auch einmal eine Frage bezüglich des Scriptes, wäre es möglich das Script auch zur Steuerung der Heizventile HM-CC-RT-DN ( Heizthermostate für normale Wandheizkörper )geeignet wäre. Als Profilsteuerung nutze ich das Heizungsscript V2 von looxer01 und würde nun meine Heizthermostate mittels externen Raumthermostat jeweils in einer variablen Zeitvorgabe die neu errechnete Sollwertvorgabe Temp senden.

    1 Reply Last reply
    0
    • apollon77A Offline
      apollon77A Offline
      apollon77
      wrote on last edited by
      #28

      An sich sollten diese "Normalen Heizkörperthermostate" so eine Logik drin haben bzw das ist genau die "Ventilstellung" die die zwischen 0 und 100% einstellen …

      Das Skript gibt ja auch keine "neue Solltemperatur" vor, sondern versucht es so einzustellen das die eigentliche Solltemperatur erreicht wird.

      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
      1 Reply Last reply
      0
      • Q Offline
        Q Offline
        quorle
        wrote on last edited by
        #29

        Du hast schon recht, das die "normalen Regler" schon so eine Logik eingebaut haben ( PI-Regler ). Jedoch Regeln diese in meinen Augen zu ungenau, auch mit Einstellung eines Offset.

        1 Reply Last reply
        0
        • etvE Offline
          etvE Offline
          etv
          wrote on last edited by
          #30

          Servus Apollon77,

          nachdem ich mein altes, auf der CCU laufendes Script, langsam austauschen möchte und auf meiner Suche nach Alternativen auf dein Script gestoßen bin, mal ein großes Danke für die Portierung des CCU-Scripts! :!:

          Beim Durchackern des Scripts glaube ich alles verstanden zu haben, aber eine Frage noch:

          Bei einem Solltemperatur Wechsel wird logischerweise erst "ab dem Wechsel" auf die neue Temperatur geregelt, also da gibt es keine "vorausschauende Funktion", oder?

          D.h. wenn ich Absenkungen drinnen hab, muss ich mir die zeitliche Änderung der Solltemperatur selber errechnen/bestimme/ausmessen und dementsprechend früher setzen?

          Wenn dem so ist, dann muss ich nur die Logik meines jetzigen Scripts in das Auslesen der Solltemperatur stecken - dieser Wert ist bei mir sowieso eine Variable und nicht im Wandthermostat gespeichert um niemanden dran rumdrehen zu sehen :D

          Liebe Grüße

          tom

          …ist schon sehr lange begeisterter ioBroker Nutzer! 1x zu Hause und 1x auf der Alm. ioBroker ist das 'Hirn' des Smarthome und steuert HomeMatic und Shellys, loggt was so passiert, zeigt es auf Tabletts schön an und ermöglicht mir via Cloud Adapter den Fernzugriff...

          1 Reply Last reply
          0
          • apollon77A Offline
            apollon77A Offline
            apollon77
            wrote on last edited by
            #31

            Ich hatte unter viewtopic.php?f=21&t=10112 noch ein weiteres Skript mit AUfheizzeit-Messung und Vorasusteuerung gepostet -das erledigt das Thema wenn die Temperatur hoch soll.

            Da ich den Fall bei Absenkung nicht sehe (man will ja das es bis zum Ende warm bleibt) ist das Skript auf "erhöhung" ausgelegt.

            Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

            • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
            • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
            1 Reply Last reply
            0
            • etvE Offline
              etvE Offline
              etv
              wrote on last edited by
              #32

              …spitze, danke dir!

              Liebe Grüße

              tom

              …ist schon sehr lange begeisterter ioBroker Nutzer! 1x zu Hause und 1x auf der Alm. ioBroker ist das 'Hirn' des Smarthome und steuert HomeMatic und Shellys, loggt was so passiert, zeigt es auf Tabletts schön an und ermöglicht mir via Cloud Adapter den Fernzugriff...

              1 Reply Last reply
              0
              • etvE Offline
                etvE Offline
                etv
                wrote on last edited by
                #33

                Servus Apollon77,

                ich hab dein Script nun im Einsatz und es scheint mal ganz gut zu klappen. Ich hab es noch dahingehend modifiziert (bzw. meinen Teil in einem eigenen Script zusammengefasst). dass ich die Heizung erst starte, wenn auch ein Ventil auf geht und wieder stoppe, wenn alle Ventile geschlossen sind. Unsere Heizung, bzw. die Pumpe schaltet sich leider nicht ab, wenn kein Ventil offen ist…so läuft die Pumpe immer gehen geschlossene Ventile.

                Das wirft jedoch das Problem auf, dass in der Übergangszeit die vom Script berechneten Heizzeiten natürlich zu gering sind und keine nennenswerten Auswirkungen auf die Temperatur haben, muss doch die Heizung erst "Fahrt aufnehmen".

                Nun möchte ich in diesem Fall (Heizung eigentlich aus) die Heizzeiten verlängern, finde jedoch die Stelle nicht wirklich im Script.

                Kannst du mir bitte sagen, wo in etwa die errechnete Heizzeit "fertig" ist und wo ich sie dann ggfls verlängern kann?

                Liebe Grüße

                Tom

                PS: das Programm mit seinen, ich sag mal "verschachtelten Variablen" ist für mich einfach zu hoch :D

                …ist schon sehr lange begeisterter ioBroker Nutzer! 1x zu Hause und 1x auf der Alm. ioBroker ist das 'Hirn' des Smarthome und steuert HomeMatic und Shellys, loggt was so passiert, zeigt es auf Tabletts schön an und ermöglicht mir via Cloud Adapter den Fernzugriff...

                1 Reply Last reply
                0
                • apollon77A Offline
                  apollon77A Offline
                  apollon77
                  wrote on last edited by
                  #34

                  Puuhhh .. da bin auch ich etwas überfragt. Ich habe ja das Skript auch "Nur" weitestgehend von einem Homematic-Skript (siehe Link) übernommen und in JavaScript umgewandelt.

                  Von daher wäre @Twoxx wohl der bessere Ansprechpartner dazu. chreib Ihm doch mal hier e PN oder poste deine Frage in dem HM Thread.

                  Alternativ ist die Frage ob das überhaupt nötig ist. Das Skript hier betrachtet die zurückliegende Temperaturentwicklung und projiziert die Zukunft. Von daher sollte es egal sein weil sich das ganze dann wieder relativiert über die Zeit bzw. alles eh davon abhängt wie gross dein Temperaturunterschied ist den Du ausgleichen musst.

                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                  1 Reply Last reply
                  0
                  • etvE Offline
                    etvE Offline
                    etv
                    wrote on last edited by
                    #35

                    @apollon77:

                    Puuhhh .. da bin auch ich etwas überfragt. Ich habe ja das Skript auch "Nur" weitestgehend von einem Homematic-Skript (siehe Link) übernommen und in JavaScript umgewandelt.

                    Von daher wäre @Twoxx wohl der bessere Ansprechpartner dazu. chreib Ihm doch mal hier e PN oder poste deine Frage in dem HM Thread.

                    Alternativ ist die Frage ob das überhaupt nötig ist. Das Skript hier betrachtet die zurückliegende Temperaturentwicklung und projiziert die Zukunft. Von daher sollte es egal sein weil sich das ganze dann wieder relativiert über die Zeit bzw. alles eh davon abhängt wie gross dein Temperaturunterschied ist den Du ausgleichen musst. `

                    …OK, danke dir!

                    Liebe Grüße

                    Tom

                    …ist schon sehr lange begeisterter ioBroker Nutzer! 1x zu Hause und 1x auf der Alm. ioBroker ist das 'Hirn' des Smarthome und steuert HomeMatic und Shellys, loggt was so passiert, zeigt es auf Tabletts schön an und ermöglicht mir via Cloud Adapter den Fernzugriff...

                    1 Reply Last reply
                    0
                    • D Offline
                      D Offline
                      DenniskKo
                      wrote on last edited by
                      #36

                      Hallo,

                      kann mir mal bitte jemand erklären (bin leider Homematic unkundig :oops: )

                      um was für Werte es sich hier handelt?

                      	stateIdHeizungAktor: "hm-rpc.0.LEQ0282183.3.STATE",
                              stateIdHeizungAktorOnTime: "hm-rpc.0.LEQ0282183.3.ON_TIME",
                              stateIdSollTemperatur: "hm-rpc.0.NEQ0072178.2.SET_TEMPERATURE",
                              stateIdIstTemperatur: "hm-rpc.0.NEQ0072178.1.TEMPERATURE"
                      

                      stateIdHeizungAktor: -> Aktor = Stellmotor Heizung

                      stateIdHeizungAktorOnTime: -> ?

                      stateIdSollTemperatur: -> gewünschte Raumtemperatur

                      stateIdIstTemperatur: -> aktuelle (gemessene) Temperatur

                      Liege ich da richtig? Für einen kleinen Schubs in die richtige Richtung wäre ich dankbar.

                      Grüße, Dennis

                      1 Reply Last reply
                      0
                      • apollon77A Offline
                        apollon77A Offline
                        apollon77
                        wrote on last edited by
                        #37

                        Fast korrekt:
                        > stateIdHeizungAktorOnTime: -> ?

                        HM-Geräte haben einen "ON_TIME" Datenpunkt der angibt wie lange an bleiben soll. Dann macht der Akttor nach Ablauf der Zeit automatisch aus. Also quasi die "Zeitsteuerung für den Aktor". Das Skript schreibt da die Anzahl Sekunden rein nachdem aus gehen soll

                        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                        1 Reply Last reply
                        0
                        • T Offline
                          T Offline
                          thobastian
                          wrote on last edited by
                          #38

                          Hallo !

                          Ich möchte dies Script verwenden und möchte nur sicherstellen, dass meine Hardware auch so angesteuert wird, wie gedacht.

                          Ich habe einen Stellantrieb, der mit HM-4er-Funkschlataktor gesteuert wird, also nur an oder aus.

                          Außerdem habe ich einen Thermostatregler und Fenstersensor von HM.

                          Jetzt ist der Fenstersensor direkt mit dem Thermostat von HM verknüpft. Der Thermostat gibt die Temperaturen in der Woche vor.

                          Wie werden die Temperaturen aus dem Thermostat verwendet um meinen Stellantrieb zu steuern ? Kann das Script hier helfen?

                          HW: Homematic CCU2, Amazon Echo, diverse NodeMCU's mit Sensoren,

                          SW: IOBroker: immer neueste Version mit ESPEasy auf den NodeMCU's

                          1 Reply Last reply
                          0
                          • apollon77A Offline
                            apollon77A Offline
                            apollon77
                            wrote on last edited by
                            #39

                            Das Skript hier arbeitet ausschliesslich auf den "Ist"-Werten und dem Soll-Wert und steuert in die Zukunft und versucht hierbei nicht zu "übersteuern".

                            Wie im ersten Post beschrieben die States entsprechend definieren und setzen und fertig. Diesem Skript sind Fenstersensoren erstmal egal, bzw eine Absenkung der gewünschten Soll-Temperatur wird im nächsten Laufzyklus dann berücksichtigt.

                            Versuchs aus dann siehst Du wie es tut.

                            Wegen dem Ansatz musst Du bei deiner Steuerung der "Wann soll es wie warm sein" aber die übliche Aufheizzeit berücksichtigen weil das Wochen/Tagesprogramm im Thermostat gespeichert ist und so für das Skript nicht verfügbar ist.

                            Für eine "Zukunftssteuerung" (also früh genug schonmal die Heizung einschalten) gibt es die Erweiterung aus dem ersten Post die aber darauf aufsetzt das die Steuerung nicht mit den Daten aus dem Thermostat läuft sondern über ein cooles Skript.

                            Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                            • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                            • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                            1 Reply Last reply
                            0
                            • E Offline
                              E Offline
                              e-i-k-e
                              wrote on last edited by
                              #40

                              Guten Abend,

                              habe das Skript wie folgt angepasst.

                              var rooms= {
                                  'Fernsehzimmer': {
                                      stateIdHeizungAktor: "hm-rpc.0.PEQ0508369.1.STATE",
                                      stateIdHeizungAktorOnTime: "hm-rpc.0.PEQ0508369.1.ON_TIME",
                                      stateIdSollTemperatur: "hm-rpc.0.PEQ0508369.1.SOLLTEMP",
                                      stateIdIstTemperatur: "hm-rpc.0.LEQ0420645.4.ACTUAL_TEMPERATURE"
                                  },
                                  'Flur_unten': {
                                      stateIdHeizungAktor: "hm-rpc.0.PEQ0508369.5.STATE",
                                      stateIdHeizungAktorOnTime: "hm-hm-rpc.0.PEQ0508369.5.ON_TIME",
                                      stateIdSollTemperatur: "hm-rpc.0.PEQ0508369.5.SOLLTEMP",
                                      stateIdIstTemperatur: "mihome.0.devices.weather_v1_158d00023a7f01.temperature"
                                  },
                                  'Kueche': {
                                      stateIdHeizungAktor: "hm-rpc.0.PEQ0508369.6.STATE",
                                      stateIdHeizungAktorOnTime: "hm-rpc.0.PEQ0508369.6.ON_TIME",
                                      stateIdSollTemperatur: "hm-rpc.0.PEQ0508369.6.SOLLTEMP",
                                      stateIdIstTemperatur: "mihome.0.devices.weather_v1_158d0002478275.temperature"
                                  },
                                  'Wohnzimmer': {
                                      stateIdHeizungAktor: "hm-rpc.0.PEQ0508369.3.STATE", 
                                      stateIdHeizungAktorOnTime: "hm-rpc.0.PEQ0508369.3.ON_TIME",
                                      stateIdHeizungUnterstuetzungAktor: "hm-rpc.0.PEQ0508369.4.STATE",
                                      stateIdHeizungUnterstuetzungAktorOnTime: "hm-rpc.0.PEQ0508369.4.ON_TIME",
                                      stateIdSollTemperatur: "hm-rpc.0.PEQ0508369.3.SOLLTEMP",
                                      stateIdIstTemperatur: "mihome.0.devices.weather_v1_158d0002325c93.temperature"
                                  }
                              
                              

                              Im Raum "Flur_unten" sind zwei und im Raum "Wohnzimmer" sind drei Heizkreise vorhanden.

                              Wie füge ich ich diese zu den Räumen hinzu?

                              Würde es wie folgt funktionieren?

                                 'Wohnzimmer': {
                                      stateIdHeizungAktor: "1", 
                                      stateIdHeizungAktorOnTime: "1",
                                      stateIdHeizungAktor: "2", 
                                      stateIdHeizungAktorOnTime: "2",
                                      stateIdHeizungAktor: "3", 
                                      stateIdHeizungAktorOnTime: "3",
                                      stateIdSollTemperatur: "hm-rpc.0.PEQ0508369.3.SOLLTEMP",
                                      stateIdIstTemperatur: "mihome.0.devices.weather_v1_158d0002325c93.temperature"
                              
                              
                              1 Reply Last reply
                              0
                              • apollon77A Offline
                                apollon77A Offline
                                apollon77
                                wrote on last edited by
                                #41

                                ne ein Key kann nur einmal vorkommen. Mehrere Schaltaktoren dann solltest Du ein Javascript-State anlegen wo du das "wegkapselst" bzw über Scenen Adapter

                                Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                1 Reply Last reply
                                0
                                • E Offline
                                  E Offline
                                  e-i-k-e
                                  wrote on last edited by
                                  #42

                                  Danke für den Ansatz!

                                  Ich werde es mal versuchen :)

                                  1 Reply Last reply
                                  0
                                  • E Offline
                                    E Offline
                                    e-i-k-e
                                    wrote on last edited by
                                    #43

                                    Guten Abend,

                                    der weg über den Scenen Adapter hat funktioniert.

                                    Das Skript lief bis gestern super.

                                    Ich musste ein Neustart meiner CCU (Raspberry) durchführen und habe seit dem folgendes im ioBroker log.

                                    8064_1.jpg
                                    8064_2.jpg

                                    1 Reply Last reply
                                    0
                                    • apollon77A Offline
                                      apollon77A Offline
                                      apollon77
                                      wrote on last edited by
                                      #44

                                      Restarte mal die hm-* Adapter

                                      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                      1 Reply Last reply
                                      0
                                      • E Offline
                                        E Offline
                                        e-i-k-e
                                        wrote on last edited by
                                        #45

                                        Das war es schon! :lol:

                                        Danke!!

                                        Folgende Wahrung erscheint weiterhin.

                                        Was bedeutet diese?

                                        javascript.0 2018-11-11 23:12:12.271 warn at Object. <anonymous>(script.js.Fußbodenheizung:368:9)

                                        javascript.0 2018-11-11 23:12:12.270 warn at ventilLogik (script.js.Fußbodenheizung:248:25)

                                        javascript.0 2018-11-11 23:12:12.270 warn at controlFBHAktor (script.js.Fußbodenheizung:387:9)

                                        javascript.0 2018-11-11 23:12:12.270 warn Wrong type of scene.Fußboden_Flur_OnTime: "number". Please fix, while deprecated and will not work in next versions.</anonymous>

                                        1 Reply Last reply
                                        0
                                        • apollon77A Offline
                                          apollon77A Offline
                                          apollon77
                                          wrote on last edited by
                                          #46

                                          Was hat der Scene Datenpunkt denn für einen Datentyp? Das Skript schreibt eine zahl rein. Das heisst der sollte "number" oder "Mixed" haben, sonst kommt diese Meldung

                                          Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                          • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                          • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                          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

                                          445

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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