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

donate donate
  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.7k

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

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

[Vorlage] Heizungsthermostatsteuerung 2.1 - Script

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascripttemplateheatingclimate
1.1k Beiträge 115 Kommentatoren 398.2k 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.
  • Beliar_666B Offline
    Beliar_666B Offline
    Beliar_666
    schrieb am zuletzt editiert von
    #854

    Der Datenpunkt ist bei mir im View schon korrekt eingetragen. Warum sind hier Boost und Party mit angeführt, wenn der Punkt im View nur für Auto/Manu ist?
    9141_modus.png

    Im 2. Shot sieht man die Datenpunkte, jedoch ist mir nach wie vor nicht klar durch was eben der gelb markierte geändert wird. Denn dieser Datenpunkt ist ja für die Anzeige im View verantwortlich. Und der steht bei mir immer auf 0, also Auto. Selbst wenn der Thermostat auf Manu eingestellt ist.

    9141_modus2.png

    Ich hoffe jetzt ist komplett klar was ich meine.

    1 Antwort Letzte Antwort
    0
    • K Offline
      K Offline
      Kugelkopf
      schrieb am zuletzt editiert von
      #855

      @looxer01

      Ich hatte ja schon einmal angemerkt, dass eine Abwesenheitskontrolle pro Raum interessant wäre. Vielleicht wäre dort ein Array interessant welches man pro Raum mitgeben kann. Sind diese Menschen die für einen bestimmten Raum eingetragen sind nicht mehr Anwesend, wird abgesenkt.

      Hättest du vielleicht für mich einen groben Ansatz wie ich das integriert bekomme?

      Denn Anwesenheitscheck via TR064 ist kein Problem. Auch das originale Anwesenheitsskript für das Heizungsthermostatsteuerungs-Skript habe nich.

      Mir ist aber schleierhaft wie du das mit den subscriptions löst, also den Triggern und was LoopRooms macht.

      Vielleicht hast du ein paar Tipps.

      Viele Grüße!

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

        @Beliar_666:

        Der Datenpunkt ist bei mir im View schon korrekt eingetragen. Warum sind hier Boost und Party mit angeführt, wenn der Punkt im View nur für Auto/Manu ist?

        Modus.PNG

        Im 2. Shot sieht man die Datenpunkte, jedoch ist mir nach wie vor nicht klar durch was eben der gelb markierte geändert wird. Denn dieser Datenpunkt ist ja für die Anzeige im View verantwortlich. Und der steht bei mir immer auf 0, also Auto. Selbst wenn der Thermostat auf Manu eingestellt ist.

        Modus2.PNG

        Ich hoffe jetzt ist komplett klar was ich meine. `
        Hi,

        ich habe jetzt gesehen, dass du IP geräte hast. Habs also mal getestet. Bei mir kann ich Auto und Manu über control mode manuell im datenpunkt umstellen. Damit reagiert das Thermostat. Also geht das auch im View. weil es ja nichts anderes ist. Nach meinen Tests funktioniert das also.

        Wenn du Gruppen eingerichtet hast, dann solltest du allerdings auch die Gruppen nutzen. Ansonsten reagieren die Geräte nicht wie gewünscht.

        Die Gruppen kannst du erzeugen durch eine weitere RPC instanz und durch Konfig "virtuell devices". Die Gruppen brauch dann noch einen Eintrag in der Thermostattype tab (siehe diskussionen mit Eric ) und natürlich die Änderung im View.

        vG Looxer

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

          @Kugelkopf:

          @looxer01

          Hättest du vielleicht für mich einen groben Ansatz wie ich das integriert bekomme?

          Denn Anwesenheitscheck via TR064 ist kein Problem. Auch das originale Anwesenheitsskript für das Heizungsthermostatsteuerungs-Skript habe nich.

          Mir ist aber schleierhaft wie du das mit den subscriptions löst, also den Triggern und was LoopRooms macht.

          Vielleicht hast du ein paar Tipps. `

          vielleicht wartest du ein paar Tage und ich schicke dir eine Version zum Testen. wäre das ok ?

          vG Looxer

          1 Antwort Letzte Antwort
          0
          • T Offline
            T Offline
            torti0111
            schrieb am zuletzt editiert von
            #858

            Moin Ladies,

            Ich hab da mal wieder ein Problem.

            Ich habe nun über die Feiertage meinen Broker vollkommen neu aufgesetzt, da ich das ein oder andere Problem hatte, was jetzt beseitigt ist.

            Nun habe ich die neueste Version vom Skript laufen. Da kommt es zu folgendem Problem:

            Wenn ich ein Fenster öffne funktioniert die Absenkung. Nachdem ich das Fenster wieder schliesse, bleibt die Temperatur auf 12°C.

            Ich habe eine Benachrichtigung auf dem Sollwertwechsel via telegramm, daher kann ich das genau verfolgen.

            Der Sollwert bleibt solange auf 12Grad, bis ich das skript manuell einmal neustarte.

            Überganglösung, die auch funktioniert ist, dass ich im Skript Cron auf 5 gestellt habe. So wird zu jeden vollen 5 Minuten das Skript geprüft und auch der korrekte Sollwert wieder eingestellt. Ich habe die Vermutung, dass das Skript den Verschluss nicht mitbekommt.

            In der View wechselt jedoch der Status von offen auf geschlossen.

            Ich habe komplette Max-Lösung integriert. ( Cube, Wandthermostate, Heizungsthermostate, Fenstersensoren)

            Also es funktioniert alles jetzt ersteinmal, jedoch mit der Einschränkung, dass ich es über cron laufen lassen muss.

            Vielleicht hat ja jemand eine Idee.

            Edit:

            Ich habe selbst den Punkt 5 Schon auf true gesetzt, leider mit gleichem Ergebnis

            ! var NoneHMSenorTab = []; // 0= Raum 1 = Datenpunkt vis vor Geraet 0.RPC-Pfad 2\. Datenpunkt Geraet 3\. Datenpunkt FensterstatusGeraeteType 4.Verschlussstatus bei geschlossen 5\. TempAbsenkung automatisch ! NoneHMSenorTab[0] = ['Wohnzimmer', 'maxcube.0.devices', 'contact_188a27', 'opened' , 'false', true]; NoneHMSenorTab[1] = ['Wohnzimmer', 'maxcube.0.devices', 'contact_18895b', 'opened', 'false', true]; NoneHMSenorTab[2] = ['Schlafzimmer', 'maxcube.0.devices', 'contact_0d71f4', 'opened', 'false', true]; !

            LG Torti

            1 Antwort Letzte Antwort
            0
            • T Offline
              T Offline
              torti0111
              schrieb am zuletzt editiert von
              #859

              Problem mit Looxers Hilfe ( Skript geändert) gelöst.

              Woran es lag, kann er sicher besser erklären als ich ;-)

              Vielen Dank nochmal und einen Guten Rutsch ;-)

              Lg Torti

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

                @torti0111:

                Woran es lag, kann er sicher besser erklären als ich `
                Hi,

                in der Version 2.1 gibt es ein Problem bei der Synchronisierung von Temperaturen bei nicht direkt verknüpften Thermostaten welches mit der kommenden Version 2.2 gelöst ist.

                Für alle die also nicht direkverknüpfungen nutzen rate ich auf die Version 2.2 zu warten.

                @Torti: du hast eine 2.2 Vorversion. Die sollte aber schon einigermassen stabil laufen.

                vG Looxer

                1 Antwort Letzte Antwort
                0
                • K Offline
                  K Offline
                  Kugelkopf
                  schrieb am zuletzt editiert von
                  #861

                  @looxer01:

                  @Kugelkopf:

                  @looxer01

                  Hättest du vielleicht für mich einen groben Ansatz wie ich das integriert bekomme?

                  Denn Anwesenheitscheck via TR064 ist kein Problem. Auch das originale Anwesenheitsskript für das Heizungsthermostatsteuerungs-Skript habe nich.

                  Mir ist aber schleierhaft wie du das mit den subscriptions löst, also den Triggern und was LoopRooms macht.

                  Vielleicht hast du ein paar Tipps. `

                  vielleicht wartest du ein paar Tage und ich schicke dir eine Version zum Testen. wäre das ok ?

                  vG Looxer `

                  Alles Klar! Danke!

                  1 Antwort Letzte Antwort
                  0
                  • M Offline
                    M Offline
                    Moses1989
                    schrieb am zuletzt editiert von
                    #862

                    Moin zusammen,

                    Ich habe im Gästezimmer einen "HmIP-eTRV-B1" Stellantrieb mit einem "HM-TC-IT-WM-W-EU" Wandthermostat und ein "HmIP-SWDM-B2" Fensterkontakt gemixt. Jetzt erkennt das Script bisher nur das Wandthermostat und ändert da fleißig die Soll Temp. Allerdings kann man ja keine Direktverknüpfung zwischen HM und HmIP komponenten machen. Und so bin ich darauf angewiesen das das Script auch die Soll Temperatur des Stellantriebs ändert.

                    Das klappt leider nicht, und auch die Fensteröffnung wird nicht erkannt. :cry:

                    Hatte das Problem schon mal jemand?

                    Ich habe schon mal versucht meine Typenbezeichnungen im Script an der entsprechenden Stelle hinzuzufügen:

                    ` > SensorTypeTab[~~[b]~~9] = ['hm-rpc.1.', '~~[b]~~HmIP-SWDM-B2' , 'Fenstersensor (HMIP )' , 'IPSE', '1.STATE' , false, 0, true ]; // IP

                    und

                    ThermostatTypeTab[~~[b]~~11] = ['hm-rpc.2.', '~~[b]~~HmIP-eTRV-B1' , 'Heizkoerperthermostat(HMIP)','IPHT', '1.SET_POINT_TEMPERATURE', false, '1.SET_POINT_MODE', true, '1.ACTUAL_TEMPERATURE', '1.SET_POINT_MODE', 12, 0]; `

                    Leider ohne Erfolg.

                    Hat jemand einen Tipp für mich?

                    Grüße Moses

                    1 Antwort Letzte Antwort
                    0
                    • H Offline
                      H Offline
                      HoffmannOs
                      schrieb am zuletzt editiert von
                      #863

                      wenn ich die View importieren möchte erhalte ich ständig nen JSON fehler.

                      mit den Datenpunkten komme ich nicht so recht klar, welche sollen wie angelegt werden?

                      Vielen Dank für eure Hilfe!

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

                        @HoffmannOs:

                        enn ich die View importieren möchte erhalte ich ständig nen JSON fehler.

                        mit den Datenpunkten komme ich nicht so recht klar, welche sollen wie angelegt werden? `
                        Hi,

                        hast du die Import Dokumentation angesehen. Da steht step by step wie es geht.

                        Datenpunkte brauchst du selber keine anzulegen. das macht das Programm

                        Die Datenpunkte unter "Status" des Views sind ja auch schon da und gehören zu den existierenden Geräten, die du steuern möchtest.

                        vG Looxer

                        1 Antwort Letzte Antwort
                        0
                        • H Offline
                          H Offline
                          HoffmannOs
                          schrieb am zuletzt editiert von
                          #865

                          ja habe die Anleitung gelesen und bin danach vorgegangen, brauche ich ein spezielles Widget Packet? kommt immer und immer wieder der Json Fehler

                          1 Antwort Letzte Antwort
                          0
                          • Beliar_666B Offline
                            Beliar_666B Offline
                            Beliar_666
                            schrieb am zuletzt editiert von
                            #866

                            Hättest Du die Anleitung gelesen würdest du winen leeren View erstellen und dann ein Widget importieren, dann kommt auch kein Json Fehler. :roll:

                            1 Antwort Letzte Antwort
                            0
                            • S Offline
                              S Offline
                              simpixo
                              schrieb am zuletzt editiert von
                              #867

                              Hallo Loxxer01

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

                              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 Antwort Letzte Antwort
                              0
                              • L Offline
                                L Offline
                                looxer01
                                schrieb am zuletzt editiert von
                                #868

                                @simpixo:

                                ich wollte dein neues Script v2.2 testen, leider erhalte ich eine Fehlermeldung. DIe Version 2.1 funktioniert problemlos :D `
                                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 Antwort Letzte Antwort
                                0
                                • S Offline
                                  S Offline
                                  simpixo
                                  schrieb am zuletzt editiert von
                                  #869

                                  Die habe ich von Github :-) oder ist das gar nicht die v2.2

                                  Gruß

                                  Adrian

                                  Gesendet von iPhone mit Tapatalk Pro

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

                                    @simpixo:

                                    Die habe ich von Github :-) oder ist das gar nicht die v2.2

                                    Gesendet von iPhone mit Tapatalk Pro `
                                    aaaah :D

                                    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 Antwort Letzte Antwort
                                    0
                                    • S Offline
                                      S Offline
                                      simpixo
                                      schrieb am zuletzt editiert von
                                      #871

                                      Ahhh [emoji23]

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

                                      Gruß und guten Rutsch

                                      Gesendet von iPhone mit Tapatalk Pro

                                      1 Antwort Letzte Antwort
                                      0
                                      • Q Offline
                                        Q Offline
                                        quorle
                                        schrieb am zuletzt editiert von
                                        #872

                                        @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 Antwort Letzte Antwort
                                        0
                                        • L Offline
                                          L Offline
                                          looxer01
                                          schrieb am zuletzt editiert von
                                          #873

                                          @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 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

                                          442

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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