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

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

[Vorlage] Heizungsthermostatsteuerung 2.1 - Script

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

    Habs eingebaut… FOlgende Meldung im Log :

    javascript.0 script.js.common.Skript3: Routine SensorChange: Sensor Direktverknuepft Sensorstatus geaendert - ID mihome.0.devices.magnet_158d0001fa3382.state Raum Küche auf true

    Ist auch egal ob ich in der Sensorliste für NoneHM false oder true eingestellt habe, der erkennt das immer als direktverknüpft...

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

      @shattered_dream:

      Habs eingebaut… FOlgende Meldung im Log : `
      jo, das zeigt, dass das Script davon ausgeht, dass der Sensor direktverknuepft ist.

      Ich glaube ich habe da einen fehler gefunden:

      Tausche bitte nochmal aus:

          if (SensorList[tabNo][9] ) {  // Sensor ist direktverknuepft und wurde geoeffnet
              log("Routine SensorChange: Sensor Direktverknuepft  Sensorstatus geaendert - ID " + id + " Raum " + room +" auf "+  SensorList[tabNo][7], "info" );
              writelog(room, id, "Routine SensorChange: Sensor Direktverknuepft  Sensorstatus geaendert - ID " + id + " Raum " + room +" auf "+  SensorList[tabNo][7])  ;
              return;                                                                                                                     // nichts machen, da die Absenkung automatisch passiert
          }
      
          vG Looxer
      
      
      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        shattered_dream
        schrieb am zuletzt editiert von
        #454

        Tip top, das scheints gewesen zu sein…..

        Funzt nun... Dank dir für die Unterstützung!

        1 Antwort Letzte Antwort
        0
        • K Offline
          K Offline
          kaschperle83
          schrieb am zuletzt editiert von
          #455

          Super. Ich bin gerade im Urlaub. Werde es danach direkt testen.

          Gesendet aus Hessen.

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

            @kaschperle83:

            Super. Ich bin gerade im Urlaub. Werde es danach direkt testen. `
            Feedback wäre prima.

            Wenn es für alle läuft mache ich eine neue Version.

            vG Looxer

            1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              shattered_dream
              schrieb am zuletzt editiert von
              #457

              Wie gesagt bei mir funzt es!

              Muss mich jetzt mal in hochsprachen Programmierung einarbeiten..

              Ist als SPS Programmierer doch ne kleine Umstellung…

              Gesendet von meinem ONEPLUS A3003 mit Tapatalk

              1 Antwort Letzte Antwort
              0
              • D Offline
                D Offline
                dav71701
                schrieb am zuletzt editiert von
                #458

                @looxer01:

                @shattered_dream:

                Habs eingebaut… FOlgende Meldung im Log : `
                jo, das zeigt, dass das Script davon ausgeht, dass der Sensor direktverknuepft ist.

                Ich glaube ich habe da einen fehler gefunden:

                Tausche bitte nochmal aus:

                    if (SensorList[tabNo][9] ) {  // Sensor ist direktverknuepft und wurde geoeffnet
                        log("Routine SensorChange: Sensor Direktverknuepft  Sensorstatus geaendert - ID " + id + " Raum " + room +" auf "+  SensorList[tabNo][7], "info" );
                        writelog(room, id, "Routine SensorChange: Sensor Direktverknuepft  Sensorstatus geaendert - ID " + id + " Raum " + room +" auf "+  SensorList[tabNo][7])  ;
                        return;                                                                                                                     // nichts machen, da die Absenkung automatisch passiert
                    }
                    
                    
                    vG Looxer
                
                ```` `  
                

                Also mit dieser Änderung und den folgenden Einstellungen, weil ich den Xiaomi - Sensor als Cux eingebunden habe, funktioniert es jetzt auch bei mir, super danke :)

                ThermostatTypeTab[2]  = ['hm-rpc.0.',  'HM-CC-RT-DN'     , 'Heizkoerperthermostat(neu)' ,'HT',   '4.SET_TEMPERATURE'      ,   false,        '4.MANU_MODE',              false,                  '4.ACTUAL_TEMPERATURE',      '4.CONTROL_MODE',           12,                                            0];
                SensorTypeTab[1] = ['hm-rpc.0.',  'HM-Sec-SC'  ,    'Fenstersensor (alt)' ,       'HM',    '1.STATE' ,        false,         false,                 false   ];
                
                
                1 Antwort Letzte Antwort
                0
                • ChaotC Offline
                  ChaotC Offline
                  Chaot
                  schrieb am zuletzt editiert von
                  #459

                  Wow,

                  dasDing ist ja wirklich gut gemacht.

                  Eine ganz blöde Frage:

                  Lässt sich das eventuell auch auf DECT Thermostate adaptieren?

                  Die Datenpunkte scheinen ja zu den HM Thermostaten anders zu sein und es gibt bei den Dingern per Remote Befhl keinen manuellen Modus.

                  Hat das schon jemand versucht oder hilft vielleicht das Bild weiter?
                  5779_dect.jpg

                  ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

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

                    @Chaot:

                    Lässt sich das eventuell auch auf DECT Thermostate adaptieren? `

                    Hi,

                    die erste Voraussetzung ist, dass du die SollTemp in IoBroker setzen kann und das Thermostat diese auch annimmt.

                    Ich sehe, dass du eine Target Temp hast. Wenn die also nicht nur Read Only ist, dann ja, dann sollte es gehen.

                    @Chaot:

                    Die Datenpunkte scheinen ja zu den HM Thermostaten anders zu sein und es gibt bei den Dingern per Remote Befehl keinen manuellen Modus. `

                    Ich nehme an, dass das Thermostat ein eigenes Programm hat, dass du einstellen kannst.

                    Wenn das Thermostat ausschließlich nach der eigenen Planung arbeiten kann, dann hat es keinen manuellen mode.

                    Das heißt aber nicht, dass du das Thermostat nicht steuern kannst. Wenn du Beispielsweise nur einmal am Tag eine Temp eingeben würdest und ioBroker eine Minute später schlicht wieder übersteuerst, dann ist das zumindest ein Workaround um damit umzugehen.

                    Nun weiß ich nicht wie das Thermostat genau funktioniert aber ich würde es mal probieren.

                    vG Looxer

                    1 Antwort Letzte Antwort
                    0
                    • E Offline
                      E Offline
                      ErazorVIP
                      schrieb am zuletzt editiert von
                      #461

                      Hallo,

                      ich wollte heute mal das Script ausprobieren. Jedoch bekomme ich leider beim start immer folgende Meldung im Log:

                      16:05:05.580	[info]	javascript.0 Start javascript script.js.common.heating
                      16:05:05.580	[info]	javascript.0 script.js.common.heating: Routine GetDevices Devices initialisiert
                      16:05:05.581	[info]	javascript.0 script.js.common.heating: registered 0 subscriptions and 0 schedules
                      16:05:07.423	[info]	javascript.0 script.js.common.heating: Heizungsscript verarbeitung benutzt Trigger und Events
                      16:05:07.424	[warn]	javascript.0 at setOwnState (script.js.common.heating:494:5)
                      16:05:07.425	[warn]	javascript.0 at LoopRooms (script.js.common.heating:773:5)
                      16:05:07.425	[warn]	javascript.0 at Object. (script.js.common.heating:431:9)
                      
                      

                      Kann mir jemand weiterhelfen? :?:

                      LG

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

                        Hi @ErazorVIP:

                        Jedoch bekomme ich leider beim start immer folgende Meldung im Log: `
                        sieht nach einem Problem bei der Konfiguration aus (warnung).

                        javascript.0 at Object. (script.js.common.heating:431:9)

                        Zeile 431 (falls du keine global Scripte verwendest)

                        Wenn du den Konfig Teil postest laesst sich evt was sagen.

                        vG Looxer

                        1 Antwort Letzte Antwort
                        0
                        • E Offline
                          E Offline
                          ErazorVIP
                          schrieb am zuletzt editiert von
                          #463

                          Ich habe eigentlich alles bei den Standardeinstellungen gelassen.

                          Ich habe nur HM-IP Thermostate.

                          Es werden auch keine States angelegt.

                          javascript.0	2018-10-02 17:18:20.097	warn	at Object. <anonymous>(script.js.Heizungssteuerung.Heating:431:9)
                          javascript.0	2018-10-02 17:18:20.097	warn	at LoopRooms (script.js.Heizungssteuerung.Heating:773:5)
                          javascript.0	2018-10-02 17:18:20.097	warn	at setOwnState (script.js.Heizungssteuerung.Heating:494:5)
                          javascript.0	2018-10-02 17:18:20.093	warn	State "javascript.0.Heizung.Heizplan.GlobaleParameter.Source_last_Program_Run" not found</anonymous> 
                          
                          // Beginn Generelle Einstellungen
                          // werden an dieser Stelle benoetigt - Einstellungen sind nur in Spezialfaellen notwendig
                          //------------------------------------------------------------------------------
                          // Anpassung nur wenn unbedingt notwendig. Hier ist der Ansatz um z.B. Einliegerwohnungen separat zu steuern
                          var JSPath                  = "javascript.0.";             // JS- Pfad
                          var path                    = JSPath + 'Heizung.Heizplan';  // Pfad fuer create states
                          var Gparameterpath          = path + ".GlobaleParameter";  // Pfad in die Globalen Parameter
                          var ICALPath                = "ical.0.events";             // Pfad zu den ICAL events zur Profilauswahl
                          //------------------------------------------------------------------------------
                          // Ende Generelle Einstellungen
                          // Usereinstellungen sind Einstellungen, die ueblicherweise gemacht werden
                          //------------------------------------------------------------------------------
                          
                          //------------------------------------------------------------------------------
                          // Beginn USER Einstellungen
                          //------------------------------------------------------------------------------
                          
                          // Gewerke - wichtige Einstellung, da nur die Geraete eingelesen werden, die im Gewerk vorhanden sind
                          // Das Gewerk muss alle Thermostate bzw Sensoren enhalten
                          var HeizungGewerk           = "Heizung";        //  diesem Gewerk muessen alle Thermostate zugeordnet sein.
                          var SensorGewerk            = "Verschluss";     //  diesem Gewerk muessen alle Verschlusssensoren zugeordnet sein.
                          
                          // Alle x Minuten wird gecheckt ob die SollTemp angepasst werden muss - Empfehlung wenn cron dann 5
                          // Wenn Wert = 0 ist dann läuft das Skript über Events (empfohlener Weg)
                          var cron = 0;
                          
                          // Raumliste -  empfohlen zu benutzen fuer kleine Systeme
                          // UseRoomList heisst, dass die nur hier gelisteten Raeume angelegt und abgearbeitet werden - somit werden nicht sofort alle Datenpunkte aller Räume angelegt (ca. 100 pro Raum und Profil)
                          // dies dient hauptsaechlich zur Anlage der Daten - So koennen Raum fuer Raum alle States angelegt wrden
                          // Das sollte genutzt werden mit langsamen Rechnern wie Raspi mit SD karte
                          var UseRoomList = false;      // Wenn testmodus werden nur die Angegebenen Raeume abgearbeitet
                          var RoomList = [];
                          RoomList[0] = ['Wohnzimmer'];   // Liste der Raeume die gesteuert werden soll zum Testen
                          RoomList[1] = ['Raum2'];
                          RoomList[2] = ['Raumx'];
                          RoomList[3] = ['Raum3'];
                          RoomList[4] = ['Raum4'];
                          RoomList[5] = ['Raum5'];
                          RoomList[6] = ['Raum6'];
                          RoomList[7] = ['Raum7'];
                          RoomList[8] = ['Raum8'];
                          RoomList[9] = ['Raum9'];
                          
                          
                          1 Antwort Letzte Antwort
                          0
                          • S Offline
                            S Offline
                            shattered_dream
                            schrieb am zuletzt editiert von
                            #464

                            Wo sind die Homematic IP Geräte angebunden?

                            Ccu?

                            Ich Tipp drauf dass der Name des Gewerks nicht passt…..

                            Gesendet von meinem ONEPLUS A3003 mit Tapatalk

                            1 Antwort Letzte Antwort
                            0
                            • ChaotC Offline
                              ChaotC Offline
                              Chaot
                              schrieb am zuletzt editiert von
                              #465

                              Danke.

                              Ich habe schon etwas mit den Dingern experimentiert und kann vermutlich das interne Programm auf eine Temperatur festlegen (wäre ja dann als Fallbacklösung geeignet).

                              Steuerbefehle zur Temperaturregelung kann ich bereits absenden. Also beispielsweise bei offenem Fenster die TargetTemp auf 10 °C setzen funktioniert problemlos.

                              Ich werde mal das Scrip bei einem Raum probeweise einsetzen und schauen wie sich das verhält.

                              Da ich in den Räumen mehrere Temperatursensoren habe ist das natürlich die deutlich bessere Lösung als sich auf die intern erfasste Temperatur zu verlassen.

                              Ich muss nur noch herausfinden wie ich die Temperatursensoren so einbinde das der Offset zum internen Wert eingearbeitet wird.

                              Beispiel:

                              Raumtemperatur gemessen/gemittelt = 22 °C

                              Temperatur am Thermostat = 24 °C

                              Regeltemperatur müsste dann 24 °C sein obwohl ich als Wunschtemperatur 22 °C einstellen möchte.

                              Hast du sowas irgendwo im Script vorgesehen?

                              ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                              1 Antwort Letzte Antwort
                              0
                              • S Offline
                                S Offline
                                shattered_dream
                                schrieb am zuletzt editiert von
                                #466

                                Man könnte ja mit der berechneten Differenz einen Offset an die Thermostate schicken

                                Gesendet von meinem ONEPLUS A3003 mit Tapatalk

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

                                  Hi,
                                  @Chaot:

                                  Hast du sowas irgendwo im Script vorgesehen? `
                                  Im Script ist das so nicht vorgesehen. Das Problem, dass ich dabei sehe ist, dass das Offset wahrscheinlich nicht immer 2 Grad ist.

                                  Das hängt vermutlich von der Aussentemperatur des Heizkörpers ab. In der Übergangszeit dürften es z.B. weniger als 2 Grad sein. (lauwarmer Heizkörper).

                                  Wenn es stabil 2 Grad sein sollen, dann kommt die Diff-Temp bei Abwesenheit oder Urlaub in Frage. Die kann man negativ oder positiv setzen.

                                  vG Looxer

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

                                    gelöscht - doppelter Beitrag

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

                                      @ErazorVIP:

                                      Ich habe eigentlich alles bei den Standardeinstellungen gelassen.

                                      Ich habe nur HM-IP Thermostate.

                                      Es werden auch keine States angelegt. `
                                      Ich vermute auch, dass es mit den Raum- bzw Gewerkezuordnungen zusammenhängt. Ist auch schon sehr häufig vorgekommen.

                                      In der Objektliste von iobroker bei den Objekten der Thermostate kannst du sehr schön sehen ob die Zuordnungen ok sind.

                                      vG Looxer

                                      1 Antwort Letzte Antwort
                                      0
                                      • ChaotC Offline
                                        ChaotC Offline
                                        Chaot
                                        schrieb am zuletzt editiert von
                                        #470

                                        Ich habe aktuell noch eine Fehlermedlung.

                                        Ich denke das das mit dem Adapter "Feiertage" zusammenhängt. Nach der Installation kam dieser Fehler:

                                        javascript.0	2018-10-03 11:12:15.242	error	at ContextifyScript.Script.runInContext (vm.js:59:29)
                                        javascript.0	2018-10-03 11:12:15.242	error	at script.js.Heizung.HeizungGesamt:343:1
                                        javascript.0	2018-10-03 11:12:15.242	error	at initializeData (script.js.Heizung.HeizungGesamt:350:5)
                                        javascript.0	2018-10-03 11:12:15.242	error	at getDevices (script.js.Heizung.HeizungGesamt:580:32)
                                        javascript.0	2018-10-03 11:12:15.242	error	TypeError: roomName.replace is not a function
                                        javascript.0	2018-10-03 11:12:15.241	error	^
                                        javascript.0	2018-10-03 11:12:15.241	error	roomNoSpace = roomName.replace(/\s/g, "_");
                                        javascript.0	2018-10-03 11:12:15.241	error	script.js.Heizung.HeizungGesamt: script.js.Heizung.HeizungGesamt:580
                                        

                                        ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

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

                                          @Chaot:

                                          Ich habe aktuell noch eine Fehlermedlung. `

                                          Hi,

                                          ich sehe das hier

                                          javascript.0	2018-10-03 11:12:15.241	error	^
                                          
                                          

                                          Scheint mir, dass es ein Syntax Fehler ist, vermutlich entstanden bei der Anpassung des Scripts.

                                          vG Looxer

                                          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

                                          748

                                          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