Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Vorlage] Heizungsthermostatsteuerung 2.1 - Script

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorlage] Heizungsthermostatsteuerung 2.1 - Script

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

      @quorle:

      So sieht mein Regelscript momentan aus, anders bekomme ich es leider nicht hin. Ich stell mich da wohl zu sehr an. Bei dem Regelscript hat mir paul53 schon sehr geholfen.Es wartet und wenn eine "0" gemeldet wird, sagt er das auch in der LOG, jedoch schickt das Script dann erst nach der eingestellten Zeit ( 10 Minuten ) den neuen Wert an dein Heizscript. `

      Hi,

      mein Verständnis über das was du erreichen willst

      • Ausgangspunkt ist der Wochenheizpolan

      • Du machst Anpassungen an der aktuellen Temperatur

      • und willst diese als aktuelle SollTemp verwenden

      • gleichzeitig willst du die Funktionatäten des scriptes nutzen (Anwesenheiten, Urlaub, ICAL)

      Es gibt zwei Möglichkeiten das zu erreichen

      1. Ich mache ein paar Anpassungen damit die manuell gesetzte Temp erhalten bleibt und Anwesenheit etc noch funktiuoniert

      Nachteil: manuelle Temperaturen (am Thermostat eingestellt) werden nicht funktionieren. Das zusätzlich zu machen ein hoher Aufwand

      2. Du nutzt den aktuellen ZeitSlot (und sicherst die geplante Temp weg und ersetzt diese mit deiner neuen.) Nach Ablauf der Temp speicherst du die gesicherte Temp im abgelaufenen Slot und so weiter.

      Nachteil: erfordert mehr Programmierung auf deiner Seite

      was meinst du ?

      vG Looxer

      1 Reply Last reply Reply Quote 0
      • Q
        quorle last edited by

        @paul53:

        @quorle:

        Meinst du diesen Absatz hier im Heizungsscript? `
        Nein, anscheinend haben sich durch die Anpassung an die eigenen Gegebenheiten die Zeilennummern zu sehr verändert. Suche einfach nach

        setState(stateId
        

        und füge vor der Zeile

            setState(stateId, val);
        ````den Austausch der ID ein
        
        if(stateId == 'hm-rpc.1.OEQ1712335.4.MANU_MODE') stateId = 'javascript.0.Heizung.Heizplan.Schlafzimmer.Source_Last_Temp';
        
        Im Skript für den Hauptregler der Kaskade sende dann direkt an den HKT, indem Du die richtige ID vorgibst.
        

        const yid = 'hm-rpc.1.OEQ1712335.4.MANU_MODE'; // neue Temperaturvorgabe ( Ausgang PI-Regler ) an HKT

        ```` `

        @paul53:

        Ich hab das von dir einmal versucht, jedoch wenn man den Regler aus dem Heizscript nimmt ( aus dem Gewerk Heizung ), dann läuft das Heizscript nicht mehr. Und die Temperatur wird auf "4.SET_TEMPERATURE" gesetzt.

        Frage mich aber gerade, wie ich an beide Regler senden kann? Da steh ich nach vielen Versuchen am Schlauch :roll:

        @looxer01:

        @looxer01:

        @quorle:

        So sieht mein Regelscript momentan aus, anders bekomme ich es leider nicht hin. Ich stell mich da wohl zu sehr an. Bei dem Regelscript hat mir paul53 schon sehr geholfen.Es wartet und wenn eine "0" gemeldet wird, sagt er das auch in der LOG, jedoch schickt das Script dann erst nach der eingestellten Zeit ( 10 Minuten ) den neuen Wert an dein Heizscript. `

        Hi,

        mein Verständnis über das was du erreichen willst

        • Ausgangspunkt ist der Wochenheizpolan

        • Du machst Anpassungen an der aktuellen Temperatur

        • und willst diese als aktuelle SollTemp verwenden

        • gleichzeitig willst du die Funktionatäten des scriptes nutzen (Anwesenheiten, Urlaub, ICAL)

        Es gibt zwei Möglichkeiten das zu erreichen

        1. Ich mache ein paar Anpassungen damit die manuell gesetzte Temp erhalten bleibt und Anwesenheit etc noch funktiuoniert

        Nachteil: manuelle Temperaturen (am Thermostat eingestellt) werden nicht funktionieren. Das zusätzlich zu machen ein hoher Aufwand

        2. Du nutzt den aktuellen ZeitSlot (und sicherst die geplante Temp weg und ersetzt diese mit deiner neuen.) Nach Ablauf der Temp speicherst du die gesicherte Temp im abgelaufenen Slot und so weiter.

        Nachteil: erfordert mehr Programmierung auf deiner Seite

        was meinst du ?

        vG Looxer `

        Du hast soweit alles korrekt verstanden, jedoch setzte ich die Temperatur nicht nur einmal, sonder alle 5 Minuten.

        Da ich Programmiertechnisch nicht fit bin, tue ich mich noch relativ schwer :shock:

        Ich denke, dass man auf die am Regler gesetzte manuelle Temp verzichten kann, da ich am Regler selbst händisch nichts ändere, sondern alles über io.Broker laufen lasse.

        Aktuell habe ich die Scriptänderung von @paul53 eingebaut und setzte durch mein anderes Script die Temperatur direkt auf den Regler. Dadurch erfährt dein Script das. Einziges Manko bis jetzt ist, dass bei einem Tempwechsel durch das Wochenprogramm 5 Minuten Leerlaufzeit statt findet, bis mein anderes Script die Temp wieder zum Regler schickt. Da ich nun einen zweiten Regler mit eingebunden habe, wird die neue Temp auch an diesen gesendet. Ich werde dies heute mal so laufen lassen. Da ich Beruflich gerade eingespannt bin, melde ich mich zeitnah wieder.

        1 Reply Last reply Reply Quote 0
        • Q
          quorle last edited by

          Also, ich schreibe mal ein kleines Update, denn ich habe Gestern mal wieder etwas Zeit zum "basteln" gehabt.

          Ich habe das Update von @looxer01 gerade eingespielt und lasse nun testweise alles laufen.

          Den Vorschlag von Paul53 habe ich ins Heizscript aufgenommen und somit alle SET_TEMPERATURE aller Regler ausgegrenzt.

          ! ````
          //-----------------------------------------------------------------------------------------------------
          // Wird verwendet um State-Werte zu setzen, merkt sich wenn ein eigener State geändert wurde,
          // um das später ignorieren zu können
          //-----------------------------------------------------------------------------------------------------
          function setOwnState(stateId, val) {
          if (stateId.indexOf(path) !== -1 && cron === 0) {
          if (! ownStateChanges[stateId]) ownStateChanges[stateId] = 1;
          else ownStateChanges[stateId]++;
          }
          if(stateId == 'hm-rpc.0.OEQ1712335.4.SET_TEMPERATURE') stateId = 'javascript.0.Heizung.Heizplan.Schlafzimmer_test_paul53.Source_Last_Temp';
          if(stateId == 'hm-rpc.0.OEQ1704782.4.SET_TEMPERATURE') stateId = 'javascript.0.Heizung.Heizplan.Schlafzimmer_test_paul53.Source_Last_Temp';
          setState(stateId, val);

          
          Ich lasse meinen Regler jetzt den neuen Temp-Wert auf eine Systemvariable in die CCU2 übertragen und ein Script in der CCU2 übernimmt das setzten der Temperaturen zu den Heizthermostaten. ( Damit wären auch die Übertragungsfehler seitens der CCU2 behoben, die ich ab und an hatte )
          
          Mir ist nur folgende Bedeutung noch nicht so richtig klar, was da eigentlich gemacht wird mit der Zeile:
          
          >! ````
          if(stateId == 'hm-rpc.0.OEQ1712335.4.SET_TEMPERATURE') stateId = 'javascript.0.Heizung.Heizplan.Schlafzimmer_test_paul53.Source_Last_Temp';
          

          Ein weiteres Script überprüft nun alle 30 Minuten, vergleicht die Aussentemperatur mit einem fest gewählten Schwellpunkt und setzt dann den Datenpunkt "javascript.0.Heizung.Heizplan.GlobaleParameter.Heizperiode" entweder auf "true" oder auf "false". Wenn die Heizperiode wieder eingeschalten wird, wird zudem mit einer Verzögerung von 1000 ms der Datenpunkt "View_Manually_Adjusted" auf Null gesetzt. Somit beginnt das Heizscript einmal alles einzulesen ( was ich von der LOG so verstanden habe ). Diesen Datenpunkt "View_Manually_Adjusted" setzte ich deswegen auf Null, da es gestern beim Wechsel der Heizperiode von FALSE auf TRUE Probleme gab und das Heizscript nichts mehr gemacht hat. ( eventuell gelöst durch die neue Version )

          Script Heizperiode Sommer/Winter: ( hab ich leider nur mittels Blockly so hinbekommen )

          ! schedule("*/30 * * * *", function () { if (getState("hm-rpc.1.CUX1300001.1.TEMPERATURE").val < getState("javascript.0.Heizung.Heizplan.GlobaleParameter.Vorgabe_Heizplanabschaltung_über_Aussentemperatur").val) { // Heizperiode Aktivieren setState("javascript.0.Heizung.Heizplan.GlobaleParameter.Heizperiode"/*Wenn Heizperiode dann Aktivierung der Heizplaene*/, true); // Heizplan Schlafzimmer "Manuelle" Temperatur auf "0" setzten, um Heizscript neu zu starten if (getState("javascript.0.Heizung.Heizplan.GlobaleParameter.Heizperiode").val == false) { setStateDelayed("javascript.0.Heizung.Heizplan.Schlafzimmer.View_Manual_Temp_Duration"/*Gueltigkeit in Minuten fuer manuelle Temperatur Aenderung*/, 0, true, 1000, false); console.log('Heizplan: "Manuelle" Temperatur auf "0" gesetzt'); } console.log('Heizperiode AN'); } else if (getState("javascript.0.Heizung.Heizplan.Schlafzimmer.View_Manually_Adjusted").val >= getState("javascript.0.Heizung.Heizplan.GlobaleParameter.Vorgabe_Heizplanabschaltung_über_Aussentemperatur").val) { // Heizperiode Deaktivieren setState("javascript.0.Heizung.Heizplan.GlobaleParameter.Heizperiode"/*Wenn Heizperiode dann Aktivierung der Heizplaene*/, false); console.log('Heizperiode AUS'); } }); !

          1 Reply Last reply Reply Quote 0
          • Q
            quorle last edited by

            Update:

            Es gab noch ein kleines Problem mit meiner Abschaltung über die Aussentemp, dies hab ich gefixt und es klappt nun.

            Des weiteren, gibt es noch ein kleines Problem, dass das Heizscript ja die manuelle Temp aus dem Regler wieder liest und dann den Zeitstempel auf den aktuellen Zeitabschnitt legt.

            5278_view.png

            1 Reply Last reply Reply Quote 0
            • L
              looxer01 last edited by

              @quorle:

              Update:

              Es gab noch ein kleines Problem mit meiner Abschaltung über die Aussentemp, dies hab ich gefixt und es klappt nun.

              Des weiteren, gibt es noch ein kleines Problem, dass das Heizscript ja die manuelle Temp aus dem Regler wieder liest und dann den Zeitstempel auf den aktuellen Zeitabschnitt legt.

              filename="View.png" index="0">~~ `

              Hi.

              Dazu hatte ich ja vorher schon geschrieben. Schau dir das bitte nochmal an.

              Vg looxer

              Gesendet von meinem SM-G965F mit Tapatalk

              1 Reply Last reply Reply Quote 0
              • Dutchman
                Dutchman Developer Most Active Administrators last edited by

                Hi @looxer01,

                gibt es da auch eine Möglichkeit die heizperiode pro thermostat an bzw aus zu stellen ?

                Im moment haben wir ja den globalen wert der sich dan auf alle auswirkt, in meiner situation möchte ich aber gerne bestimmte räume welche nicht benutzt werden für ein par tagen nicht beheizen.

                Gr,

                Dutch

                1 Reply Last reply Reply Quote 0
                • L
                  looxer01 last edited by

                  Hi Dutch,

                  @Dutchman:

                  gibt es da auch eine Möglichkeit die heizperiode pro thermostat an bzw aus zu stellen ? `
                  dazu faellt mir nur ein Workaround im Moment ein.

                  Ueber ICAL und setzen eines Party Events mit z.B. 3 Grad Absenkungstemperatur der jeweiligen Räume könnte das gemacht werden.

                  Alle andere Räume muessten dann eine Absenkung von null haben. Ist aber nur ein Workaround.

                  Das Einbauen dieser Funktion wäre natürlich möglich. Müsste ich mir mal genauer ansehen.

                  Willst du erstmal den Workaround testen ?

                  vG Looxer

                  1 Reply Last reply Reply Quote 0
                  • B
                    Brati last edited by

                    Wäre nicht auch ein 2. Wochenprofil eine Lösung?

                    Grüße Brati

                    Von unterwegs gesendet…

                    1 Reply Last reply Reply Quote 0
                    • L
                      looxer01 last edited by

                      @Brati:

                      Wäre nicht auch ein 2. Wochenprofil eine Lösung? `
                      Hi Brati,

                      na klar. Vielleicht besser aber auch etwas aufwändiger.

                      Das Profil kann manuell oder per ICAL aktiviert werden.

                      Durch entsprechende Einstellung brauch auch nur eine einzige Temp geändert werden.

                      vG Looxer

                      1 Reply Last reply Reply Quote 0
                      • L
                        looxer01 last edited by

                        Noch ein Punkt zur Funktionalität der Heizperiode.

                        Wenn die Heizperiode ausgeschaltet wird, dann wird die Temp auf die vordefinierte Temp gesetzt um die Ventile zu öffnen und zu schliessen.

                        Unschön ist es, wenn die Ventile geöffnet werden sollen und Fensterverschluesse dann immer wieder zur Absenkung führen.

                        Daher habe ich meine SommerTemp auf 12 Grad gesetzt. (Temp bei geöffneten Fenstersensoren) Die Thermostate sind dann gesamten Sommer über ruhig und nicht unnotig Batterieenergie.

                        Im Profil kann aber natürlich ebenfalls z.B. 12 Grad hinterlegt werden.

                        vG Looxer

                        1 Reply Last reply Reply Quote 0
                        • Dutchman
                          Dutchman Developer Most Active Administrators last edited by

                          Hmm wochenprofiel währe wohl die beste lösung das stimmt damit gehts

                          –-----------------------

                          Send from mobile device

                          Das schöne ios hat Auto Korrektur zum k****

                          Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

                          1 Reply Last reply Reply Quote 0
                          • Q
                            quorle last edited by

                            @looxer01:

                            @quorle:

                            Update:

                            Es gab noch ein kleines Problem mit meiner Abschaltung über die Aussentemp, dies hab ich gefixt und es klappt nun.

                            Des weiteren, gibt es noch ein kleines Problem, dass das Heizscript ja die manuelle Temp aus dem Regler wieder liest und dann den Zeitstempel auf den aktuellen Zeitabschnitt legt.

                            View.png `

                            Hi.

                            Dazu hatte ich ja vorher schon geschrieben. Schau dir das bitte nochmal an.

                            Vg looxer

                            Gesendet von meinem SM-G965F mit Tapatalk `

                            Hallo looxer01,

                            Aktuell mal muss ich glücklicherweise sagen, dass alles sauber seit 2 Tagen durchläuft. Die HKT werden sauber geregelt, die Ab - und Zuschaltung über Aussentemperatur funktioniert tadellos und auch die sonstigen Funktionen ( die für mich persönlich relevant sind ) funktionieren einwandfrei.

                            Ich wolle mich persönlich bei @looxer01 und @paul53 noch für die tatkräftige Unterstützung und für das behalten der Nerven bedanken :lol:

                            Natürlich werde ich das hier gelernte auch für andere bereit stellen und diese unterstützen.

                            Sollte jemand das Script für die Ab - und Zuschaltung mittels Aussentemp benötigen kann sich gerne melden.

                            1 Reply Last reply Reply Quote 0
                            • L
                              looxer01 last edited by

                              @quorle:

                              atürlich werde ich das hier gelernte auch für andere bereit stellen und diese unterstützen. `
                              Danke dir Quorle,

                              Freut mich, dass es jetzt bei dir laeuft.

                              jede Unterstützung hier ist hoch willkommen. 😄

                              vG Looxer

                              1 Reply Last reply Reply Quote 0
                              • Q
                                quorle last edited by

                                Wollte euch hier nun einmal die Regelung mittels des Heizscriptes, dem PI-Regler und dem Script für die Abschaltung über die Aussentemperatur zeigen. Nun heißt es nur doch "Optimierungen".

                                5278_unbenannt.png

                                1 Reply Last reply Reply Quote 0
                                • K
                                  kaschperle83 last edited by

                                  Ich habe ein Problem mit dem View.

                                  Ein einzelnes View (in meinem Fall das vom Wohnzimmer) geht. Aber jedes weiter liefert nur eine Anzeige wie auf dem Bild.

                                  Die Objekte für den Staus habe ich angepasst aber weder im Profil unten noch an verschiedenen anderen Stellen wird etwas angezeigt.Dort erscheinen immer nur Fehler. Ich habe jetzt schon seit Stunden probiert aber es will einfach nicht. Im Editor Fenster werden komischer weiße die Werte angezeigt.
                                  6144_problem.png

                                  1 Reply Last reply Reply Quote 0
                                  • L
                                    looxer01 last edited by

                                    @kaschperle83:

                                    Ein einzelnes View (in meinem Fall das vom Wohnzimmer) geht. Aber jedes weiter liefert nur eine Anzeige wie auf dem Bild. `
                                    Hi,

                                    es gibt einige Möglichkeiten warum das so aussehen kann

                                    1. Der Raum "Schlafzimmer" ist nicht in den Datenobjekten angelegt

                                    • überprüfe die Objektliste (ist der Raum dort angelegt ?)

                                    • Überprüfe die Räume in den Aufzählungen (es könnte Probleme mit Klein-und Großschreibung geben)

                                    2. Der VIS view wurde nicht korrekt mit dem Raum Schlafzimmer in allen Objekten versehen

                                    • evt gibt es Probleme mit Klein-und Großschreibung (muss mit den Aufzählungen abgeglichen werden)

                                    • evt gibt es Probleme mit dem Editor. Ich empfehle notepad++ (Vermeidung von Steuerzeichenproblemen)

                                    • Suchen und Ersetzen war fehlerhaft für den VIS view (kann immer mal passieren )

                                    • Sonderzeichen im Raumnamen können Probleme machen

                                    vG Looxer

                                    1 Reply Last reply Reply Quote 0
                                    • Q
                                      quorle last edited by

                                      Hey Leute, ich hab wieder ein Problem. Hab mein Script ungenannt in Heizung. Dann habe ich den Raum Wohnzimmer anstatt Schlafzimmer eingebunden und dies funktioniert auch alles inclusive VIS.

                                      Heute wollte ich den Raum Kind_1 einbinden. Den Thermostat sauber eingebunden in Gewerke und Räume. Im Script unter Roomlist den Raum Kind_1 eingebunden und Script Heizubg gestartet. Jedoch erstellt das Script den Ordner mit den States unter Objekte nicht. Hab schon alles versucht und das Script sagt immer ( wenn man es nur alleine mit Kind_1 startet ) das keine Thermostate gefunden werden.

                                      Langsam verzweifle ich wieder einmal.

                                      1 Reply Last reply Reply Quote 0
                                      • L
                                        looxer01 last edited by

                                        Hi Quorle,

                                        habe mal wieder kein System vor mir.

                                        Kannst du das mal statt mit Kind_1 mit Kind1 versuchen ?

                                        Stelle auch sicher, dass auf den objektzeilen (objektliste) der Thermostate Raum und Gewerk richtig zugeordnet sind.

                                        vG Looxer

                                        1 Reply Last reply Reply Quote 0
                                        • K
                                          kaschperle83 last edited by

                                          Ich muss mal ganz blöd Frage wie man das mit der Zuordnung der Gewerke macht?

                                          Ich habe einfach bei den Sammlungen ein Punkt Heizung angelegt und diesen inkls dem Raum zugeordnet.

                                          Ich nutze mehrere Max Thermostate, laut Anleitung müssen diese ja eigentlich gar keinem Raum zugeordnet werden

                                          Gesendet von meinem MHA-L29 mit Tapatalk

                                          1 Reply Last reply Reply Quote 0
                                          • Q
                                            quorle last edited by

                                            @looxer01:

                                            Momentan haben wir das gleiche Problem, da ich aktuell in der Arbeit bin. Aber heute Abend werde ich dies mal testen. Geräte liegen in den richtigen Räumen und sind ordnungsgemäß den Gewerken zugeordnet.

                                            Ich habe wirklich alles versucht und auch das Leerzeichen zwischen Kind und 1 durch einen Unterstrich ersetzt, aber das ohne Leerzeichen habe ich nicht versucht. Ich berichte dann.

                                            @kaschperle83:

                                            Ich persönlich habe das alles in der CCU2 erledigt und Dan die HM Adapter neu gestartet. Wie das aber mit MAX! Aussieht weis ich nicht, da ich HM Geräte habe.

                                            Gesendet von iPhone mit Tapatalk

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            900
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            climate heating javascript template
                                            115
                                            1127
                                            324026
                                            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