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.
    • S
      simpixo last edited by

      Hallo Loxxer01

      ich wollte dein neues Script v2.2 testen, leider erhalte ich eine Fehlermeldung. DIe Version 2.1 funktioniert problemlos 😄

      javascript.0	2018-12-31 10:22:46.353	error	at Timer.listOnTimeout (timers.js:290:5)
      javascript.0	2018-12-31 10:22:46.353	error	at tryOnTimeout (timers.js:323:5)
      javascript.0	2018-12-31 10:22:46.353	error	at ontimeout (timers.js:511:34)
      javascript.0	2018-12-31 10:22:46.353	error	at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1794:34)
      javascript.0	2018-12-31 10:22:46.353	error	at Object. <anonymous>(script.js.STEUERUNG_Heizung.Thermostatsteuerung_2_2:521:9)
      javascript.0	2018-12-31 10:22:46.353	error	at LoopRooms (script.js.STEUERUNG_Heizung.Thermostatsteuerung_2_2:936:13)
      javascript.0	2018-12-31 10:22:46.353	error	at LoopDevices (script.js.STEUERUNG_Heizung.Thermostatsteuerung_2_2:987:47)
      javascript.0	2018-12-31 10:22:46.353	error	Error in callback: TypeError: Cannot read property 'common' of null
      javascript.0	2018-12-31 10:22:46.351	warn	Object "javascript.0.Heizung.zwave1.4.SET_TEMPERATURE" does not exist
      javascript.0	2018-12-31 10:22:46.299	warn	at Timer.listOnTimeout (timers.js:290:5)
      javascript.0	2018-12-31 10:22:46.299	warn	at tryOnTimeout (timers.js:323:5)
      javascript.0	2018-12-31 10:22:46.299	warn	at ontimeout (timers.js:511:34)
      javascript.0	2018-12-31 10:22:46.299	warn	at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1794:34)
      javascript.0	2018-12-31 10:22:46.299	warn	at Object. <anonymous>(script.js.STEUERUNG_Heizung.Thermostatsteuerung_2_2:521:9)
      javascript.0	2018-12-31 10:22:46.298	warn	at LoopRooms (script.js.STEUERUNG_Heizung.Thermostatsteuerung_2_2:920:13)
      javascript.0	2018-12-31 10:22:46.297	warn	getState "javascript.0.Anwesenheitssteuerung.Userlist.JemandDa" not found (3)
      javascript.0	2018-12-31 10:22:44.294	warn	at script.js.STEUERUNG_Heizung.Thermostatsteuerung_2_2:417:1
      javascript.0	2018-12-31 10:22:44.294	warn	at initializeData (script.js.STEUERUNG_Heizung.Thermostatsteuerung_2_2:424:5)
      javascript.0	2018-12-31 10:22:44.294	warn	at getDevices (script.js.STEUERUNG_Heizung.Thermostatsteuerung_2_2:868:20)
      javascript.0	2018-12-31 10:22:44.293	warn	at SensorStatCalc (script.js.STEUERUNG_Heizung.Thermostatsteuerung_2_2:1156:24)
      javascript.0	2018-12-31 10:22:44.292	warn	getState "javascript.0.Heizung.zwave1.isOpen" not found (3)
      javascript.0	2018-12-31 10:22:44.290	warn	at script.js.STEUERUNG_Heizung.Thermostatsteuerung_2_2:417:1
      javascript.0	2018-12-31 10:22:44.290	warn	at initializeData (script.js.STEUERUNG_Heizung.Thermostatsteuerung_2_2:424:5)
      javascript.0	2018-12-31 10:22:44.290	warn	at getDevices (script.js.STEUERUNG_Heizung.Thermostatsteuerung_2_2:844:177)
      javascript.0	2018-12-31 10:22:44.289	warn	getState "javascript.0.Heizung.zwave1.4.Fenster" not found (3)
      javascript.0	2018-12-31 10:22:44.288	warn	Object "javascript.0.Heizung.zwave1.4.Fenster" does not exist
      javascript.0	2018-12-31 10:22:44.288	warn	at script.js.STEUERUNG_Heizung.Thermostatsteuerung_2_2:417:1
      javascript.0	2018-12-31 10:22:44.288	warn	at initializeData (script.js.STEUERUNG_Heizung.Thermostatsteuerung_2_2:424:5)
      javascript.0	2018-12-31 10:22:44.288	warn	at getDevices (script.js.STEUERUNG_Heizung.Thermostatsteuerung_2_2:844:177)
      javascript.0	2018-12-31 10:22:44.280	warn	getState "javascript.0.Heizung.zwave1.isOpen" not found (3)
      javascript.0	2018-12-31 10:22:44.280	warn	Object "javascript.0.Heizung.zwave1.isOpen" does not exist
      javascript.0	2018-12-31 10:22:40.781	warn	Object "javascript.0.Heizung.zwave1.4.SET_TEMPERATURE" does not exist</anonymous></anonymous> 
      
      1 Reply Last reply Reply Quote 0
      • L
        looxer01 last edited by

        @simpixo:

        ich wollte dein neues Script v2.2 testen, leider erhalte ich eine Fehlermeldung. DIe Version 2.1 funktioniert problemlos 😄 `
        Hi,

        wo hast du die her ?

        Version 2.2 ist ja noch in Entwicklung. Allerdings hatte habe einzelne Versionen zum Testen einzelner funktionen per mail rausgeschickt.

        vG Looxer

        1 Reply Last reply Reply Quote 0
        • S
          simpixo last edited by

          Die habe ich von Github 🙂 oder ist das gar nicht die v2.2

          Gruß

          Adrian

          Gesendet von iPhone mit Tapatalk Pro

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

            @simpixo:

            Die habe ich von Github 🙂 oder ist das gar nicht die v2.2

            Gesendet von iPhone mit Tapatalk Pro `
            aaaah 😄

            ne, das ist nur ein Test. Ich überlege die Source Codes dort abzulegen. Das hat den Vorteil auch alte Versionen halten zu können.

            Was ich da abgelegt hatte war nur zum Testen von Github. Werde ich dann mal lieber wieder löschen :lol:

            vG Looxer

            edit - gelöscht aus Github

            1 Reply Last reply Reply Quote 0
            • S
              simpixo last edited by

              Ahhh [emoji23]

              Und ich dachte das wäre die Neue Version [emoji4]

              Gruß und guten Rutsch

              Gesendet von iPhone mit Tapatalk Pro

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

                @looxer01:

                Ich steuere mittels eines anderes Scriptes die Anwesenheitserkennung.

                Hier steuere ich auch deinen Path:

                javascript.0.Heizung.Heizplan.GlobaleParameter.Anwesenheit
                

                Ich habe folgendes in deinem Script so eingetragen:

                // Integration zur Anwesenheitsermittlung -
                var UseAnwesenheitserkennung = true;                                                // wenn true, dann wird die o.g. Anwesenheitsvariable genutzt - Empfehlung erst im zweiten Schritt aktivieren
                var StateAnwesenheitFunction = JSPath + "Anwesenheitssteuerung.Userlist.JemandDa";   // Wenn UseAnwesenheitserkennung = true, dann muss der Pfad angepasst werden
                
                

                Oder muss ich hier noch den Pfad zur obigen Variablen eintragen? Diese wird doch schon genutzt?

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

                  @quorle:

                  Oder muss ich hier noch den Pfad zur obigen Variablen eintragen? Diese wird doch schon genutzt? `
                  Hi,

                  javascript.0.Heizung.Heizplan.GlobaleParameter.Anwesenheit
                  
                  

                  dieser Datenpunkt wird vom Programm intern genutzt und sollte auch im Pfad bleiben. Sonst wird nicht getriggert.

                  Brauchst hier also nichts zu ändern.

                  var UseAnwesenheitserkennung = true;                                                
                  var StateAnwesenheitFunction = JSPath + "Anwesenheitssteuerung.Userlist.JemandDa";   // Wenn UseAnwesenheitserkennung = true, dann muss der Pfad angepasst werden
                  
                  

                  Dies ist der Datenpunkt, den du auch ausserhalb des Heizungspfades legen kannst. Hierauf wird eine subscription gemacht.

                  Dein Script sollte also diesen bzw deinen angepassten Pfad der Varialbe StateAnwesenheitFunction nutzen.

                  vG Looer

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

                    @looxer01:

                    @quorle:

                    Oder muss ich hier noch den Pfad zur obigen Variablen eintragen? Diese wird doch schon genutzt? `
                    Hi,

                    javascript.0.Heizung.Heizplan.GlobaleParameter.Anwesenheit
                    
                    

                    dieser Datenpunkt wird vom Programm intern genutzt und sollte auch im Pfad bleiben. Sonst wird nicht getriggert.

                    Brauchst hier also nichts zu ändern.

                    var UseAnwesenheitserkennung = true;                                                
                    var StateAnwesenheitFunction = JSPath + "Anwesenheitssteuerung.Userlist.JemandDa";   // Wenn UseAnwesenheitserkennung = true, dann muss der Pfad angepasst werden
                    
                    

                    Dies ist der Datenpunkt, den du auch ausserhalb des Heizungspfades legen kannst. Hierauf wird eine subscription gemacht.

                    Dein Script sollte also diesen bzw deinen angepassten Pfad der Varialbe StateAnwesenheitFunction nutzen.

                    vG Looer `

                    Das heißt ich müsste einen Datenpunkt erstellen, den Pfad dann bei````
                    var StateAnwesenheitFunction = JSPath + "Anwesenheitssteuerung.Userlist.JemandDa"; // Wenn UseAnwesenheitserkennung = true, dann muss der Pfad angepasst werden

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

                      jap, so isses

                      Gesendet von meinem SM-G965F mit Tapatalk

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

                        @looxer01:

                        jap, so isses

                        Gesendet von meinem SM-G965F mit Tapatalk `

                        Hab das jetzt mal erledigt. Ich werde weiter berichten. Bislang funktioniert es

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

                          @quorle:

                          @looxer01:

                          jap, so isses

                          Gesendet von meinem SM-G965F mit Tapatalk `

                          Hab das jetzt mal erledigt. Ich werde weiter berichten. Bislang funktioniert es `

                          Also die Schaltung funktioniert und der Anwesenheitsstatus wird auch abgewählt. Aber ich habe ein Problem, beim alten Script konnte man die "absenkung bei Abwesenheit" einstellen. Die Absenkung wurde dann in deinem Script von der aktuellen Solltemp abgezogen. Dies passiert so nicht mehr. Kann es sein, dass die jetzige eingestellte Abwesenheitstemp direkt an den Regler gesendet wird?

                          Wenn ja, kann man das wieder ändern?

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

                            @quorle:

                            Also die Schaltung funktioniert und der Anwesenheitsstatus wird auch abgewählt. Aber ich habe ein Problem, beim alten Script konnte man die "absenkung bei Abwesenheit" einstellen. Die Absenkung wurde dann in deinem Script von der aktuellen Solltemp abgezogen. Dies passiert so nicht mehr. Kann es sein, dass die jetzige eingestellte Abwesenheitstemp direkt an den Regler gesendet wird?

                            Wenn ja, kann man das wieder ändern? `
                            nein, das sollte so nicht sein. Das Script zieht die Absenkung von der SollTemp ab.

                            Welche Version hast du aktuell ?

                            vG Looxer

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

                              @looxer01:

                              @quorle:

                              Also die Schaltung funktioniert und der Anwesenheitsstatus wird auch abgewählt. Aber ich habe ein Problem, beim alten Script konnte man die "absenkung bei Abwesenheit" einstellen. Die Absenkung wurde dann in deinem Script von der aktuellen Solltemp abgezogen. Dies passiert so nicht mehr. Kann es sein, dass die jetzige eingestellte Abwesenheitstemp direkt an den Regler gesendet wird?

                              Wenn ja, kann man das wieder ändern? `
                              nein, das sollte so nicht sein. Das Script zieht die Absenkung von der SollTemp ab.

                              Welche Version hast du aktuell ?

                              vG Looxer `

                              Ich habe mir schon gedacht, dass das so nicht sein kann.

                              Meine Version: 2.10 15.12.2018

                              Ich habe das heute mal simuliert, aber an den Solltemperaturen ändert sich nichts.

                              Hier mein aktueller View:

                              5278_unbenannt.png

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

                                @quorle:

                                Ich habe mir schon gedacht, dass das so nicht sein kann.

                                Meine Version: 2.10 15.12.2018 `
                                Hi,

                                im view sehe ich, dass du eine absolute Temp (14.5 Grad) eingegeben hast. Bei der Version 2.1 sind aber nur Absenkungsgrade bis 5 Grad möglich.

                                die absoluten Temps kommen erst mit 2.2. No way, dass das funktioniert mit 2.1

                                vG Looxer

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

                                  @looxer01:

                                  @quorle:

                                  Ich habe mir schon gedacht, dass das so nicht sein kann.

                                  Meine Version: 2.10 15.12.2018 `
                                  Hi,

                                  im view sehe ich, dass du eine absolute Temp (14.5 Grad) eingegeben hast. Bei der Version 2.1 sind aber nur Absenkungsgrade bis 5 Grad möglich.

                                  die absoluten Temps kommen erst mit 2.2. No way, dass das funktioniert mit 2.1

                                  vG Looxer `

                                  Ok, ich verstehe. Wenn man dein aktuelles VIEW lädt und verwendet steht dies schon so drin ;). Man kann aber auch nur minimal 12°C im VIEW einstellen.

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

                                    @looxer01:

                                    Ok, ich verstehe. Wenn man dein aktuelles VIEW lädt und verwendet steht dies schon so drin ;). Man kann aber auch nur minimal 12°C im VIEW einstellen. `
                                    Ich habe gerade das 3-Profile Widget Set probiert. Da sind es 5 Grad

                                    und es scheint, dass ich im 1-Profil Set bereits die full range drinnen hatte. Das funktioniert leider nicht.

                                    Mich wundert nur, dass es jetzt erst hochkommt.

                                    Ich werde das Widget Set korrigierten - Du kannst aber zwischenzeitlich das Widget für die TempAbsenkung aus dem 3-Profile set verwenden.

                                    vG Looxer

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

                                      @looxer01:

                                      @looxer01:

                                      Ok, ich verstehe. Wenn man dein aktuelles VIEW lädt und verwendet steht dies schon so drin ;). Man kann aber auch nur minimal 12°C im VIEW einstellen. `
                                      Ich habe gerade das 3-Profile Widget Set probiert. Da sind es 5 Grad

                                      und es scheint, dass ich im 1-Profil Set bereits die full range drinnen hatte. Das funktioniert leider nicht.

                                      Mich wundert nur, dass es jetzt erst hochkommt.

                                      Ich werde das Widget Set korrigierten - Du kannst aber zwischenzeitlich das Widget für die TempAbsenkung aus dem 3-Profile set verwenden.

                                      vG Looxer `

                                      Ich denke da müsste ich jetzt das ganze Widget umbauen. Kann man das nicht vereinfachen?

                                      In der Art, dass man nur ein paar Zahlen ändert?

                                      LG

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

                                        @quorle:

                                        ch denke da müsste ich jetzt das ganze Widget umbauen. Kann man das nicht vereinfachen?

                                        In der Art, dass man nur ein paar Zahlen ändert? `
                                        du brauchst doch nur das eine Widget auszutauschen. Sache von ein paar Minuten.

                                        [{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Heizung.Heizplan.Schlafzimmer.Profil-3.ProfilParameter_AbwesenheitAbsenkung","values":"0;1;2;3;4;5;6;7;8;9;10;11;12,13;14;15;16;17;18;19;20","texts":"0;0.5;1.0;1.5;2.0;2.5;3.0;3.5;4.0;4.5;5.0;-0.5;-1.0;-1.5;-2.0;-2.5;-3.0;-3.5;-4.0;-4.5;-5.0","height":"262","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"class":"","open":false,"no_style":false,"g_visibility":true,"visibility-cond":"==","visibility-val":"3","visibility-groups-action":"hide","name":"Solltemperatur","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"visibility-oid":"javascript.0.Heizung.Heizplan.Schlafzimmer.AktivesRaumProfil"},"style":{"left":"674px","top":"268px","width":"70px","height":"25px","z-index":8,"font-size":"12px","font-weight":"bold"},"widgetSet":"jqui"}]
                                        
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • Q
                                          quorle last edited by

                                          @looxer01:

                                          @quorle:

                                          ch denke da müsste ich jetzt das ganze Widget umbauen. Kann man das nicht vereinfachen?

                                          In der Art, dass man nur ein paar Zahlen ändert? `
                                          du brauchst doch nur das eine Widget auszutauschen. Sache von ein paar Minuten.

                                          [{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Heizung.Heizplan.Schlafzimmer.Profil-3.ProfilParameter_AbwesenheitAbsenkung","values":"0;1;2;3;4;5;6;7;8;9;10;11;12,13;14;15;16;17;18;19;20","texts":"0;0.5;1.0;1.5;2.0;2.5;3.0;3.5;4.0;4.5;5.0;-0.5;-1.0;-1.5;-2.0;-2.5;-3.0;-3.5;-4.0;-4.5;-5.0","height":"262","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"class":"","open":false,"no_style":false,"g_visibility":true,"visibility-cond":"==","visibility-val":"3","visibility-groups-action":"hide","name":"Solltemperatur","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"visibility-oid":"javascript.0.Heizung.Heizplan.Schlafzimmer.AktivesRaumProfil"},"style":{"left":"674px","top":"268px","width":"70px","height":"25px","z-index":8,"font-size":"12px","font-weight":"bold"},"widgetSet":"jqui"}]
                                          
                                          ```` `  
                                          

                                          Du hast natürlich Recht, mein Fehler.

                                          Habe es so eben geändert, aber er will auf einen State schreiben "javascript.0.Heizung.Heizplan.Schlafzimmer.Profil-3.ProfilParameter_AbwesenheitAbsenkung" den es nicht mehr gibt. Hier müsste man auf folgenden State umstellen: "javascript.0.Heizung.Heizplan.Badezimmer.Profil-1.ProfilParameter_AbwesenheitAbsenkung" –> im jeweilig ausgewählten Profil.

                                          Stimmt das soweit?

                                          LG

                                          EDIT:

                                          so eben Versucht, in den oben neuen State "javascript.0.Heizung.Heizplan.Badezimmer.Profil-1.ProfilParameter_AbwesenheitAbsenkung" wird dann nicht geschrieben

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

                                            jap, muss Profil-1 sein

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            916
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

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