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.
    • D
      dav71701 last edited by

      @dav71701:

      Hallo Max,

      hast Du eine Lösung für das Delay Problem gefunden? Bei mir ist es genauso, habe auch die HM-CC-RT-DN in Verbindung mit den Xiaomi Aqara Sensoren im Einsatz, was auch bis auf das "Delay nach Verschluss" alles super funktioniert (auch von mir ein großes Dankeschön in die Entwickler!).

      Wäre so wie Du auch sehr an eine Lösung interessiert. `

      Hi,

      habe heute das aktuelle Skript "heizungsscript_201_Published" übernommen und folgenden Kommentar gelesen:

      ` > // Naechste Version moegliche Erweiterungen/Aenderungen

      //…..........................Delay fuer Nicht-HM-Geräaete (kann auf Nachfrage implementiert werden. `

      Das wäre sehr toll.

      1 Reply Last reply Reply Quote 0
      • T
        torti0111 last edited by

        Cool wäre, wenn in deinen FAQ's stehen würde, wie man die Manuelle Verstellung mittels Alexa hinbekommt.

        Wenn ich den Temperaturwert der manuellen Verstellung mit Alexa verändere wird er direkt wieder überschrieben.

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

          @dav71701:

          abe heute das aktuelle Skript "heizungsscript_201_Published" übernommen und folgenden Kommentar gelesen:

          // Naechste Version moegliche Erweiterungen/Aenderungen

          //…..........................Delay fuer Nicht-HM-Geräaete (kann auf Nachfrage implementiert werden.

          Das wäre sehr toll. `

          ok, nehme ich mit auf.

          vG looxer

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

            @torti0111:

            Cool wäre, wenn in deinen FAQ's stehen würde, wie man die Manuelle Verstellung mittels Alexa hinbekommt.

            Wenn ich den Temperaturwert der manuellen Verstellung mit Alexa verändere wird er direkt wieder überschrieben. `

            Eine Alexa-Verstellung sollte doch keinen Unterschied zu einer beliebigen anderen manuellen Verstellung machen.

            Hast du einen Wert im View für die manuelle Dauer eingegeben ?

            vG Looxer

            1 Reply Last reply Reply Quote 0
            • D
              dav71701 last edited by

              @looxer01:

              @dav71701:

              abe heute das aktuelle Skript "heizungsscript_201_Published" übernommen und folgenden Kommentar gelesen:

              // Naechste Version moegliche Erweiterungen/Aenderungen

              //…..........................Delay fuer Nicht-HM-Geräaete (kann auf Nachfrage implementiert werden.

              Das wäre sehr toll. `

              ok, nehme ich mit auf.

              vG looxer `

              super, vielen dank!

              1 Reply Last reply Reply Quote 0
              • T
                torti0111 last edited by

                @looxer01:

                @torti0111:

                Cool wäre, wenn in deinen FAQ's stehen würde, wie man die Manuelle Verstellung mittels Alexa hinbekommt.

                Wenn ich den Temperaturwert der manuellen Verstellung mit Alexa verändere wird er direkt wieder überschrieben. `

                Eine Alexa-Verstellung sollte doch keinen Unterschied zu einer beliebigen anderen manuellen Verstellung machen.

                Hast du einen Wert im View für die manuelle Dauer eingegeben ?

                vG Looxer `

                Ich habe meinen Fehler gerade entdeckt 😉

                Ich habe auf den Datenpunkt in der View geschrieben also den :

                javascript.0.Heizung.Heizplan.Bad.View_Manually_Adjusted ###Im View manuell eingestellte Temperatur - 0=reset###

                Wenn ich das auf den Wert vom Wandthermostat schreibe mittels alexa sollte es klappen xD

                Edit: einfach auf den Setpoint des Thermostats geschrieben und läuft ohne Probleme 😉

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

                  Moin!!

                  Erstmal großes Lob an die Macher des Scripts!

                  Ich hätte da noch eine Frage:

                  Wenn ich in VIS ein 2. Profil auswähle, dann Fehlen die Einstellmöglichkeiten der Uhrzeit und Temperatur im unteren Feld.

                  Anscheinend ist es nicht vorgesehen, dass es diese so ohne weiteres gibt. Sehe ich das richtig?

                  Ich habe mir nun so geholfen, dass ich Alle Knöpfe die mit dem Profil zu tun haben, Dupliziert habe und statt Profil_1 Profil_2 eingetragen habe. Diese übereinander gelegt und blende je nach Einstellung des Profils die einen oder die anderen Knöpfe und Auswahlmöglichkeiten aus.

                  Das funktioniert soweit ganz gut. Wäre dennoch schön wenn es von vorne rein mit in dem VIS Script versehen wäre oder ist das irgendwie anders gedacht?

                  Grüße

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

                    @looxer01:

                    @AxelF1977:

                    Gab es denn eine Lösung für mein geschildertes Problem? `
                    Hi Axel,

                    hast du dein Problem gelöst ?

                    Hab mir deine View angesehen - sieht super aus.

                    Dort ist mir aufgefallen, dass du einen NaN Wert hast.

                    Sieht so aus, dass da das mapping vom View zu den Datenpunkten nicht korrekt ist.

                    vG Looxer `

                    Hi Looxer,

                    ich hatte nicht gesehen, dass Du schon geantwortet hattest. Sorry daher für den Doppelpost. Die NaN Werte habe ich mal durch die Checkbox als String dargestellt, damit sind sie weg. Wegen dem Problem mit 4.5°C ging mir auch ein Licht auf. Das lag an mir… Den manualen Modus erzwingen, ohne eine Temperatur eingetragen zu haben, gibt natürlich einen Fehler zurück.

                    Aber im Moment nutzen die Heizungen die Werte der CCU. So richtig bin ich wohl noch nicht durchgestiegen. Eingestellt sind für den Zeitraum zwischen 18 und 21 Uhr 21°C, einstellen tut das Script 19°C. Anpassungen der FAQ habe ich schon vorgenommen.
                    4249_002.jpg
                    4249_001.jpg

                    1 Reply Last reply Reply Quote 0
                    • F
                      frostnatt last edited by

                      @looxer01:

                      @frostnatt:

                      Globale Events wie Gäste, Party, Urlaub_Anwesend/Abwesend etc. werden vom Script korrekt verarbeitet. Wird im Kalender "Global_Profil_2" angelegt, erfolgt keine Triggerung wenn das Ereignis eintritt. `
                      Hi kannst du mal bitte folgendes Coding austauschen

                         // Globales Profil ist prio2
                          if (UseEventsGlobalProfilSelect === true) {
                            for (i = 1; i <= MaxProfile; i++) {
                              ProfilName = UseEventG_Profil;
                              ProfilName = UseEventG_Profil.replace("<profilnummer>", i);
                              if (getState(ICALPath + "." + ProfilName).val) {
                                  setOwnState(pathprofile+".AktivesEventProfil", i);
                                  Source_Profil = i;
                                  Source_ICALEvent = ProfilName;
                                  return i;
                              }
                            } // ende for i
                          } // ende if globalProfilSelect</profilnummer> 
                      

                      und zwar mit:

                         // Globales Profil ist prio2
                          if (UseEventsGlobalProfilSelect === true) {
                            for (i = 1; i <= MaxProfile; i++) {
                              ProfilName = UseEventG_Profil;
                              ProfilName = UseEventG_Profil.replace("<profilnummer>", i);
                              if (getState(ICALPath + "." + ProfilName).val) {
                                  setState(pathprofile+".AktivesEventProfil", i);
                                  Source_Profil = i;
                                  Source_ICALEvent = ProfilName;
                                  return i;
                              }
                            } // ende for i
                          } // ende if globalProfilSelect</profilnummer> 
                      

                      das löst wahrscheinlich das Problem. Ist für mich aber eine Trockenübung, da ich kein System im Zugriff habe.

                      Sollte das die Lösung sein muss das gleiche für die Raumprofile gemacht werden.

                      Mache ich am WE.

                      vG Looxer `

                      Hi Looxer,

                      vielen Dank für deine Rückmeldung. Ich habe es gerade ausprobiert und kann leider keine Änderung zum bereits geschilderten Verhalten feststellen…

                      Grüße,

                      Max

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

                        @Kugelkopf:

                        Ich hätte da noch eine Frage:

                        Wenn ich in VIS ein 2. Profil auswähle, dann Fehlen die Einstellmöglichkeiten der Uhrzeit und Temperatur im unteren Feld.

                        Anscheinend ist es nicht vorgesehen, dass es diese so ohne weiteres gibt. Sehe ich das richtig? `
                        Hi,

                        die Datenpunkte aus Profil-1 müssen im View angeplasst werden.

                        Das kann mit Hilfe eines geeigneten Editors gemacht werden (ich empfehle immer notepad++) und durch suchen und Ersetzen

                        • Suche Profil-1

                        • Ersetze mit: Profil-2

                        Das heisst auch, dass du dazu eine zweite View brauchst.

                        Werde ich in die FAQs aufnehmen.

                        vG Looxer

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

                          @AxelF1977:

                          Die NaN Werte habe ich mal durch die Checkbox als String dargestellt, damit sind sie weg. Wegen dem Problem mit 4.5°C ging mir auch ein Licht auf. Das lag an mir… Den manualen Modus erzwingen, ohne eine Temperatur eingetragen zu haben, gibt natürlich einen Fehler zurück.

                          Aber im Moment nutzen die Heizungen die Werte der CCU. So richtig bin ich wohl noch nicht durchgestiegen. Eingestellt sind für den Zeitraum zwischen 18 und 21 Uhr 21°C, einstellen tut das Script 19°C. Anpassungen der FAQ habe ich schon vorgenommen. `

                          Hi,

                          siehe PN in deiner Inbox.

                          vG Looxer

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

                            @frostnatt:

                            vielen Dank für deine Rückmeldung. Ich habe es gerade ausprobiert und kann leider keine Änderung zum bereits geschilderten Verhalten feststellen… `
                            Hi,

                            neuer Vorschlag. Ich habe festgestellt, dass die Subscription gar nicht gemacht ist.

                            Evt. erübrigt sich damit der vorherige

                            kannst du bitte folgendes testen und diese Änderung einfügen

                            ändern von:

                                        if (UseEventsGlobalParameter === true) {
                                            subscribeIdList.push(ICALPath + "."+ EventG_Party);
                                            subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAbwesend);
                                            subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAnwesend);
                                            subscribeIdList.push(ICALPath + "."+ EventG_Gaeste);
                                        }
                            
                            

                            auf:

                                   if (UseEventsGlobalParameter === true) {
                                            subscribeIdList.push(ICALPath + "."+ EventG_Party);
                                            subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAbwesend);
                                            subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAnwesend);
                                            subscribeIdList.push(ICALPath + "."+ EventG_Gaeste);
                                            subscribeIdList.push(ICALPath + "."+ UseEventG_Profil); 
                                            subscribeIdList.push(ICALPath + "."+ UseEventR_Profil ); 
                                            }
                            
                            

                            vG Looxer

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

                              @looxer01:

                              @Kugelkopf:

                              Ich hätte da noch eine Frage:

                              Wenn ich in VIS ein 2. Profil auswähle, dann Fehlen die Einstellmöglichkeiten der Uhrzeit und Temperatur im unteren Feld.

                              Anscheinend ist es nicht vorgesehen, dass es diese so ohne weiteres gibt. Sehe ich das richtig? `
                              Hi,

                              die Datenpunkte aus Profil-1 müssen im View angeplasst werden.

                              Das kann mit Hilfe eines geeigneten Editors gemacht werden (ich empfehle immer notepad++) und durch suchen und Ersetzen

                              • Suche Profil-1

                              • Ersetze mit: Profil-2

                              Das heisst auch, dass du dazu eine zweite View brauchst.

                              Werde ich in die FAQs aufnehmen.

                              vG Looxer `

                              Ja…

                              Naja, ich hab das nun anders gelöst. Habe alles in einem View erstellt und dementsprechend die Knöpfe je nach Profil ein und ausgeblendet. Vielleicht ist das ja noch was für euch. Dann muss man zumindest nicht 3 Views anlegen für 3 verschiedene Profile sondern hat alles in einem View. Anbei also mein View der 3 Profile zur Verfügung stellt. Profil_1 Profil_2 und Profil_3.

                              Der Vollständigkeitshalber: der Raum heißt bei mir: SchlafzimmerOG 5370_view_3profile.txt.zip

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

                                @Kugelkopf:

                                aja, ich hab das nun anders gelöst. Habe alles in einem View erstellt und dementsprechend die Knöpfe je nach Profil ein und ausgeblendet. Vielleicht ist das ja noch was für euch. Dann muss man zumindest nicht 3 Views anlegen für 3 verschiedene Profile sondern hat alles in einem View. Anbei also mein View der 3 Profile zur Verfügung stellt. Profil_1 Profil_2 und Profil_3.

                                Der Vollständigkeitshalber: der Raum heißt bei mir: SchlafzimmerOG `
                                Hi,

                                Ja, danke dir. Das ist nicht besonders intelligent gelöst im bereitgestellten View. Das liegt aber daran, dass die Profile nicht so oft verwendet werden. Ich schau mir deinen View an. Wenns passt und du einverstanden bist, könnte ich den Standardview entsprechend erweitern..)

                                vG Looxer

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

                                  @looxer01:

                                  @Kugelkopf:

                                  aja, ich hab das nun anders gelöst. Habe alles in einem View erstellt und dementsprechend die Knöpfe je nach Profil ein und ausgeblendet. Vielleicht ist das ja noch was für euch. Dann muss man zumindest nicht 3 Views anlegen für 3 verschiedene Profile sondern hat alles in einem View. Anbei also mein View der 3 Profile zur Verfügung stellt. Profil_1 Profil_2 und Profil_3.

                                  Der Vollständigkeitshalber: der Raum heißt bei mir: SchlafzimmerOG `
                                  Hi,

                                  Ja, danke dir. Das ist nicht besonders intelligent gelöst im bereitgestellten View. Das liegt aber daran, dass die Profile nicht so oft verwendet werden. Ich schau mir deinen View an. Wenns passt und du einverstanden bist, könnte ich den Standardview entsprechend erweitern..)

                                  vG Looxer `

                                  Wo wir bei dem Thema sind, Du kannst für neue Versionen auch gerne auf meine Version des Views zurück greifen, stelle es gerne zur Verfügung. gerade das Thema Responsive Design ist ja bei Hausautomation ein Thema, durch die vielen verschiedenen Auflösungen der verschiedenen Geräte.

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

                                    @looxer01:

                                    @Kugelkopf:

                                    aja, ich hab das nun anders gelöst. Habe alles in einem View erstellt und dementsprechend die Knöpfe je nach Profil ein und ausgeblendet. Vielleicht ist das ja noch was für euch. Dann muss man zumindest nicht 3 Views anlegen für 3 verschiedene Profile sondern hat alles in einem View. Anbei also mein View der 3 Profile zur Verfügung stellt. Profil_1 Profil_2 und Profil_3.

                                    Der Vollständigkeitshalber: der Raum heißt bei mir: SchlafzimmerOG `
                                    Hi,

                                    Ja, danke dir. Das ist nicht besonders intelligent gelöst im bereitgestellten View. Das liegt aber daran, dass die Profile nicht so oft verwendet werden. Ich schau mir deinen View an. Wenns passt und du einverstanden bist, könnte ich den Standardview entsprechend erweitern..)

                                    vG Looxer `
                                    Kein Problem! Dafür habe ich es ja bereitgestellt! Schau es dir einfach mal an und teste es.

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

                                      @AxelF1977:

                                      Du kannst für neue Versionen auch gerne auf meine Version des Views zurück greifen, stelle es gerne zur Verfügung. gerade das Thema Responsive Design ist ja bei Hausautomation ein Thema, durch die vielen verschiedenen Auflösungen der verschiedenen Geräte. `
                                      Hi Axel,

                                      super, danke dir. Das schaue ich mir gerne an. Kannst du mir deine Version zusenden ?

                                      vG Looxer

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

                                        @looxer01:

                                        @AxelF1977:

                                        Du kannst für neue Versionen auch gerne auf meine Version des Views zurück greifen, stelle es gerne zur Verfügung. gerade das Thema Responsive Design ist ja bei Hausautomation ein Thema, durch die vielen verschiedenen Auflösungen der verschiedenen Geräte. `
                                        Hi Axel,

                                        super, danke dir. Das schaue ich mir gerne an. Kannst du mir deine Version zusenden ?

                                        vG Looxer `

                                        kannst Du hier runterladen viewtopic.php?f=21&t=10096&start=640#p190132 steht dem Forum ja schon offiziell zur Verfügung

                                        1 Reply Last reply Reply Quote 0
                                        • F
                                          frostnatt last edited by

                                          @looxer01:

                                          @frostnatt:

                                          vielen Dank für deine Rückmeldung. Ich habe es gerade ausprobiert und kann leider keine Änderung zum bereits geschilderten Verhalten feststellen… `
                                          Hi,

                                          neuer Vorschlag. Ich habe festgestellt, dass die Subscription gar nicht gemacht ist.

                                          Evt. erübrigt sich damit der vorherige

                                          kannst du bitte folgendes testen und diese Änderung einfügen

                                          ändern von:

                                                      if (UseEventsGlobalParameter === true) {
                                                          subscribeIdList.push(ICALPath + "."+ EventG_Party);
                                                          subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAbwesend);
                                                          subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAnwesend);
                                                          subscribeIdList.push(ICALPath + "."+ EventG_Gaeste);
                                                      }
                                          
                                          

                                          auf:

                                                 if (UseEventsGlobalParameter === true) {
                                                          subscribeIdList.push(ICALPath + "."+ EventG_Party);
                                                          subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAbwesend);
                                                          subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAnwesend);
                                                          subscribeIdList.push(ICALPath + "."+ EventG_Gaeste);
                                                          subscribeIdList.push(ICALPath + "."+ UseEventG_Profil); 
                                                          subscribeIdList.push(ICALPath + "."+ UseEventR_Profil ); 
                                                          }
                                          
                                          

                                          vG Looxer `

                                          Hi Looxer,

                                          danke für den Vorschlag.

                                          Es haben tatsächlich die Subscriptions gefehlt.

                                          Leider geht es so nicht, da UseEventG_Profil mit dem folgenden Inhalt initialisiert ist.

                                          var UseEventG_Profil     = "Global_Profil_<profilnummer>";</profilnummer> 
                                          

                                          Ich habe nun für meinen Spezialfall, also wenn nun Globale Profile Umgeschaltet werden sollen, folgendes Workaround bei mir eingebaut.

                                                      if (UseEventsGlobalParameter === true) {
                                                          subscribeIdList.push(ICALPath + "."+ EventG_Party);
                                                          subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAbwesend);
                                                          subscribeIdList.push(ICALPath + "."+ EventG_UrlaubAnwesend);
                                                          subscribeIdList.push(ICALPath + "."+ EventG_Gaeste);
                                                      }
                                                      if (UseEventsGlobalProfilSelect === true) {
                                                          for (i = 1; i <= MaxProfile; i++) {
                                                              var ProfilName = UseEventG_Profil.replace("<profilnummer>", i);
                                                              subscribeIdList.push(ICALPath + "." + ProfilName);
                                                          }
                                                      }</profilnummer> 
                                          

                                          Nun funktioniert es wie gewünscht.

                                          Grüße,

                                          Max

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

                                            @frostnatt:

                                            Es haben tatsächlich die Subscriptions gefehlt.

                                            Leider geht es so nicht, da UseEventG_Profil mit dem folgenden Inhalt initialisiert ist `
                                            ups, sorry. War wie gesagt eine Trockenübung.

                                            Ich glaube, dass ich deinen Code übernehmen kann 😄

                                            plus noch für die Raumprofile.

                                            Danke dir.

                                            vG Looxer

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            905
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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