Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Vorlage] Heizungsthermostatsteuerung - Script

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    [Vorlage] Heizungsthermostatsteuerung - Script

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      pix last edited by

      Hallo Looxer,

      das hat keine Änderung gebracht.

      Ich bin allerdings daraufhin mal deinen Code durchgegangen und habe - angestoßen von deiner Änderungsidee - hier eine Änderung gemacht:

      Kommentarbereich // Verschluss sensoren einlesen und subscription buchen

      statt

      if(devtype === SensorTypeTab[x][1] ) {
      

      lieber

      if(devtype === SensorTypeTab[x][1] && RoomListUsage(roomName) === true) {
      

      <size size="85">Ist derzeit so etwa um Zeile 493</size>

      Dann gings (nach dem ersten Eindruck :-D)

      Pix

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

        @pix:

        Kommentarbereich // Verschluss sensoren einlesen und subscription buchen

        statt `

        ja, wenn du Sensoren hast, dann auch an dieser Stelle.

        und dann gibt es noch die "nicht HM Geräte.

        Wenn alles ok läuft bei dir, dann baue ich das überall entsprechend ein.

        kleine Anmerkung: bei dir funktioniert das jetzt NUR mit roomlist.

        Ich muss es so bauen, dass es auch noch ohne funktioniert.

        Vielen Dank

        vG Looxer

        1 Reply Last reply Reply Quote 0
        • P
          pix last edited by

          Ah, verstehe.

          Ich habe einen Ventilsteller im Bad (HM neu) und eine Reihe alter HM-Wandthermostate in verschiedenen Räumen (nur zur Anzeige von Temp & Feuchte). Und natürlich jede Menge TFK und RHS (auch alle HM).

          Ich setze das Skript (bis jetzt) nur zur Steuerung des Thermostats im Bad ein. Deshalb soll es auf Veränderungen in den anderen Räumen nicht reagieren. Freut mich, wenn ich was beitragen konnte. Ist wirklich toll!

          Pix

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

            @looxer01

            ich habe kleine Frage zur Heizperiode.

            In deiner Anleitung steht:
            ` > Heizperiode

            Wenn die Heizperiode aktiviert ist (true), dann werden die Heizprogramme ausgeführt. Wenn die Heizperiode nicht aktiviert ist (false), dann werden die Ventile der Thermostate entweder geöffnet (30 Grad) oder geschlossen (6 Grad). Die Einstellung, ob geöffnet oder geschlossen werden soll kann im Programm vorgenommen werden.

            Beispiel: -var TempOffHeizperiode = 30 - In diesem Beispiel werden die Ventile geöffnet. Die Empfehlung ist zu schliessen `
            Die Variable TempOffHeizperiode gibt es aber so nicht … oder?

            Aktuell ist es bei mir so, dass alle Ventile voll öffnen, da ein Setpoint von 30°C an den Thermostaten eingestellt wird.

            In deiner Anleitung empfiehlst du die Ventile zu schließen.

            Ich vermute hier:

            var ThermostatTypeTab = [];
            //                   	0.RPC-Pfad    	1.GeraeteType      2\. Beschreibung,     		3\. Type   4.DP-SollTemp     	5.Laenge ID 6.DP MANU/AUTO Schaltung    7.Steuerung zentral 8\. IstTemp                  9-Check-MANU-Mode       10-Ventilstellung wenn nicht Heizperiode
            ThermostatTypeTab[0]  = ['hm-rpc.0.',  'HM-TC-IT-WM-W-EU', 'Wandthermostat (neu)'       ,'WT',   '2.SET_TEMPERATURE'      ,   10,      '2.MANU_MODE',  		 true,                  '1.TEMPERATURE',             '2.CONTROL_MODE',          30];
            ThermostatTypeTab[1]  = ['hm-rpc.0.',  'HM-CC-TC'        , 'Wandthermostat (alt)'       ,'WT',   '2.SETPOINT'             ,   10,      false,            	 false,                  '1.TEMPERATURE',              false,                    30];
            ThermostatTypeTab[2]  = ['hm-rpc.0.',  'HM-CC-RT-DN'     , 'Heizkoerperthermostat(neu)' ,'HT',   '4.SET_TEMPERATURE'      ,   10,      '4.MANU_MODE',    	 true,                   '4.ACTUAL_TEMPERATURE',       '4.CONTROL_MODE',         30];
            ThermostatTypeTab[3]  = ['hm-rpc.0.',  'HMIP-eTRV'       , 'Heizkoerperthermostat(HMIP)','HT',   '4.SET_POINT_TEMPERATURE',   10,      '2.MANU_MODE',    	 false,                 '4.ACTUAL_TEMPERATURE',       '4.CONTROL_MODE',         30];
            

            Die 30 am Ende der Zeilen einfach (in z.B. 6) ändern und gut … oder muss da noch etwas beachtet werden?

            Gruß

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

              @Smartuser:

              Die Variable TempOffHeizperiode gibt es aber so nicht … oder? `

              Hi,

              stimmt, ich habe die Variable in die Thermostateinstellungen gezogen. Somit kann je Thermostattype entschieden werden.

              Wichtig ist, dass das Thermostat im Sommer nicht immer öffnet bzw. schliesst. Das würde ja nur DC und Batterien kosten.

              Also sollte die Einstellung hier mit der Thermostateinstellung "Absenktemperatur" übereinstimmen. Die steht bei Homematic

              im Standard auf 12 Grad.

              Das heisst, wenn die Fenster öffnen, dann gehen die Thermostate auf 12 Grad - schliessen also.

              Danach wird bei deiner Einstellung von 30 Grad wieder geöffnet. Somit hast du Funkverkehr und unnötige Thermostatbewegung.

              Edit:

              also konkret zu deiner Frage

              "Die 30 am Ende der Zeilen einfach (in z.B. 6) ändern und gut … oder muss da noch etwas beachtet werden?"

              Die Temperatur dort auf z.B. 12 Grad stellen. (wie auch bei dir die Absenktempertur eingestellt ist)

              vG Looxer

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

                @looxer01:

                Edit:

                also konkret zu deiner Frage

                "Die 30 am Ende der Zeilen einfach (in z.B. 6) ändern und gut … oder muss da noch etwas beachtet werden?"

                Die Temperatur dort auf z.B. 12 Grad stellen. (wie auch bei dir die Absenktempertur eingestellt ist)

                vG Looxer `

                Danke Dir.

                … funktioniert 🙂

                Das Script ist der Hammer. 8-)

                Gruß

                1 Reply Last reply Reply Quote 0
                • 0
                  00chaos last edited by

                  Hallo zusammen,

                  gibt es eine Möglichkeit das Skript für Max! Geräte zu verwenden. Oder ist Max! schon wieder eine ganz andere Welt?

                  Beste Grüße

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

                    @00chaos:

                    gibt es eine Möglichkeit das Skript für Max! Geräte zu verwenden. Oder ist Max! schon wieder eine ganz andere Welt? `

                    Hi,

                    ich habe es recht offen gehalten. Es kommt aber am Ende darauf an wie Max in ioBroker eingebunden ist und wie Max gesteuert wird.

                    Idealerweise gibt es Datenpunkte, die die Steuerung von Max bewirken. In diesem Fall lassen sich sogar Homematic Sensoren mit Max geräten verbinden. Poste doch mal die Details der Steuerung.

                    Edit: oder fragst du hier wie du Max in iobroker einbinden kannst ? Das ist dann eine andere Baustelle

                    vG Looxer

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

                      @webseb79:

                      Ich war anwesend und Sollwert waren 17 Grad.

                      Dann habe ich das Fenster geöffnet und die Absenktemperatur wurde auf 5 Grad gesetzt.

                      Später bin ich außer Haus und bin 2 Stunden später wieder zurückgekommen und sah die Absenktemperatur bei Abwesenheit von 16 Grad als Sollwert

                      ( Einstellung -1Grad ) und das Fenster war ja noch offen , bei Fenster offen im Raum dürfte auf nichts reagiert werden.

                      Nach Programmdurchlauf wurde dann auf 17 Grad gestellt (wegen Anwesenheit) , aber das Fenster (1 von 3 Fenster) war ja immer noch offen.

                      Ich habe ein 2.Fenster geöffnet … 5 Grad Sollwert wurde gesetzt.

                      Das 2.Fenster wurde wieder geschlossen und das erste blieb offen ... 17 Grad Sollwert wurde gesetzt.

                      LG `

                      Hi,

                      ich möchte nochmal zu diesem Thema kommen. Könntest du mal im Programm debug = true setzen und den Fall mit dem öffnen und schliessen simulieren. Aus dem log sollte dann hervorgehen was passiert. Auch stehen dort deine HM´Typen vermerkt.

                      vielen Dank

                      Looxer

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

                        @00chaos:

                        gibt es eine Möglichkeit das Skript für Max! Geräte zu verwenden. Oder ist Max! schon wieder eine ganz andere Welt? `
                        @looxer01:

                        ch habe es recht offen gehalten. Es kommt aber am Ende darauf an wie Max in ioBroker eingebunden ist und wie Max gesteuert wird.

                        Idealerweise gibt es Datenpunkte, die die Steuerung von Max bewirken. In diesem Fall lassen sich sogar Homematic Sensoren mit Max geräten verbinden. Poste doch mal die Details der Steuerung. `

                        also wenn du dein Max so eingebunden hast (maxcul)
                        305_max.jpg

                        dann sollte es gehen. Gib mir mal die genaue Datenpunktbezeichnungen aller deiner Maxthermostate

                        vG Looxer

                        1 Reply Last reply Reply Quote 0
                        • 0
                          00chaos last edited by

                          @looxer01:

                          also wenn du dein Max so eingebunden hast (maxcul)

                          max.JPG

                          dann sollte es gehen. Gib mir mal die genaue Datenpunktbezeichnungen aller deiner Maxthermostate

                          vG Looxer `
                          Ja, so sind die Thermostate eingebunden. Ich verstehe nur nicht ganz, was du mit Datenpunkten meinst.

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

                            ich muss die genaue Variablen bezeichnung aus der Objektliste der MaxThermostate wissen.

                            Dann würde ich dir die Voreinstellung geben.

                            Die findest du so raus.

                            • gehe in die Objekte (Reiter iobroker)

                            • navigiere zu den Max Thermostaten und öffne die Liste bis du für die Thermostate den Datenpunkt "desired Temperature" siehst.

                            • Dann fährst du mit der Maus genau auf diesen Text "desired temperature" und du siehst ein Sysmbol eingeblendet.

                            • Fahre auf das Symbol, dann erscheint "in die zwischenablage kopieren"

                            • Ein Klick und du hast den Datenpunkt in der Zwischenablage.

                            den uder die kannst du dann mit paste posten.

                            das war jetzt sehr ausführlich. Ich weiss nicht wie tief du im Thema bist.

                            vG Looxer

                            1 Reply Last reply Reply Quote 0
                            • 0
                              00chaos last edited by

                              Danke. Es kann so einfach sein.

                              Hier die Datenpunkte:

                              Thermostat: maxcul.0.KEQ0352843.desiredTemperature

                              Wandthermostat: maxcul.0.LEQ1331051.desiredTemperature

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

                                @00chaos:

                                Thermostat: maxcul.0.KEQ0352843.desiredTemperature

                                Wandthermostat: maxcul.0.LEQ1331051.desiredTemperature `

                                noch eine Frage. Ich nehme mal an, dass das Wandthermostat das Thermostat steuert - korrekt ?

                                Also brauchst du nur das Wandthermostat für die Wunschtemperatur ?

                                oder sind das zwei Geräte, unabhängig von einander in zwei Räumen ?

                                vG Looxer

                                1 Reply Last reply Reply Quote 0
                                • 0
                                  00chaos last edited by

                                  Thermostat und Wandthermostat befinden sich im gleichen Raum. Korrekt, das Wandthermostat steuert das Thermostat.

                                  Es gibt auch noch zwei Fensterkontakte.

                                  Diese haben die Datenpunkte maxcul.0.KEQ0186726.isOpen und maxcul.0.KEQ0190297.isOpen.

                                  Wenn ich den einen Raum zum Laufen bekomme. Werde ich dann die restlichen angehen.

                                  Beste Grüße

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

                                    @00chaos:

                                    Thermostat und Wandthermostat befinden sich im gleichen Raum. Korrekt, das Wandthermostat steuert das Thermostat.

                                    Es gibt auch noch zwei Fensterkontakte.

                                    Diese haben die Datenpunkte maxcul.0.KEQ0186726.isOpen und maxcul.0.KEQ0190297.isOpen. `

                                    jetzt doch noch mal weitere Fragen.

                                    • wenn du den Datenpunkt "desired temperature" aenderst, dann wird auch das Thermostat mit der Solltemperatur versehen ?

                                    • und wie sieht das aus mit den Sensoren ? Ich nehme an, dass wir die gar nicht berücksichtigen müssen, da sie automatisch die Wirkung haben, dass die Solltemperatur auf Absenktemperatur gesetzt wird ?

                                    • wie hoch ist die Absenktemperatur ?

                                    vG Looxer

                                    1 Reply Last reply Reply Quote 0
                                    • N
                                      Nikoxx last edited by

                                      Hi,

                                      ein super Skript das bei mir zuverlässig seinen Dienst verrichtet.

                                      Jetzt hätte ich aber mal eine Frage. Wie bekomme ich die Temperatur aus den Eingabefeldern von dem Wochenplan wenn ich das Profil ändern möchte. Wollte etwas ändern und dadurch sind zwei Spalten nicht mehr nötig. Die Uhrzeit hab ich wegbekommen aber die Temperatur nicht, die wird im View immer angezeigt.

                                      Wäre super wenn du mir einen Tip geben könntest.

                                      1 Reply Last reply Reply Quote 0
                                      • 0
                                        00chaos last edited by

                                        @looxer01:

                                        jetzt doch noch mal weitere Fragen.

                                        • wenn du den Datenpunkt "desired temperature" aenderst, dann wird auch das Thermostat mit der Solltemperatur versehen ?

                                        • und wie sieht das aus mit den Sensoren ? Ich nehme an, dass wir die gar nicht berücksichtigen müssen, da sie automatisch die Wirkung haben, dass die Solltemperatur auf Absenktemperatur gesetzt wird ?

                                        • wie hoch ist die Absenktemperatur ?

                                        vG Looxer `

                                        Ist wohl doch etwas mehr Aufwand. Ich ärgere mich heute immer noch, die Max! Geräte gekauft zu haben.

                                        Ja, so sollte es sein. Wenn ich "desired temperature" ändere, wird der Thermostat gestellt.

                                        Bei den Sensoren klappt dies wohl nicht ohen Cube. Sie sind zwar mit dem Wandthermostat verbunden, aber wenn diese geöffnet passiert da gar nichts. Also die Temperatur wird nicht abgesenkt. Die Absenktemperatur war bis jetzt immer 6°C.

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

                                          @00chaos:

                                          Ist wohl doch etwas mehr Aufwand. Ich ärgere mich heute immer noch, die Max! Geräte gekauft zu haben.

                                          Ja, so sollte es sein. Wenn ich "desired temperature" ändere, wird der Thermostat gestellt.

                                          Bei den Sensoren klappt dies wohl nicht ohen Cube. Sie sind zwar mit dem Wandthermostat verbunden, aber wenn diese geöffnet passiert da gar nichts. Also die Temperatur wird nicht abgesenkt. Die Absenktemperatur war bis jetzt immer 6°C. `

                                          Ist kein grosser Aufwand. Ich wollte nur sichergehen wie deine Situation ist:

                                          Im Programmcoding findest du folgende Stelle:

                                          //              0 = Raum         1 = Datenpunkt bis vor Geraet   2=Datenpunkt Geraet  3=Datenpunkt SollTemp     4= Ventilstellung bei NichtHeizperiode
                                          NoneHMTab[0] = ['initial',	    'javascript.0.Heizung',         'zwave1', 	        '4.SET_TEMPERATURE',            12];
                                          NoneHMTab[1] = ['initial', 		'ZWAVE.0', 		                'zwa0183xxx',	    '4.SET_TEMPERATURE',            12];
                                          NoneHMTab[2] = ['initial', 		'ZWAVE.0', 		                'zwa0183xxx',	    '4.SET_TEMPERATURE',            12];
                                          
                                          

                                          bitte ersetzen durch:

                                          //              0 = Raum         1 = Datenpunkt bis vor Geraet   2=Datenpunkt Geraet  3=Datenpunkt SollTemp     4= Ventilstellung bei NichtHeizperiode
                                          NoneHMTab[0] = ['Wohnzimmer',	'maxcul.0',         			'LEQ1331051', 	    'desiredTemperature',            6];
                                          NoneHMTab[1] = ['initial', 		'ZWAVE.0', 		                'zwa0183xxx',	    '4.SET_TEMPERATURE',            12];
                                          NoneHMTab[2] = ['initial', 		'ZWAVE.0', 		                'zwa0183xxx',	    '4.SET_TEMPERATURE',            12];
                                          
                                          

                                          ist der Raumname "Wohnzimmer" ? evt anpassen

                                          und dann noch:

                                          var VerschlussAbsenkungsGrenze = 12;
                                          
                                          

                                          auf das hier aendern:

                                          var VerschlussAbsenkungsGrenze = 6;
                                          
                                          

                                          Was deine Fenstersensoren angeht, so bin ich bisher davon ausgegangen, dass nicht HM- Sensoren immer mit nicht HM-Geraeten sprechen. Das scheint bei dir nicht der Fall zu sein. Da du die Datenpunkte (und deren Aenderungen) aber offensichtlich in iobroker hast könnte ich die nicht HM-Sensoren aufnehmen. Wenn du bereit bist etwas Testaufwand zu investieren. (und etwas Geduld mitbringst.)

                                          aber teste zunächst mal die Funktionialität mit den Einstellungen.

                                          vG Looxer

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

                                            @Nikoxx:

                                            Hi,

                                            Wollte etwas ändern und dadurch sind zwei Spalten nicht mehr nötig. Die Uhrzeit hab ich wegbekommen aber die Temperatur nicht, die wird im View immer angezeigt. `

                                            Hi Nikoxx,

                                            wenn ich dich richtig verstanden habe, dann willst du die Widgets entfernen ?

                                            Die View ist eine ganz normale View. Die Widgets lassen sich in VIS normal entfernen.

                                            Sollte das bei dir nicht der Fall sein, dann hast du vielleicht ein anderes Problem (inkonsistenzen im View)

                                            In diesem Fall empfehle ich dir die View neu zu erstellen und die kaputte View zu löschen.

                                            Wie gesagt: falls ich dich richtig verstanden habe.

                                            vG Looxer

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            476
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            34
                                            313
                                            74941
                                            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