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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Vorlage] Heizungsthermostatsteuerung 2.1 - Script

NEWS

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

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

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

[Vorlage] Heizungsthermostatsteuerung 2.1 - Script

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascripttemplateheatingclimate
1.1k Beiträge 115 Kommentatoren 397.0k Aufrufe 61 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.
  • L Offline
    L Offline
    looxer01
    schrieb am zuletzt editiert von
    #582

    @IDiver:

    Funkt leider nicht, `

    kannst du das nochmal versuchen ?

    sah jetzt bei mir ok aus.

    
    //-----------------------------------------------------------------------------------------------------
    // Funktion SensorChange  erkennt die Verschlussstellung eines Sensors und stellt die Temperatur entsprechend ein
    //-----------------------------------------------------------------------------------------------------
    function SensorChange(id) {
        var tabNo;
        tabNo = SensorFind(id);
    
        if (tabNo === 999) {
           log("Routine SensorChange: Sensor " + id + " nicht in Sensorliste gefunden","info");
           return; // Sensor nicht in Sensorlist gefunden
        }
    
        SensorList[tabNo][7] = SensorStatCalc(id, SensorList[tabNo][2]); // id des Sensors und device type - Der Status des Sensors wird ermittelt und in die sensorliste eingetragen
    
        // Status des Verschlusses in Tabelle updaten
        var room = SensorList[tabNo][0].toString();
    
        // Wenn keine Heizperiode
        if (getState(StateHeizperiode).val === false) {
            return; // keine Heizperiode
        }
        if (getState(path + "." + room + ".Source_Profil").val === 0 ) {
            return; // es ist noch kein Profil dem Raum zugeordnet
        }
        if (debug) {
            log("Routine SensorChange: Fenster " + id + " status geaendert fuer " +  SensorList[tabNo][1] + " " +  SensorList[tabNo][0] + " " + SensorList[tabNo][7], "info" );
            log("Routine SensorChange: Raum " + room, "info");
            log("Routine SensorChange: Sensor ist direktverknuepft ? " + SensorList[tabNo][9]);
            log("Routine SensorChange: Sensor status ist ? " +  SensorList[tabNo][7]);
        }
    
        if (SensorList[tabNo][9] ) {  // Sensor ist direktverknuepft und wurde geoeffnet
            if (debug) {
                log("Routine SensorChange: Sensor Direktverknuepft  Sensorstatus geaendert - ID " + id + " Raum " + room +" auf "+  SensorList[tabNo][7], "info" );
            }
            writelog(room, id, "Routine SensorChange: Sensor Direktverknuepft  Sensorstatus geaendert - ID " + id + " Raum " + room +" auf "+  SensorList[tabNo][7])  ;
            if (VerschlussRaumStatus(room) === true ) { // Mindestens ein Fenster ist geoeffnet
                setOwnState(path + "." + room + ".RaumStatusVerschluss", true);  // Raum ist geoeffnet         
                SaveStatus("Fenster", room,false); // Meldung Absenkung  ein Fenster ist geoeffnet
                return;   
            } else {
                setOwnState(path + "." + room + ".RaumStatusVerschluss", false);  // Raum ist geschlossen 
                SaveStatus("Heizplan", room,false); // Meldung loeschen
            }
                                                                                                                      // nichts machen, da die Absenkung automatisch passiert
    
        }
    
        LoopDevices(room, true);
    
    } // ende Funktion
    
    
    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      PicNic
      schrieb am zuletzt editiert von
      #583

      @looxer01:

      @IDiver:

      Funkt leider nicht, `

      kannst du das nochmal versuchen ?

      sah jetzt bei mir ok aus. `

      Hallo looxer01,

      ich klinke mich hier mal mit ein :-) … ich habe/hatte das gleiche Problem wie IDiver und habe deinen zweiten Fix mal eingebaut und soweit ich das beurteilen kann funktioniert es habe drei mal ein wenig mit dem Heizplan gespielt, die Zeiten für die Temperaturänderung geändert und zu den Schaltzeiten immer das Fenster geöffnet gehabt. Danach fünf Minuten gewartet und dann das Fenster geschlossen. Die Temperatur wurde danach immer auf die neue Temperatur des Schedules gestellt.

      Also erst mal top und vielen Dank!

      Falls im normalen Praxisbetrieb noch etwas auftaucht werde ich mich melden, aber IDiver wird das ja sicherlich auch noch bei sich einbauen und testen.

      Vielen Dank

      PicNic

      1 Antwort Letzte Antwort
      0
      • T Offline
        T Offline
        thobastian
        schrieb am zuletzt editiert von
        #584

        Hallo,

        erstmal vielen Dank für eure Hilfe hier. :-)

        Ich konnte das Problem beheben, in dem ich neu installiert hatte.

        Aber ich habe noch ein kleines Problem: Das Script stellt 1 Grad weniger ein, als in der Tabelle eingetragen. Muss ich noch etwas beachten, damit die Werte übereinstimmen?

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

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

        1 Antwort Letzte Antwort
        0
        • H Offline
          H Offline
          holgerwolf
          schrieb am zuletzt editiert von
          #585

          @thobastian:

          Aber ich habe noch ein kleines Problem: Das Script stellt 1 Grad weniger ein, als in der Tabelle eingetragen. Muss ich noch etwas beachten, damit die Werte übereinstimmen? `

          Wird vielleicht die Abwesenheitsabsenkung getriggert?

          Gruß

          Holger

          1 Antwort Letzte Antwort
          0
          • T Offline
            T Offline
            thobastian
            schrieb am zuletzt editiert von
            #586

            ? Wenn ich Anwesend aktiviere, wird die Temperatur um 1 erhöht.

            Ist diese Angabe Zwang ? Ich will im Moment keine Unterscheidung machen zwischen Anwesend und Nicht-Anwesend.

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

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

            1 Antwort Letzte Antwort
            0
            • H Offline
              H Offline
              holgerwolf
              schrieb am zuletzt editiert von
              #587

              Dann schreib da doch einfach eine "0" rein.

              Gruß

              Holger

              1 Antwort Letzte Antwort
              0
              • T Offline
                T Offline
                thobastian
                schrieb am zuletzt editiert von
                #588

                Hallo Holger,

                ich steh etwas auf dem Schlauch. Wo kann ich denn die 0 eintragen?

                Bei "Anwesend" kann ich doch nur ein Kreuz machen.

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

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

                1 Antwort Letzte Antwort
                0
                • H Offline
                  H Offline
                  holgerwolf
                  schrieb am zuletzt editiert von
                  #589

                  Bei der Abwesenheits Absenkung. Zwei Blöcke weiter rechts. Da steht per Default 1 drin.

                  Gruß

                  Holger

                  1 Antwort Letzte Antwort
                  0
                  • I Offline
                    I Offline
                    IDiver
                    schrieb am zuletzt editiert von
                    #590

                    @looxer01:

                    @IDiver:

                    Funkt leider nicht, `

                    kannst du das nochmal versuchen ?

                    sah jetzt bei mir ok aus. `

                    Hallo,

                    Hab's jetzt 1 1/2 Stunden im 10 Minuten Wechsel durchlaufen lassen jedes mal mit geöffneten Fenster und ca. 2 min nach dem

                    Zeitabschnitt Fenster geschlossen, Raumthermostat wurde sofort umgestellt und nach ~5 min die HK-Thermostate.

                    Also ohne Fehler funktioniert. :D

                    Danke!!

                    Lg Helmut

                    1 Antwort Letzte Antwort
                    0
                    • T Offline
                      T Offline
                      thobastian
                      schrieb am zuletzt editiert von
                      #591

                      @holgerwolf:

                      Bei der Abwesenheits Absenkung. Zwei Blöcke weiter rechts. Da steht per Default 1 drin.

                      Gruß

                      Holger `

                      Vielen Dank !!

                      Gruß

                      Thomas

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

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

                      1 Antwort Letzte Antwort
                      0
                      • L Offline
                        L Offline
                        looxer01
                        schrieb am zuletzt editiert von
                        #592

                        @IDiver:

                        Hab's jetzt 1 1/2 Stunden im 10 Minuten Wechsel durchlaufen lassen jedes mal mit geöffneten Fenster und ca. 2 min nach dem

                        Zeitabschnitt Fenster geschlossen, Raumthermostat wurde sofort umgestellt und nach ~5 min die HK-Thermostate.

                        Also ohne Fehler funktioniert `
                        Danke euch fürs Testen. Dann werde ich zum WE eine neue Version machen.

                        vG Looxer

                        1 Antwort Letzte Antwort
                        0
                        • I Offline
                          I Offline
                          IDiver
                          schrieb am zuletzt editiert von
                          #593

                          Danke euch fürs Testen. Dann werde ich zum WE eine neue Version machen.

                          vG Looxer

                          Wir haben zu Danken!!

                          Lg

                          1 Antwort Letzte Antwort
                          0
                          • ChaotC Offline
                            ChaotC Offline
                            Chaot
                            schrieb am zuletzt editiert von
                            #594

                            Ich habe meine alte Heizungssteuerung jetzt komplett von der Fritzbox auf den ioBroker gelegt.

                            Zum Script ein paar Sachen bei denen ich vermute das es an den DECT Thermostaten liegt:

                            Steuerung per Event funktioniert nicht. Ich arbeite mit dem Cron Job.

                            Boost können die Dinger nicht direkt per Befehl

                            Gerade das Boost wollte ich wieder haben. Dazu habe ich im letzten Jahr einen Dash Button installiert der den Thermostat für 60 Minuten auf 28 °C gestellt hat.

                            Jetzt mit dem neuen Script dachte ich das ich das problemlos so weiterverwenden kann - denkste!

                            Das Heizungsscript überschreibt logischerweise meine Einstellung.

                            Mit etwas experimentieren habe ich dachte ich eine Lösung gefunden. Aber es scheint nicht so richtig zu funktionieren:

                            Ich setze den Datenpunkt View_manually_adjusted auf eine Temperatur und denke das der dann die Steuerung übersteuert.

                            Das Script dazu:

                            ! const idTaster = "amazon-dash.0.00-fc-8b-f6-4b-a9.pressed"/*pressed*/; const idTarget = "javascript.0.Heizung.Heizplan.Toilette.View_Manually_Adjusted"/*View_Manually_Adjusted*/; const idVis = "javascript.0.Heizung.LaufzeitBad"; // Anzeige Restdauer in Minuten const High = "32"; ! var cnt = getState(idVis).val; var timer = null; ! function countDown() { cnt--; setState(idVis, cnt, true); if(cnt <= 0) { clearInterval(timer); setState(idTarget, 0); } } ! on({id: idTaster, val: true}, function () { setState(idTarget, High); cnt = 60; setState(idVis, cnt, true); if(timer) clearInterval(timer); timer = setInterval(countDown, 60000); // jede Minute }); !
                            Allerdings ist es jetzt scheinbar so das die manuelle Temperatur zwar kurz ins Thermostat geschrieben wird, aber nach wenigen Augenblicken wieder die "normale" Temperatur dort steht.

                            Dazu ist mir auch noch aufgefallen das ich andere Werte eintragen muss.

                            Bei 27 °C muss ich 30 eintragen und bei 28°C dann 32.

                            Wo habe ich meinen Denkfehler oder welchen Datenpunkt muss ich ansteuern um die Funktion zu erreichen.

                            Ich gebe zu das das vielleicht der absolute Weicheimodus ist, aber da ich oft zu unterschiedlichen Zeiten zum Duschen komme hat es sich doch als recht sparsam erwiesen erst zu dem Zeitpunkt die Heizung wirklich anzusteuern.

                            ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                            1 Antwort Letzte Antwort
                            0
                            • L Offline
                              L Offline
                              looxer01
                              schrieb am zuletzt editiert von
                              #595

                              Hi,

                              wenn du die Temp direkt am thermostat aenderst (per programm), dann sollte dies als manuelle Änderung erkannt werden. im View stellst du die Gültigkeit auf 60.

                              hast du das schon probiert?

                              Vg looxer

                              Gesendet von meinem SM-G965F mit Tapatalk

                              1 Antwort Letzte Antwort
                              0
                              • ChaotC Offline
                                ChaotC Offline
                                Chaot
                                schrieb am zuletzt editiert von
                                #596

                                Nein, das funktioniert bei den DECT Teilen nicht so.

                                Die haben eine Basisprogrammierung die alle 15 Minuten von der Fritzbox mit den in der Box vorliegenden Daten überschrieben wird. Es wird zwar die Temperatureinstellung ausgelesen, aber ignoriert.

                                Es gibt zwar einen manuellen Modus, aber der setzt gleichzeitig die Programmierfähigkeit außer Kraft.

                                Im Ursprünglichen Script habe ich ja den Thermostat über die Fritzbox direkt auf die Temperatur gesetzt. Das wird aber dann von Heizungsscript wieder überschreiben.

                                Das würde aber auch die Box wieder überschreiben weil sie nach 15 Minuten wieder auf die Ursprungsprogrammierung zurückfällt.

                                Ich müsste also wirklich im Heizungsscript die Temperatur ändern.

                                Was mich zur nächsten Frage bringt:

                                Wenn ich das im VIS manuell ändere funktioniert das auch nicht. Warum? Wenn ich dort 60 Minuten und die Temperatur eingebe sollte das doch für 60 Minuten auf der Temperatur landen.

                                Ja, mir ist klar das das ein echt blödes DECT System ist…..

                                ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                                1 Antwort Letzte Antwort
                                0
                                • sigi234S Offline
                                  sigi234S Offline
                                  sigi234
                                  Forum Testing Most Active
                                  schrieb am zuletzt editiert von
                                  #597

                                  Hallo,

                                  wenn das neue Skript kommt, muss ich die View dann NEU machen bzw. einstellen?

                                  Und was ist eigentlich das genau: Aktueller Solltemp Zeitabschnitt

                                  Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                  Immer Daten sichern!

                                  1 Antwort Letzte Antwort
                                  0
                                  • L Offline
                                    L Offline
                                    looxer01
                                    schrieb am zuletzt editiert von
                                    #598

                                    @sigi234:

                                    enn das neue Skript kommt, muss ich die View dann NEU machen bzw. einstellen? `

                                    Nein, du musst nur unterhalb der Einstellungen den Code austauschen.

                                    • keine Aenderung der Eisntellungen

                                    • keine VIS Aenderungen

                                    However. Fuer zukuenftige Erweiterungen kann es sein, dass Einstellungsoptionen geaendert werden oder auch zum VIS was hinzukommt.

                                    Das werde ich aber immer beschreiben und eine komplette Neuinstallation sollte nicht notwendig sein.

                                    vG Looxer

                                    1 Antwort Letzte Antwort
                                    0
                                    • sigi234S Offline
                                      sigi234S Offline
                                      sigi234
                                      Forum Testing Most Active
                                      schrieb am zuletzt editiert von
                                      #599

                                      DANKE :D

                                      Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                      Immer Daten sichern!

                                      1 Antwort Letzte Antwort
                                      0
                                      • L Offline
                                        L Offline
                                        looxer01
                                        schrieb am zuletzt editiert von
                                        #600

                                        @Chaot:

                                        Die haben eine Basisprogrammierung die alle 15 Minuten von der Fritzbox mit den in der Box vorliegenden Daten überschrieben wird. Es wird zwar die Temperatureinstellung ausgelesen, aber ignoriert.

                                        Es gibt zwar einen manuellen Modus, aber der setzt gleichzeitig die Programmierfähigkeit außer Kraft.

                                        Im Ursprünglichen Script habe ich ja den Thermostat über die Fritzbox direkt auf die Temperatur gesetzt. Das wird aber dann von Heizungsscript wieder überschreiben.

                                        Das würde aber auch die Box wieder überschreiben weil sie nach 15 Minuten wieder auf die Ursprungsprogrammierung zurückfällt.

                                        Ich müsste also wirklich im Heizungsscript die Temperatur ändern.

                                        Was mich zur nächsten Frage bringt:

                                        Wenn ich das im VIS manuell ändere funktioniert das auch nicht. Warum? Wenn ich dort 60 Minuten und die Temperatur eingebe sollte das doch für 60 Minuten auf der Temperatur landen. `

                                        Hi,

                                        also fuer diesen Fall funktionieren ueberhaupt keine manuellen Einstellungen, weil ja das Thermostat immer mit seiner Einstellung daherkommt. Das Script kann nicht wissen, ob das so gewollt ist oder nicht.

                                        Daher muessen die manuellen Aenderungen des Thermostates grundsätzlich übersteuert werden. das kannst du machen indem du die Gueltigkeit der manuellen Einstellung auf 0 stellst.

                                        Damit ist deinem Boost-Wunsch aber natürlich nicht geholfen.

                                        Ich könnte mir vorstellen einen manuellen Boost vorzusehen, der alles andere übersteuert und mit einer eigenen Gültigkeit versehen ist.

                                        Die 5 Minuten bei Homematic, die von den Thermostaten einstellbar sind, sind m.E. auch relativ knapp bemessen.

                                        Es könnten sich also noch mehr Fälle ergeben, die Sinn machen.

                                        Muss ich mir ansehen. Dauert aber etwas.

                                        vG Looxer

                                        1 Antwort Letzte Antwort
                                        0
                                        • L Offline
                                          L Offline
                                          looxer01
                                          schrieb am zuletzt editiert von
                                          #601

                                          @sigi234:

                                          Und was ist eigentlich das genau: Aktueller Solltemp Zeitabschnitt `
                                          sorry, gerade gesehen, dass noch eine Frage offen ist.

                                          Der Solltemp Zeitabschnitt ist die Zeitspanne für die jeweils eine Soll-Temperatur geplant worden ist.

                                          Entsprechend ist der aktuelle Soll-Temperatur Zeitabschnitt die Zeitspanne mit der im Moment gültigen Soll-Temperatur.

                                          vG Looxer

                                          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

                                          277

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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