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

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    [Vorlage] Heizungsthermostatsteuerung - Script

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

      Das ioBroker die FHT80b nicht ansteuern kann hat übrigens nichts mit dem Script zu tun!

      So weit, das zu testen bin ich ja garnicht gekommen!

      LG

      Wolfgang

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

        Hi Looxer,

        leider kann ich Dir keine PN senden, da die Funktion noch nicht bei mir freigeschaltet ist.

        Ich benutze überigens nur HM-Thermosate (am Heizkörper und aktuell ein Wandthermostat).

        Das Script läuft in "KEINE GRUPPE".

        In meiner letzten Version habe ich nur folgende Einstellungen im Script geändert:

        var cron = 1;

        var UseRoomList = false; // Wenn testmodus werden nur die Angegebenen Raeume abgearbeitet

        var RoomList = [];

        RoomList[0] = ['GaesteWC'];

        var UseEventsGlobalParameter = false;

        Alles andere habe ich unberührt gelassen.

        Die Warnung aus Zeile 297 habe ich angehängt, "hinter den" Ausrufezeichen in Zeile 317 und folgend steht "Don´t make functions within a loop".

        ???

        Hoffe, dass die Angaben weiter helfen.

        Danke und VG

        drdoener
        4076_hz4.jpg

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

          Hi,

          @drdoener:

          Ich benutze überigens nur HM-Thermosate (am Heizkörper und aktuell ein Wandthermostat). `
          welche genau ?

          Es gibt die alten HM mit den Stellventilen

          oder die neueren mit dem Display am Heizkörper

          oder die ganz neuen HM-IP

          @drdoener:

          Die Warnung aus Zeile 297 habe ich angehängt, "hinter den" Ausrufezeichen in Zeile 317 und folgend steht "Don´t make functions within a loop". ??? `
          Den Hinweis "Dont make functions" kannst du ignorieren.

          Zeile 297 ist lediglich ein Funktionsaufruf.

          Kannst du bitte das komplette Script einfach hier hochladen. Steht ja nichts sensibles drin, nehme ich mal an 😄

          vG Looxer

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

            Hi,

            in Benutzung sind die neuesten HM (NICHT HMIP) Thermostate, Bsp:

            HM-CC-RT-DN OEQ0663024

            HM-TC-IT-WM-W-EU OEQ0578846

            Das Script lade ich hoch (eine meiner ca. 15 verschiedenen Versuche).

            Danke und Gruß

            drdoener
            4076_hz_vers4.txt

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

              oder dürfen die Geräte etwa nicht wie bei mir benannt sein (siehe Anhang)?

              (ist mir gerade so eingefallen).

              Gruß

              drdonener
              4076_iobroker_thermostate.jpg

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

                Hi

                @drdoener:

                oder dürfen die Geräte etwa nicht wie bei mir benannt sein (siehe Anhang)? `
                Spaces waren in der Tat mal ein Problem, sollte aber jetzt gehen.

                Du hast die Roomlist auf true. Das heisst, dass das Programm nur fuer den Raum GaesteWC Devices findet

                Du hast ein GaesteWC TT device also soll das so sein , dass du nur fuer diesen Raum testest ?

                Falls das nicht das Problem ist, dann entferne bitte testhalber die spaces aus den Geraeten.

                (zumindest mal aus einem)

                vG Looxer

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

                  Hi,

                  versucht habe ich es jetzt noch einmal mit "roomlist" true und false.

                  Dazu habe ich bei dem Gerät "GaesteWC TT" das Leerzeichen entfernt, und dann habe ich es noch mit einem anderen Raum probiert, in dem das Thermostat noch den Originalnamen hat.

                  Immer die gleiche Fehlermeldung, und unter "Objekte/javascript.0" erscheint nichts….

                  ??

                  VG

                  drdoener

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

                    Hi drdoener,

                    Also hier mal die Liste zum durcharbeiten:

                    Gewerke:

                    Im Script musst du deine Gewerke angegeben, die du den Geräten in der CCU zugewiesen hast

                    Standard im script ist Heizung und Verschluss. Stimmen die ?

                    Räume

                    Die Geräte muessen einem Raum zugewiesen werden.

                    Die Räume werden automatisch ausgelesen. Belasse mal die roomlist auf false

                    Objektliste

                    Siehst du in der Objektliste, dass die Geräte -möglichst alle channel- Raumzuweisungen und Gewerkezuweisungen haben ?

                    Wenn nicht, dann hast du vermutlich in der CCU nicht alle channel zugeordnet. Brauchst auch in der Regel wenigstens channel 1,4 etc

                    Geräte

                    Die Gerätetypen müssen mit der Konfiguration in der Tabelle ThermostatTypeTab übereinstimmen, also z.B. HM-CC-RT-DN

                    muss dann auch so bei den Objekten unter Beispiel: "PARENT_TYPE": "HM-CC-TC" identisch sein. und zwar inkl gross und kleinschreibung

                    (die neue Version -noch nicht veröffentlich- ist da toleranter).

                    Das Feld "PARENT_TYPE" findest du in der objektliste z.B. hm-rpc.0.IEQ0515883 - auf diesem Level gibt es rechts einen Stift.

                    Nach Änerungen in der CCU (z.B. spaces aus geräten entfernt) solltest du iobroker neu starten.

                    Wenn das alles nicht klappt dann schick mir mal ein objekt als download

                    Das kannst du aus der objeklist heraus machen. Ein Thermostat markieren und dann obenlinks auf download druecken.

                    "die ausgewhaehlte objekt-struktur als json herunterladen"

                    (ich hoffe, dass du mitterlweile PN senden kannst ?)

                    Nicht die Geluld verlieren. Ich bin auch sicher, dass es nur Einstellung ist. Das script funktioniert.

                    vG Looxer

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

                      Hi Looxer,

                      bin noch einmal alles durchgeganen, und dabei auf die Bennenung der Gewerke gestoßen.

                      In meiner CCU heissen die Heizung und Verschluss,

                      ABER im iobroker funcHeating und wohl funcLock (habe noch keine Verschlussgeräte…)

                      Im Script habe ich statt Heizung funcHeating eingegeben und <u>NUN FUNKTIONIERT</u> es.

                      Naja, hätte mich auch vorher anstrahlen können, als recht neuer Nutzer habe ich aber noch nie so wirklich Umgang mit den Gewerken.

                      Jetzt werde ich mich mal ans Werk machen,

                      Danke Dir für den Support,

                      drdoener

                      1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators last edited by

                        @drdoener:

                        Im Script habe ich statt Heizung funcHeating eingegeben und NUN FUNKTIONIERT es. `
                        Du hättest lieber auf der CCU die Gewerke mal kurz editiert und wieder geschlossen, dann den hm-rega neugestartet und hättest die richtigen Bezeichnungen gehabt.

                        Dies ist nämlich ein Bug der CCU

                        Gruß

                        Rainer

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

                          Ok,

                          habe ich jetzt auch gemacht (siehe Bild)

                          Sieht jetzt noch nach mehr Bug aus..

                          VG
                          4076_iobroker_funcheating.jpg

                          1 Reply Last reply Reply Quote 0
                          • Homoran
                            Homoran Global Moderator Administrators last edited by

                            @drdoener:

                            Sieht jetzt noch nach mehr Bug aus.. `
                            Wieso?

                            Geh mal auf den Reiter Aufzählungen und klappe die Gewerke ganz auf

                            Gruß

                            Rainer

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

                              @drdoener:

                              Sieht jetzt noch nach mehr Bug aus.. `

                              auf jeden Fall haben wir den Uebeltaeter. Jetzt brauchst du nur sicherstellen, dass die Gewerkezuordnung und auch Raumzuordnung übrigens in der CCU wirklich stimmen. Am Besten allen Kanälen zuordnen.

                              Dann - so wie von Rainer vorgeschlagen- gehst du in die Aufzählungen und vergleichst mal.

                              Falls es Abweichungen gibt löschst du rooms und functions in den Aufzählungen (keine Bange kriegst du wieder mit dem nächsten sync zurück)

                              Dann empfehle ich ioBroker neu zu starten. Bei mir hat der REGA Neustart nicht immer geholfen. Warum auch immer.

                              vG Looxer

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

                                Hi,

                                es gibt die Version 081. Habe ich im ersten Post hinterlegt.

                                Was gibt es Neues ?

                                Erstmal eine Reihe von Fehlern wurde behoben. Dann funktioniert IP jetzt richtig und ist auch vorkonfiguriert.

                                Ausserdem gibt es jetzt auch die Möglichkeit Nicht-Homematic Fenstersensoren zu berücksichtigen.

                                Wenn Ihr schon eine Vorgängerversion einsetzt, dann müsst ihr alles nach den User-Einstellungen kopieren, -also auch die Experten Einstellungen.

                                vG Looxer

                                Change Log:

                                // Version 0.81 11,11.2017 - Fehler bei Create States - falscher type

                                // beim view manually adjusted auf number gestellt und text korrigiert.

                                // Fehler in der Roomlist: es wurden auch Geraete aus anderen Raeumen eingelesen

                                // IP - Konfiguration angepasst fuer Wand und Heizkoerperthermostat

                                // IP Geräte können jetzt auf den manuellen Modus gesetzt werden

                                // Funktion: Nicht HM-Sensoren hinzugefügt

                                // Userexit Datenpunkte bei den Experteneinstellungen auf initial gesetzt

                                // Die Abfrage des GeraeteTypes fuer Thermostate wurde angepasst und checked ob der angegebene Type als Substring enthalten ist

                                // und die Vergleichsstrings werden in Grossschrift verglichen (sensoren und Thermostate)

                                // Nicht HM-Sensoren hinzugefügt mit subscription

                                // Selektion der Geräte ohne ID Laenge

                                1 Reply Last reply Reply Quote 0
                                • M
                                  mrMuppet last edited by

                                  Hmmm… gerade um 3:30 die Heizungen ausgemacht... Irgendwas stimmt da noch nicht in der neuen Version ...

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    mrMuppet last edited by

                                    Hmmm… gerade um 3:30 die Heizungen ausgemacht... Irgendwas stimmt da noch nicht in der neuen Version ...

                                    hier sind meine errors

                                    javascript.0	2017-11-13 03:28:46.013	error	at ContextifyScript.Script.runInContext (vm.js:59:29)
                                    javascript.0	2017-11-13 03:28:46.013	error	at script.js.Heizungsther_0_81:318:1
                                    javascript.0	2017-11-13 03:28:46.013	error	at getDevices (script.js.Heizungsther_0_81:482:33)
                                    javascript.0	2017-11-13 03:28:46.013	error	TypeError: Cannot read property 'common' of null
                                    javascript.0	2017-11-13 03:28:46.013	error	^
                                    javascript.0	2017-11-13 03:28:46.013	error	FullName = getObject(id).common.name;
                                    javascript.0	2017-11-13 03:28:46.013	error	script.js.Heizungsther_0_81: script.js.Heizungsther_0_81:482
                                    javascript.0	2017-11-13 03:28:46.012	warn	Object "javascript.0.Heizung.zwave1.4.SET_TEMPERATURE" does not exist
                                    javascript.0	2017-11-13 03:28:46.008	info	script.js.Heizungsther_0_81: Routine GetDevices fuer HM Thermostate hm-rpc.0.,HM-CC-TC,Wandthermostat (alt),WT,2.SETPOINT,false,false,false,1.TEMPERATURE,false,12,2
                                    javascript.0	2017-11-13 03:28:45.953	info	script.js.Heizungsther_0_81: Routine GetDevices fuer HM Thermostate hm-rpc.0.,HM-CC-TC,Wandthermostat (alt),WT,2.SETPOINT,false,false,false,1.TEMPERATURE,false,12,2
                                    javascript.0	2017-11-13 03:28:45.942	info	script.js.Heizungsther_0_81: Routine GetDevices fuer HM Thermostate hm-rpc.0.,HM-CC-TC,Wandthermostat (alt),WT,2.SETPOINT,false,false,false,1.TEMPERATURE,false,12,2
                                    javascript.0	2017-11-13 03:28:45.930	info	script.js.Heizungsther_0_81: Routine GetDevices fuer HM Thermostate hm-rpc.0.,HM-CC-TC,Wandthermostat (alt),WT,2.SETPOINT,false,false,false,1.TEMPERATURE,false,12,2
                                    javascript.0	2017-11-13 03:28:45.919	info	script.js.Heizungsther_0_81: Routine GetDevices fuer HM Thermostate hm-rpc.0.,HM-CC-TC,Wandthermostat (alt),WT,2.SETPOINT,false,false,false,1.TEMPERATURE,false,12,2
                                    javascript.0	2017-11-13 03:28:45.896	info	script.js.Heizungsther_0_81: Routine GetDevices fuer HM Thermostate hm-rpc.0.,HM-CC-TC,Wandthermostat (alt),WT,2.SETPOINT,false,false,false,1.TEMPERATURE,false,12,2
                                    javascript.0	2017-11-13 03:28:45.881	info	Start javascript script.js.Heizungsther_0_81
                                    javascript.0	2017-11-13 03:28:45.869	info	Stop script script.js.Heizungsther_0_81
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • L
                                      looxer01 last edited by

                                      jap, da hatte ich vergessen einen meiner Datenpunkte bei den Nicht-HM Geräten zu entfernen.

                                      Habe jetzt Version 0.81_2 hochgeladen.

                                      vG Looxer

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        mrMuppet last edited by

                                        Bei mir funktioniert die neue Version immer noch nicht richtig. In den meisten Zimmer klappts anscheinend. Aber im Wohnzimmer wo ein Stellmotor schon regelmäßig Verbindungsprobleme hat, da wird irgendwie auch gar nicht die manuelle Soll-Tempereratur deaktiviert. Obwohl die Gültigkeit mit 11.11. angegeben ist.

                                        Wie kann ich bei der Fehleranalyse helfen?

                                        Edit: Hab auch gerade noch was im log gefunden:

                                        avascript.0	2017-11-14 00:45:00.691	warn	at Object. (script.js.Heizungsther_0_81_2:337:1)
                                        javascript.0	2017-11-14 00:45:00.691	warn	at LoopRooms (script.js.Heizungsther_0_81_2:636:13)
                                        javascript.0	2017-11-14 00:45:00.691	warn	at LoopDevices (script.js.Heizungsther_0_81_2:734:18)
                                        javascript.0	2017-11-14 00:45:00.691	warn	at ManAdjustments (script.js.Heizungsther_0_81_2:1005:9)
                                        javascript.0	2017-11-14 00:45:00.691	warn	at InitilizeManChange (script.js.Heizungsther_0_81_2:1600:5)
                                        javascript.0	2017-11-14 00:45:00.689	warn	Wrong type of javascript.0.Heizung.Heizplan.Kinderzimmer_1.View_Manually_Adjusted: "number". Please fix, while deprecated and will not work in next versions.
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • L
                                          looxer01 last edited by

                                          Hi,

                                          die warnings kommen aus einem Datenpunkt, der statt auf number auf string steht. Bitte Aendere im Object:

                                          javascript.0.Heizung.Heizplan.Kinderzimmer_1.View_Manually_Adjusted: "number". Please fix, while deprecated and will not work in next versions.

                                          Das Format von string auf number.

                                          oder

                                          Wenn du statt der Aenduerng im Objekt das Objekt löschst und das Coding anpasst, dann hat das den gleichen Effekt.

                                          von

                                          createState(State, "init",  {read: true, write: true, type: 'string', name: 'Datum und Zeit der letzten Tempanpassung'  , desc: 'Zeitstempel'});
                                              State =  RoomPath  + "View_Manually_Adjusted";   
                                          
                                          

                                          auf

                                          createState(State, 0,  {read: true, write: true, type: 'number', name: 'Datum und Zeit der letzten Tempanpassung'  , desc: 'Zeitstempel'});
                                              State =  RoomPath  + "View_Manually_Adjusted";   
                                          
                                          

                                          Aber das Problem dürfte woanders herkommen.

                                          bitte checke mal im Raum-View wann das Prorgramm den Raum zuletzt bearbeitet hat. (unten rechts "letzter Programmlauf")

                                          Wenn da kein heutiges Datum steht, dann wird der Raum nicht selektiert.

                                          Auf jeden Fall downloade mal die Objektstruktur für den Raum. (Gehe zu Objekte, selektiere den Raum (unter javascript, heizung etc)

                                          und oben links auf download objektstruktur gehen. Dann als txt datei speichern und per PN an mich. So kann ich gut sehen wie der letzte Stand ist.

                                          Auch würde ein erweitertes log helfen. Also im Programm logging auf true und dann mal einen durchlauf abwarten. Den logauszug dann auch als pn an mich.

                                          Nachdem du den download und logging gemacht hast, bitte auch mal im Raumview die manuelle Temp auf 0 setzen und schauen was passiert.

                                          Die objektstruktur kann ich leider erst am Freitag/Samstag auswerten. Bin unterwegs ohne System.

                                          vG Looxer

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            mrMuppet last edited by

                                            @looxer01:

                                            die warnings kommen aus einem Datenpunkt, der statt auf number auf string steht. Bitte Aendere im Object:

                                            javascript.0.Heizung.Heizplan.Kinderzimmer_1.View_Manually_Adjusted: "number". Please fix, while deprecated and will not work in next versions.

                                            Das Format von string auf number.

                                            … ` Also ich hab die entsprechenden Datenpunkte jetzt mal überall auf Number gestellt. Keine Ahnung wie sich das verstellen kann. Ich war da auf jeden Fall nicht dran.

                                            @looxer01:

                                            bitte checke mal im Raum-View wann das Prorgramm den Raum zuletzt bearbeitet hat. (unten rechts "letzter Programmlauf")

                                            Wenn da kein heutiges Datum steht, dann wird der Raum nicht selektiert. ` Der letzte Durchlauf ist immer nur ein paar Minuten her. Scheint also normal bearbeitet zu werden.

                                            @looxer01:

                                            Auf jeden Fall downloade mal die Objektstruktur für den Raum. (Gehe zu Objekte, selektiere den Raum (unter javascript, heizung etc) und oben links auf download objektstruktur gehen. Dann als txt datei speichern und per PN an mich. So kann ich gut sehen wie der letzte Stand ist.

                                            Auch würde ein erweitertes log helfen. Also im Programm logging auf true und dann mal einen durchlauf abwarten. Den logauszug dann auch als pn an mich.

                                            Nachdem du den download und logging gemacht hast, bitte auch mal im Raumview die manuelle Temp auf 0 setzen und schauen was passiert.

                                            vG Looxer ` wird gemacht.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            949
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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