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
      lindi200000 @duffbeer2000 last edited by

      @duffbeer2000 said in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:

      @lindi200000 Im VIS steht bei Modus "AUTO" kann es ein das an der stelle was in der HM nicht passt? Von welchem Objekt kommt denn der Wert?

      Sry für die späte Antwort ....
      das ganze kam über die Gruppenfunktion. Ein Thermostat hat zu lange gebraucht den Wert anzunehmen (Kommunikationsfehler), drum hat die Gruppe nach einer gewissen Zeit die alte Temperatur wieder angenommen, was wiederum nicht der Automatik Temperatur entspricht.

      1 Reply Last reply Reply Quote 0
      • M
        Muchul last edited by Muchul

        Wird das hier nicht langsam zu lang?
        Ich habe demnächst, wenn die Heizperiode vorbei ist, vor das Script einzurichten.

        Aber wenn irgendwas nicht passt, hier alles durchlesen?

        Das hemmt ein wenig..

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

          Hat jemand auch diesen Fehler im log ?

          Schermafbeelding 2019-04-13 om 11.52.10.png

          C 1 Reply Last reply Reply Quote 0
          • P
            Phil636 last edited by

            Hallo zusammen, ich habe das Skript seit einiger Zeit am Laufen. Erstmal tausend Dank für die super Arbeit 👍
            Ich nutze das Skript mit den MAX Thermostaten, Xiaomi Kontakten und Alexa.
            Seit einiger Zeit habe ich das Problem, dass manuelle Werte nicht mehr gesetzt werden können. Es funktioniert weder im View, noch per Alexa oder am Thermostat. Im Log bekomme ich die folgende Meldung:
            2019-04-13 14:56:58.721 - info: javascript.0 script.js.common.Heizungssteuerung.Heizungsskript_2_01: Routine ThermostatChange: ACHTUNG: ThermostatChange in Temperatur Source_ManTempSet hat keinen Wert - kann nicht synchen

            Ich habe gelesen, dass es solch ein Problem auch schon mal mit der älteren Skriptversion gab, daher habe ich nochmal die aktuelle Version ( 2.0b01) eingebunden.
            Kann mir jemand Sagen wie ich den Wert setzen kann oder wo mein Fehler liegen könnte?

            1 Reply Last reply Reply Quote 0
            • C
              Conquest @Dutchman last edited by

              @Dutchman sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:

              Hat jemand auch diesen Fehler im log ?

              Schermafbeelding 2019-04-13 om 11.52.10.png

              Ja hab den gleichen Fehler manchmal im Log.
              Leider scheint Looxer nicht mehr sehr aktiv zu sein seit der Foren Umstellung.
              Hatte ja auch ein paar Fragen gestellt aber noch keine Antwort erhalten.

              Gruß

              1 Reply Last reply Reply Quote 0
              • MeinzIsAs
                MeinzIsAs last edited by MeinzIsAs

                Hallo,

                erstmal VIELEN DANK für dieses Script. Ich habe es zum Testen mal mit Homematic IP Geräten verknüpft.
                Funktioniert alles soweit, bis auf die Absenkung beim Öffnen des Fensters.
                Dabei wird die Absenktemperatur nicht auf das Heizungsventil geschrieben. Am Raumthermostat wird abgesenkt.
                Normale Temperaturänderungen werden an beide Geräte geschrieben. Nur eben die Absenktemperatur nicht.

                Vielleicht hat jemand eine Idee, was nicht stimmen könnte. Die Geräte sind nicht direkt verknüpft und auch so in die Config des Scriptes eingetragen.
                Hier das Log vom Öffnen des Fensters.

                22.4.2019, 15:45:00.018	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine SensorFind ID = hm-rpc.0.001558A99C3F60.1.STATE Raum = Wohnzimmer
                22.4.2019, 15:45:00.019	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine SensorStatCalc: Sensorstatus ist geoeffnet fuer devtype = HmIP-SWDM und id hm-rpc.0.001558A99C3F60.1.STATE
                22.4.2019, 15:45:00.019	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine SensorChange: Fenster hm-rpc.0.001558A99C3F60.1.STATE status geaendert fuer Raum Wohnzimmer hm-rpc.0.001558A99C3F60.1.STATE Wohnzimmer true
                22.4.2019, 15:45:00.019	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine SensorChange: Sensor ist direktverknuepft ? false fuer Raum Wohnzimmer
                22.4.2019, 15:45:00.019	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine SensorChange: Sensor status ist ? true fuer Raum Wohnzimmer
                22.4.2019, 15:45:00.019	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: SensorChange Raum  ist offen
                22.4.2019, 15:45:00.020	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung:     Setze Wohnzimmer.Source_Global_Parameter zu Absenkung - Fenster geoeffnet
                22.4.2019, 15:45:00.020	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine SensorChange : Raum Wohnzimmer nicht direkt verknuepfter Sensor -  Fenster offen es Temp wird abgesenkt
                22.4.2019, 15:45:00.020	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine SetTemp: ID updated hm-rpc.0.000A98A9AB2A43.1.SET_POINT_TEMPERATURE Raum Wohnzimmer SollTemp = 5
                22.4.2019, 15:45:00.020	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: loop Devices gestarted fuer Raum Wohnzimmer
                22.4.2019, 15:45:00.020	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine  SelectSwitchTime - Aktuelle Solltemperatur ist 23 fuer Raum Wohnzimmer Raumprofil ist 1
                22.4.2019, 15:45:00.020	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine Overrule Profil ist 1 Absenkung ist 1 Raum ist Wohnzimmer
                22.4.2019, 15:45:00.020	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine  SelectSwitchTime - Aktueller Zeitslot ist Mo_16:00:00 fuer RaumWohnzimmer Raumprofil ist 1
                22.4.2019, 15:45:00.021	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine Overrule Profil ist 1 Absenkung ist 1 Raum ist Wohnzimmer
                22.4.2019, 15:45:00.021	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine  SelectSwitchTime - Nächster Zeitslot ist Mo_19:00:00 fuer RaumWohnzimmer Raumprofil ist 1
                22.4.2019, 15:45:00.021	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine Overrule Profil ist 1 Absenkung ist 1 Raum ist Wohnzimmer
                22.4.2019, 15:45:00.021	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine  SelectSwitchTime - Nächste Solltemperatur ist 18 fuer RaumWohnzimmer Raumprofil ist 1
                22.4.2019, 15:45:00.021	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine Overrule Profil ist 1 Absenkung ist 1 Raum ist Wohnzimmer
                22.4.2019, 15:45:00.021	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Raum geoeffnet Wohnzimmer
                22.4.2019, 15:45:00.030	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung:     Setze Wohnzimmer.Source_Global_Parameter zu Absenkung - Fenster geoeffnet
                22.4.2019, 15:45:00.031	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine ManAdjustments : Raum Wohnzimmer ist geoeffnet 
                22.4.2019, 15:45:00.031	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine SetTemp: ID updated hm-rpc.0.000A98A9AB2A43.1.SET_POINT_TEMPERATURE Raum Wohnzimmer SollTemp = 5
                22.4.2019, 15:45:00.031	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine SensorChange : Raum Wohnzimmer Fenster offen es Temp wird vom Thermostat abgesenkt
                22.4.2019, 15:45:00.031	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine Loop Devices: es soll keine Temp-Findung durchgeführt werden 
                22.4.2019, 15:45:00.031	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung:     Setze Wohnzimmer.Source_Global_Parameter zu Manuelle Temperaturanpassung
                22.4.2019, 15:45:00.031	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Ignoriere Trigger nach Änderung für State javascript.0.EG_Heizung.Heizplan.Wohnzimmer.RaumStatusFenster
                22.4.2019, 15:45:00.032	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Ignoriere Trigger nach Änderung für State javascript.0.EG_Heizung.Heizplan.Wohnzimmer.Source_Global_Parameter
                22.4.2019, 15:45:00.032	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine ThermostatChange: hm-rpc.0.000A98A9AB2A43.1.SET_POINT_TEMPERATURE Raum Wohnzimmer Solltemperatur-Aenderung erkannt auf 5
                22.4.2019, 15:45:00.032	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Routine ThermostatChange: ACHTUNG:  ThermostatChange in Temperatur Source_ManTempSet hat keinen Wert - kann nicht synchen
                22.4.2019, 15:45:00.042	[info ]: javascript.0 script.js.common.Heizung_WZ.EG_Heizung: Ignoriere Trigger nach Änderung für State javascript.0.EG_Heizung.Heizplan.Wohnzimmer.Source_Global_Parameter
                

                Vielen Dank für Eure Hilfe

                1 Reply Last reply Reply Quote 0
                • MeinzIsAs
                  MeinzIsAs last edited by

                  Hallo nochmal,

                  ich hab mich mal eine Weile mit dem Script beschäftigt. Ich denke die Werte werden immer nur an das erste Gerät geschrieben. Da die IDThermostat nur mit dem ersten gefundenen beschrieben wird. Meine Javakenntnisse reichen nicht aus, um das zu beheben. Vielleicht kann sich das ja mal wer ansehen.

                      // delay in Minuten ermitteln und Thermostat ID ermitteln
                      for (var x in ControlTab ) {
                          if (ControlTab[x][0] === room ) {
                              delay = ControlTab[x][12];
                              IDThermostat = ControlTab[x][1];
                              break;
                          }
                      }
                  
                  // Fenster wurde geoeffnet
                      if (FensterRaumStatus(room) === true ) { // Mindestens ein Fenster ist geoeffnet
                  log("SensorChange Raum  ist offen")
                          setOwnState(path + "." + room + ".RaumStatusFenster", true);  // Raum ist geoeffnet 
                          SaveStatus("Fenster", room,false); // "Fenster offen TemperaturAbsenkung gesetzt";
                          if (SensorList[tabNo][9] === false) {  // Sensor ist nicht direktverknuepft 
                              if (debug) { log("Routine SensorChange : Raum " + room + " nicht direkt verknuepfter Sensor -  Fenster offen es Temp wird abgesenkt", "info"); }
                              SetTemp(room, FensterAbsenkungsGrenze, IDThermostat, false);
                              writelog(room, id, "Routine SensorChange: Sensor Direktverknuepft  Sensorstatus geaendert - ID - Temp auf Absenkung" + id + " Raum " + room +" auf "+  SensorList[tabNo][7])  ;
                          } // endif Sensor ist nicht direktverknüpft
                          if (SensorList[tabNo][9] === true ) {  // Sensor ist  direktverknuepft 
                              if (debug) { log("Routine SensorChange : Raum " + room + " direkt verknuepfter Sensor -  Fenster offen es Temp wird vom Thermostat abgesenkt", "info"); }
                          }
                      }
                  

                  Vielen Dank

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

                    Hallo,
                    Ich habe heute einen "Aqara Door and Window" Sensor bekommen.
                    Diesen will ich nun am Fenster von Wohnzimmer anbringen.
                    IOBroker erkennt ihn auch.
                    0c4b5b4c-54af-4576-abd5-72fc36452757-image.png
                    Was muss ich aber im Script eintragen, damit das Heinzungsscript den Sensor auch kennt?
                    Aktuell sind da nur die Standard Daten drin.
                    a3dcd10d-71c2-4656-9a2f-dcbe374e3c47-image.png

                    Hoffe es kann mir wer helfen.

                    VG
                    Lindi

                    MeinzIsAs 1 Reply Last reply Reply Quote 0
                    • MeinzIsAs
                      MeinzIsAs @lindi200000 last edited by

                      @lindi200000

                      Versuch mal bei Tab 0 den Raum, den du im restlichen Script verwendest ("Wohnzimmer").
                      Bei Tab 1 den Pfad des Adapters --> mihome.0.devices
                      Bei Tab 2 das Gerät --> magnet_schwarzer balken ☺
                      Bei Tab 3 den Datenpunkt --> state
                      Bei Tab 4 des Wert, der bei geschlossen geliefert wird --> false
                      Bei Tab 5 true, wenn du willst, dass die Temperatur automatisch abgesenkt wird.

                      Ich hoffe, das funktioniert so.

                      L 1 Reply Last reply Reply Quote 0
                      • L
                        lindi200000 @MeinzIsAs last edited by

                        @MeinzIsAs Danke, das klappt auch fast ganz gut, aber ...
                        Ich habe im Wohnzimmer eine Heizungsgruppe. Mit der geht auch eigentlich alles, wenn ich aber das Fenster öffne, dann wird nur eine Heizung abgesenkt, die andere bleibt normal stehen. Schau ich aber in der HM Gruppe, steht da 5 Grad (also abgesenkt). Ich verstehe nicht, wieso die 2. Heizung nicht mit abgesenkt wird.

                        MeinzIsAs 1 Reply Last reply Reply Quote 0
                        • MeinzIsAs
                          MeinzIsAs @lindi200000 last edited by

                          @lindi200000

                          Sind beide Heizungen in der Gruppe zusammengehängt, oder ist eine davon nicht in der Gruppe?
                          Welche Geräte sind in der Gruppe?

                          L 1 Reply Last reply Reply Quote 0
                          • L
                            lindi200000 @MeinzIsAs last edited by

                            @MeinzIsAs es sind beide Geräte in der Gruppe. Das Heizungsprogram an sich geht ja auch mit der HM Gruppe.
                            In der Gruppe sind nur die 2 Thermostate.

                            MeinzIsAs 1 Reply Last reply Reply Quote 0
                            • MeinzIsAs
                              MeinzIsAs @lindi200000 last edited by

                              @lindi200000

                              Sprichst Du im Script auch wirklich die Gruppe an und nicht die einzelnen Geräte? Wenn Du die Geräte in der CCU gruppiert hast, solltest Du im Script die Gruppe ansprechen.

                              L 1 Reply Last reply Reply Quote 0
                              • L
                                lindi200000 @MeinzIsAs last edited by

                                @MeinzIsAs danke, das ist es. er nimmt die einzelnen Thermostate und nicht die Gruppe. muss ich jetzt mal schauen wie ich es mache, das er die Thermostate nicht einzeln nimmt, sondern die Gruppe. Das Gerät an sich kann ich nicht aus der Liste nehmen, da in anderen Räume die Geräte einzeln existieren.

                                MeinzIsAs 1 Reply Last reply Reply Quote 0
                                • MeinzIsAs
                                  MeinzIsAs @Conquest last edited by

                                  @Conquest

                                  Hallo, falls Du noch keine Antwort für dieses Problem hast, du musst wahrscheinlich die Werteliste der Auswahlfelder anpassen. Es muss für jeden Text auch einen passenden Wert geben. Vorsicht bei den Strichpunkten. Keine Leerzeichen dazwischen, sonst funktioniert es nicht.

                                  Werteliste.PNG

                                  C 1 Reply Last reply Reply Quote 0
                                  • MeinzIsAs
                                    MeinzIsAs @lindi200000 last edited by

                                    @lindi200000

                                    Hier mal die Config für das auslesen der Gruppe. Du musst Dir nur eine neue Instanz von hm.rpc anlegen.

                                    config_Gruppe.PNG

                                    Beim einzelnen schreiben in den anderen Räumen wirst Du dann das gleiche Problem haben, wie jetzt.
                                    Da ist noch ein Fehler im Script. Die Absenktemperatur wird nur zum ersten gefundenen Gerät geschrieben.
                                    Ich hab das weiter oben schon mal gepostet. Leider sieht es so aus, als wäre der Entwickler nicht mehr aktiv.
                                    Ich bin gerade dabei, mir ein Script zu bauen, dass für mich ausreichend ist. Ich brauche nicht so viele Funktionen.
                                    Urlaub, Fenster und Zeiten sind mir erstmal genug. Da ich aber erst angefangen habe mit Java, dauert das wohl ne weile.
                                    Wenigstens der Urlaubsmodus funktioniert schon. ☺

                                    L 1 Reply Last reply Reply Quote 0
                                    • L
                                      lindi200000 @MeinzIsAs last edited by

                                      @MeinzIsAs die Gruppe habe ich schon in IOBroker drin, drum ging ich auch davon aus, das script nimmt die Gruppe, stattdessen wurden aber die einzelnen Thermostate genommen. Durch HM sind die auch im Raum Wohnzimmer.

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

                                        Jetzt weis ich auch wieder was damals war.
                                        Die Gruppe wird vom Script nicht erkannt.
                                        Ich habe eine CCu auf einen Raspbery, laut CCU wird die Gerätegruppe als Typ HmIP-HEATING erkannt.
                                        IOBroker erkennt die Gruppe auch:
                                        3c12282f-3e0a-4940-8741-e408f37c1c9f-image.png
                                        Im Script habe ich unter ThermostattypTab folgendes stehen:

                                        ThermostatTypeTab[0]  = ['hm-rpc.2.',  'HmIP-HEATING'      , 'Heizungsgruppe'             ,'VD',   '1.SET_TEMPERATURE'      ,   'frei',        '1.MANU_MODE',              true,                  '1.ACTUAL_TEMPERATURE',      '1.CONTROL_MODE',           5,                                            0];
                                        

                                        Die Gruppe wird aber nicht erkannt. Ich gehe davon aus, das der Typ nicht passt. Weis aber nicht was ich da noch eintragen soll.

                                        MeinzIsAs 2 Replies Last reply Reply Quote 0
                                        • N
                                          nicobob last edited by nicobob

                                          Hallo zusammen,

                                          hat jmd von euch erfolgreich Sensoren von wired HM-Geräten hinzugefügt? Ich habe damit Probleme und weiß aktuell nicht woran es liegt. Alle anderen Sensoren arbeiten einwandfrei und stoßen bei Änderung ggfs. eine Anpassung der Temperatur an.
                                          Es geht um folgenden Eintrag, der eigentlich greifen müsste:
                                          8ac2f401-e134-47a6-82bf-855e6c4411a7-grafik.png

                                          Statt dem Gewerk Verschluss habe ich alle Sensoren dem Gewerk "Fenster" zugeordnet, was ich im Skript in den Einstellungen angepasst habe.
                                          Die Sensoren werden seitens ioBroker oder des adapters hm-rpc richtig erkannt. Die Weiterverarbeitung im Skript erfolgt allerdings nicht. Bei Öffnung des Fensters finde ich keinen Log-Eintrag, dass sich der Raumverschlussstatus geändert hat.
                                          3befeff9-8cdd-48b3-8cdd-8044078f8f2f-grafik.png

                                          Hat jmd eine idee, was ich noch anpassen kann/muss, um die Steuerung glattzuziehen?

                                          Danke vorab für jede Hilfe und beste Grüße
                                          Nico

                                          MeinzIsAs 1 Reply Last reply Reply Quote 0
                                          • MeinzIsAs
                                            MeinzIsAs @lindi200000 last edited by

                                            @lindi200000

                                            Welche Thermostattypen hast Du verbaut in der Gruppe?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            941
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

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