Navigation

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

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorlage] Heizungsthermostatsteuerung 2.1 - Script

    This topic has been deleted. Only users with topic management privileges can see it.
    • MeinzIsAs
      MeinzIsAs @lindi200000 last edited by MeinzIsAs

      @lindi200000

      Hast Du die Gruppe auch zu den Gewerken hinzugefügt?
      Dann könnte die Type auch so etwas wie "HM-CC-VG-1" sein.

      L 1 Reply Last reply Reply Quote 0
      • C
        Conquest @MeinzIsAs last edited by

        @MeinzIsAs sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:

        @Conquest

        Hallo, falls Du noch keine Antwort für dieses Problem hast, du musst wahrscheinlich die Werteliste der Auswahlfelder anpassen. Es muss für jeden Text auch einen passenden Wert geben. Vorsicht bei den Strichpunkten. Keine Leerzeichen dazwischen, sonst funktioniert es nicht.

        Werteliste.PNG

        Hallo ,
        nein hatte noch keine Antwort erhalten.
        So sieht mein Textfeld und Werteliste aus. Was müsste ich da jetzt ändern? Muss dann auch noch was im Script geändert werden?

        screenshot-192.168.178.46-8082-2019.05.06-16-53-07.png screenshot-192.168.178.46-8082-2019.05.06-16-55-25.png

        MeinzIsAs 1 Reply Last reply Reply Quote 0
        • MeinzIsAs
          MeinzIsAs @Conquest last edited by

          @Conquest

          Ganz einfach. Die Werte müssen 1:1 den Texten entsprechen.

          C 1 Reply Last reply Reply Quote 0
          • C
            Conquest @MeinzIsAs last edited by Conquest

            @MeinzIsAs sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:

            @Conquest

            Ganz einfach. Die Werte müssen 1:1 den Texten entsprechen.

            Ok. Verstehe aber trotzdem nicht warum es so nicht funktioniert. Die View ist vom Startpost importiert und ich habe an den Daten nix geändert.
            Außerdem habe ich das in der Anleitung gefunden:

            Temperatureinstellungen im Profil
            Neben dem Wochenplan werden In den Profilparametern Temperatur Anhebungen /Absenkungen
            sowie die Mindesttemperatur eingestellt. Auch ob ein Urlaub Anwesend auf die Feiertagseinstellung des
            Wochenplans zurückgreifen soll, wird im Profil eingestellt.
            Es gibt zwei unterschiedliche Arten von Temperaturen.

            1. Anhebung/Absenkung und zweitens absolute Temperaturangaben. Die
              Anhebungen/Absenkungen haben immer einen Bereich von 0 – +5 und 0 - -5. Somit können
              Anhebungen/Absenkungen auch zum gegenteiligen Ergebnis führen. Es kann also aus einer
              eigentlichen Absenkung eine Anhebung resultieren, wenn eine Minus-Temperatur eingestellt
              wurde. Die Eingabe von 0 heisst, dass weder Anhebung noch Absenkung erfolgen soll.

            2. Absolute Temperaturen haben immer einen Bereich von 12,5 bis 30. Alle Werte unterhalb von
              12,5 werden als Absenkungen vom Thermostat interpretiert (z.B. bei „Fenster-Offen“ für direkt
              verknüpfte Geräte)
              Anmerkung:
              Im View werden Widgets für Zeit und Temperaturen verwendet, die es ermöglichen aus einer
              Auswahlliste von Werten zu selektieren. Dies soll eine Touch-Unterstützung ermöglichen.
              Für Temperaturen enthalten diese Widgets intern eine Wertezuweisung was dazu führt, dass die
              Temperaturen nicht 1:1 in den Datenpunkten gespeichert wird. Falls andere Widgets verwendet werden
              sollen lässt sich das Programm umstellen, so dass keine Umrechnung für Werte Liste erfolgen muss.
              Einstellung im Programm: var VerwendungSelectValue = „true“
              Wenn die Einstellung „true“ ist, dann wird umgerechnet auf die Werteliste. Wenn die Einstellung
              „false“ ist, dann erfolgt keine Umrechnung. Damit können andere Widgets für die Temperaturen
              verwendet werden

            Wenn ich es so mache wie du sagst müsste ich den Datenpunkt im Script auf "false" setzen oder?

            MeinzIsAs 1 Reply Last reply Reply Quote 0
            • MeinzIsAs
              MeinzIsAs @Conquest last edited by

              @Conquest

              Die Werteliste weist bei der Auswahl des Textes den Wert einfach zu. Sprich Text 1 = Wert 1. Die Absenkung/Anhebung ändert nur den Wert, der als Solltemperatur an die CCU geschrieben wird.

              Du kannst die Text- und Werteliste auch bei 12.5 anfangen.

              Sieht dann so aus:
              Texte:
              12,5
              ;13,0
              ;13,5
              usw.

              Werte:
              12.5;13;13.5;usw.

              Achtung die Werte müssen einen Punkt als Dezimalzeichen haben.

              1 Reply Last reply Reply Quote 0
              • N
                nicobob @MeinzIsAs last edited by

                @MeinzIsAs

                Danke für deine Rückmeldung 🙂 Ich bin kurz davor, dass Skript in die Tonne zu kloppen und mich an anderen Beispielen zu bedienen, wobei ich die Funktionalität top finde.

                Typenbezeichnung ist in der CCU: "HMW-Sen-SC-12-DR"
                5c33f776-b238-4614-a4bc-c4cf158058b0-grafik.png

                Fenster habe ich an folgender Stelle im Skript ausgetauscht, wobei ich gerade mal das Skript nach den Begriffen "Verschluss" und "Fenster" durchforstet habe. Soweit ich das verstehe, muss der Begriff nur hier angepasst werden:
                ad4ff503-2c9d-4079-99fd-57a0eb13ada6-grafik.png

                Sonst noch eine Idee oder habe ich etwas falsch gemacht?

                Danke und Gruß
                Nico

                MeinzIsAs 1 Reply Last reply Reply Quote 0
                • Beliar_666
                  Beliar_666 last edited by

                  Moin,
                  Ich hatte diese view samt Script bisher mit der Anwesenheitserkennung über die FritzBox in betrieb. Nun habe ich jedoch keine Fritz mehr. Kann man die Anwesenheitssteuerung auch mittels Radar2 Adapter nuze? Und wenn ja, wie binde ich das hier ein?

                  1 Reply Last reply Reply Quote 0
                  • MeinzIsAs
                    MeinzIsAs @nicobob last edited by

                    @nicobob

                    Sorry, da ich keinen wired Sensor habe, kann ich Dir da auch nicht mehr weiterhelfen. ☹

                    1 Reply Last reply Reply Quote 0
                    • L
                      lindi200000 @MeinzIsAs last edited by

                      @MeinzIsAs sry für die verspätete Antwort, ich habe alles mögliche ausprobiert, aber nichts hat funktioniert. Nun habe ich die Gruppe als nonHM Gerät hinzugefügt und darüber klappt es ohne Probleme.

                      Die Geräte sind die einfache Variante von Silvercrest. Angeschlossen das ganze an einen raspmatic.

                      1 Reply Last reply Reply Quote 0
                      • I
                        iobroker_Alex @Wolf-unterwegs last edited by

                        @Wolf-unterwegs sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:

                        Hallo,

                        habe mir das script und view heruntergeladen, Gewerke und Räume umbenannt (keine Leerzeichen und keine Umlaute), 2 Räume im script aktiviert und das script gestartet.
                        Es wurden auch Datenpunkte angelegt und im Log kommen keine Fehler.
                        Danach habe ich die View (1 Profil) importiert.
                        Dann bekomme ich aber mehrmals die Meldung, "cannot render view HZ_WZ_OG. Invalid settings".
                        Leider kommt dann auch im log nichts dazu.
                        Was könnte da falsch sein?
                        Muss ich vielleicht noch fehlende Widgets laden?

                        Gruß
                        Wolfgang

                        Selbes Problem bei mir! Hast du mittlerweile eine Lösung?

                        1 Reply Last reply Reply Quote 0
                        • I
                          iobroker_Alex last edited by

                          @looxer01: Habe nen Fehler in der aktuellen Version gefunden:

                          Dein Heizungsskript nutze ich ausschließlich für nicht HM Geräte. In meinem Fall: MAX! Radiatoren mit Xiaomi Fensterkontakten. Ich habe im Skript drei Radiatoren mit einem Fensterkontakt angelegt beim Raum: Schlafzimmer und nochmal zwei Radiatoren mit einem Fensterkontakt für das Badezimmer. Die Zeitsteuerung funktioniert normal. Was nicht funktioniert ist das absenken der Temperatur bei geöffnetem Fenster. Und zwar wird nur das Thermostat im definierten Raum abgesenkt, welches als erstes im Skript erwähnt wird. Alle weiteren Thermostate bleiben auf dem Wert gemäß Zeitsteuerung. Fazit: Die Verknüpfung zwischen Nicht HM Fensterkontakten und Nicht HM Thermostaten ist nicht sauber im Skript. Das Skript ist ansonsten der Hammer. Wäre für alle nicht HM-Nutzer super, wenn es weiterentwickelt wird...

                          PS: Der Fehler tritt nur in der aktuellen Version auf. In der Version Version 2.01 vom 31.10.2018 funktioniert es einwandfrei.

                          1 Reply Last reply Reply Quote 0
                          • Beliar_666
                            Beliar_666 last edited by

                            Ich glaube @looxer01 hat dem Forum den Rücken gekehrt, er war seit Februar nicht mehr hier. Wäre ja schön wenn jemand hier weiterentwickeln würde.... 😞

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

                              Noch besser wäre, wenn jemand einen Adapter daraus machen könnte.

                              C 1 Reply Last reply Reply Quote 0
                              • C
                                Conquest @Muchul last edited by

                                @Muchul sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:

                                Noch besser wäre, wenn jemand einen Adapter daraus machen könnte.

                                Hier ist schon was in Planung hoffe ich.
                                https://www.google.com/url?sa=t&source=web&rct=j&url=https://forum.iobroker.net/topic/22579/adapter-heatingcontrol&ved=2ahUKEwi73_ydsMbiAhWwMewKHTsoBbsQFjAAegQIAhAB&usg=AOvVaw1SN_Ipx4vpJA-t60IPuxsQ

                                Das Script läuft bei mir zwar noch aber nicht so richtig rund.

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

                                  Hört sich gut an. Mal abwarten ob sich das auch für andere Thermostate entwickelt.

                                  1 Reply Last reply Reply Quote 0
                                  • A
                                    Angora last edited by

                                    Hey, ich versuche mich auch gerade an dem Skript, komme aber über eine Fehlermeldung nicht hinaus. Weiß einer von euch vielleicht wo die herkommen bzw. wie ich die wieder los werden kann?

                                    21:49:57.196	warn	javascript.0 script.js.common.Heizungssteuerung_1: TypeScript compilation had errors: var fs = require('fs'); // enable write fuer externes log ^ ERROR: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i @types/node`. LoopRooms(); // Ablauflogik entlang der gefundenen Thermostate fuer alle Raeume ^ ERROR: Expected 1 arguments, but got 0. ProfilName = UseEventG_Profil.replace("<ProfilNummer>", i); ^ ERROR: No overload matches this call. The last overload gave the following error. Argument of type 'number' is not assignable to parameter of type '(substring: string, ...args: any[]) => string'. for (var roomName in rooms) { ^ ERROR: Cannot find name 'rooms'. TriggerUpdate(); ^ ERROR: Expected 2 arguments, but got 0. TriggerUpdate(); ^ ERROR: Expected 2 arguments, but got 0. for (var roomName in rooms) { ^ ERROR: Cannot find name 'rooms'. TriggerUpdate(roomName); ^ ERROR: Expected 2 arguments, but got 1. LoopRooms(); ^ ERROR: Expected 1 arguments, but got 0. else if (roomUpdateDelay.all) { // Raum gesetzt aber ein Timeout für alle räume läuft schon, also bleibt es dabei ^ ERROR: Property 'all' does not exist on type '{}'. case "any": subscribeObj.change = "any"; ^ ERROR: Property 'change' does not exist on type '{ id: any; }'. rooms = {}; ^ ERROR: Cannot find name 'rooms'. rooms[roomName] = true; ^ ERROR: Cannot find name 'rooms'. rooms[roomName] = true; ^ ERROR: Cannot find name 'rooms'. for (roomName in rooms) { // suche Sensoren in allen Räumen mit mind einem Kontroll-Gerät ^ ERROR: Cannot find name 'rooms'. for (var d in rooms){ ^ ERROR: Cannot find name 'rooms'. for (roomName in rooms) { // loop ueber all Raeume ^ ERROR: Cannot find name 'rooms'. for (var x in SensorList ) { // loop über all Sensoren des Raumes ^ ERROR: Subsequent variable declarations must have the same type. Variable 'x' must be of type 'any', but here has type 'string'. for (roomName in rooms) { // loop ueber all Raeume ^ ERROR: Cannot find name 'rooms'. for (roomName in rooms) { // loop ueber all Raeume ^ ERROR: Cannot find name 'rooms'. Did you mean 'room'? var ActiveRoomProfile = ActiveProfile(room); // Ermittlung des aktiven Raumprofilsfunction ManAdjustments(room, id) { ^ ERROR: Expected 2 arguments, but got 1. var NewCurrSollTemp = OverruleSollTemp (room,ActiveRoomProfile,SelectSwitchTime (room, ActiveRoomProfile, "CurrSollTemp"),id); // NEU -- ermittellt die aktuell zu erwartende Solltemperatur ^ ERROR: Expected 4 arguments, but got 3. var NewCurrTimeSlot = OverruleSollTemp (room,ActiveRoomProfile,SelectSwitchTime (room, ActiveRoomProfile, "CurrSlot"),id); // NEU -- // NEU -- ermittellt den aktuellen Timeslot für zu erwartende Solltemperatur ^ ERROR: Expected 4 arguments, but got 3. var NextTimeSlot = OverruleSollTemp (room,ActiveRoomProfile,SelectSwitchTime (room, ActiveRoomProfile, "NextSlot"),id); // NEU -- ermittellt den nächsten Timeslot für die nächste zu erwartende Solltemperatur ^ ERROR: Expected 4 arguments, but got 3. var NextSollTemp = OverruleSollTemp (room,ActiveRoomProfile,SelectSwitchTime (room, ActiveRoomProfile, "NextSollTemp"),id); // NEU -- ermittellt die nächste zu erwartende Solltemperatur ^ ERROR: Expected 4 arguments, but got 3. bisSetTimeMilliSek = SelectSwitchTime (room, ActiveRoomProfile, "CurrSlotEnde"); ^ ERROR: Expected 4 arguments, but got 3. ActiveRoomProfile = ActiveProfile(roomName); // Ermittlung des aktiven Raumprofils ^ ERROR: Expected 2 arguments, but got 1. for (var roomCheck in rooms) { // loop ueber all Raeume ^ ERROR: Cannot find name 'rooms'. TriggerUpdate(roomName); ^ ERROR: Expected 2 arguments, but got 1. weekday = DetermineSchedule(room, weekday, RaumProfil); // tatsächlicher weekday wird uebersteuert, wenn ein "WieVortag" vorkommt ^ ERROR: Expected 4 arguments, but got 3. if (!FeiertagMorgenChck& getState(StateFeiertagHeute).val ) { // Heute ist Feiertag ^ ERROR: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. ProfilName = UseEventG_Profil.replace("<ProfilNummer>", i); ^ ERROR: No overload matches this call. The last overload gave the following error. Argument of type 'number' is not assignable to parameter of type '(substring: string, ...args: any[]) => string'.
                                    21:49:57.196	info	javascript.0 script.js.common.Heizungssteuerung_1: Routine GetDevices Devices initialisiert
                                    21:49:57.196	info	javascript.0 script.js.common.Heizungssteuerung_1: registered 0 subscriptions and 0 schedules
                                    21:49:59.208	info	javascript.0 script.js.common.Heizungssteuerung_1: Heizungsscript verarbeitung benutzt Trigger und Events
                                    21:49:59.208	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:365:17)
                                    21:49:59.209	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:373:17)
                                    21:49:59.209	warn	javascript.0 at LoopRooms (script.js.common.Heizungssteuerung_1:791:57)
                                    21:49:59.209	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:433:9)
                                    21:49:59.210	warn	javascript.0 at LoopRooms (script.js.common.Heizungssteuerung_1:792:13)
                                    21:49:59.210	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:433:9)
                                    21:49:59.210	warn	javascript.0 at setOwnState (script.js.common.Heizungssteuerung_1:501:5)
                                    21:49:59.210	warn	javascript.0 at LoopRooms (script.js.common.Heizungssteuerung_1:804:5)
                                    21:49:59.210	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:433:9)
                                    21:49:59.211	warn	javascript.0 at SetEventGlobalParameter (script.js.common.Heizungssteuerung_1:1909:9)
                                    21:49:59.211	warn	javascript.0 at LoopRooms (script.js.common.Heizungssteuerung_1:805:5)
                                    21:49:59.211	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:433:9)
                                    21:49:59.211	warn	javascript.0 at SetEventGlobalParameter (script.js.common.Heizungssteuerung_1:1918:9)
                                    21:49:59.211	warn	javascript.0 at LoopRooms (script.js.common.Heizungssteuerung_1:805:5)
                                    21:49:59.211	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:433:9)
                                    21:49:59.211	warn	javascript.0 at SetEventGlobalParameter (script.js.common.Heizungssteuerung_1:1926:9)
                                    21:49:59.211	warn	javascript.0 at LoopRooms (script.js.common.Heizungssteuerung_1:805:5)
                                    21:49:59.212	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:433:9)
                                    21:49:59.212	warn	javascript.0 at SetEventGlobalParameter (script.js.common.Heizungssteuerung_1:1933:9)
                                    21:49:59.212	warn	javascript.0 at LoopRooms (script.js.common.Heizungssteuerung_1:805:5)
                                    21:49:59.212	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:433:9)
                                    21:49:59.212	warn	javascript.0 at SetEventGlobalParameter (script.js.common.Heizungssteuerung_1:1941:9)
                                    21:49:59.212	warn	javascript.0 at LoopRooms (script.js.common.Heizungssteuerung_1:805:5)
                                    21:49:59.212	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:433:9)
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      MyMeyer last edited by MyMeyer

                                      Hallo zusammen,

                                      wenn ich das Script zum ersten mal startet, bekomme ich diese Fehlermeldung !


                                      javascript.1 2019-10-02 20:37:07.677 info Stop script script.js.Heizung.Heizplan
                                      javascript.1 2019-10-02 20:37:04.475 error at ContextifyScript.Script.runInContext (vm.js:59:29)
                                      javascript.1 2019-10-02 20:37:04.475 error at script.js.Heizung.Heizplan:392:1
                                      javascript.1 2019-10-02 20:37:04.475 error at initializeData (script.js.Heizung.Heizplan:399:5)
                                      javascript.1 2019-10-02 20:37:04.475 error at getDevices (script.js.Heizung.Heizplan:642:20)
                                      javascript.1 2019-10-02 20:37:04.474 error at getEnums (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1569:53)
                                      javascript.1 2019-10-02 20:37:04.474 error TypeError: Cannot read property 'common' of undefined
                                      javascript.1 2019-10-02 20:37:04.474 error ^
                                      javascript.1 2019-10-02 20:37:04.474 error members: (objects[enums[i]].common) ? objects[enums[i]].common.members : [],
                                      javascript.1 2019-10-02 20:37:04.474 error script.js.Heizung.Heizplan: /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1569
                                      javascript.1 2019-10-02 20:37:04.473 info Start javascript script.js.Heizung.Heizplan

                                      Also bis hier geht es und dann ist Schluss ehrlich gesagt weiß ich jetzt auch nicht weiter.


                                      avascript.1 2019-10-02 23:57:00.011 warn at Timer.listOnTimeout (timers.js:290:5)
                                      javascript.1 2019-10-02 23:57:00.010 warn at tryOnTimeout (timers.js:323:5)
                                      javascript.1 2019-10-02 23:57:00.010 warn at ontimeout (timers.js:511:34)
                                      javascript.1 2019-10-02 23:57:00.010 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1888:34)
                                      javascript.1 2019-10-02 23:57:00.010 warn at Object.<anonymous> (script.js.common.Heizplan:431:17)
                                      javascript.1 2019-10-02 23:57:00.010 warn getState "javascript.1.Heizung.Heizplan.GlobaleParameter.ICAL-Events_Aktiv" not found (3)
                                      javascript.1 2019-10-02 23:57:00.009 info script.js.common.Heizplan: Heizungsscript verarbeitung benutzt Trigger und Events
                                      javascript.1 2019-10-02 23:56:58.009 info script.js.common.Heizplan: registered 0 subscriptions and 0 schedules
                                      javascript.1 2019-10-02 23:56:58.008 info script.js.common.Heizplan: Routine GetDevices Devices initialisiert
                                      javascript.1 2019-10-02 23:56:58.008 info script.js.common.Heizplan: Liste der Thermostate in der Control Tabelle
                                      javascript.1 2019-10-02 23:56:57.938 info script.js.common.Heizplan: Gibt es ein zugeordnetes Gerät für den Raum Wohnzimmer wird jetzt ueberprueft

                                      Was ist noch falsch ? 😔

                                      A 1 Reply Last reply Reply Quote 0
                                      • A
                                        Adnim @MyMeyer last edited by

                                        @MyMeyer sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:

                                        javascript.1 2019-10-02 23:57:00.010 warn getState "javascript.1.Heizung.Heizplan.GlobaleParameter.ICAL-Events_Aktiv" not found (3)
                                        javascript.1 2019-10-02 20:37:04.474 error members: (objects[enums[i]].common) ? objects[enums[i]].common.members : [],

                                        da sind noch ein paar sachen nicht richtig angegeben/abgeschaltet? hast du das laut der anleitung gemacht?

                                        alls die Thermostate/Sensoren nicht eingelesen werden, dann gibt es vermutlich Ungereimtheiten beim SetUp der Räume/Gewerke. Es empfiehlt sich folgende Vorgehensweise:

                                        1. Überprüfen, dass die Thermostate / Sensoren in der CCU wirklich den richtigen Gewerken und Räumen zugeordnet sind

                                        2. Überprüfen, dass in den ioBroker Aufzählungen (rooms und functions) die Räume und Gewerke gelistet sind. Irgendwelche $functions oder $rooms sollten nicht auftauchen.

                                        3. Bei Ungereimtheiten in den Aufzählungen könnt ihr versuchen manuell zu korrigieren. Wenn bei den Aufzählungen nur CCU Räume und Gewerke vorhanden sind, dann empfiehlt sich einmal die rooms und functions komplett zu loeschen.

                                        4. nachdem geändert wurde muss der REGA adapter und auch die HM-rpc Adapter neu geladen werden ( bei den Instanzen). Bitte zuerst den REGA Adapter starten und mindestens 30 Sekunden warten. Dann erst die RPC Adapter starten. Falls das nicht klappt bitte ioBroker neu starten

                                        M 1 Reply Last reply Reply Quote 0
                                        • M
                                          MyMeyer @Adnim last edited by MyMeyer

                                          @Adnim sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:

                                          @MyMeyer sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:

                                          javascript.1 2019-10-02 23:57:00.010 warn getState "javascript.1.Heizung.Heizplan.GlobaleParameter.ICAL-Events_Aktiv" not found (3)
                                          javascript.1 2019-10-02 20:37:04.474 error members: (objects[enums[i]].common) ? objects[enums[i]].common.members : [],

                                          da sind noch ein paar sachen nicht richtig angegeben/abgeschaltet? hast du das laut der anleitung gemacht?

                                          alls die Thermostate/Sensoren nicht eingelesen werden, dann gibt es vermutlich Ungereimtheiten beim SetUp der Räume/Gewerke. Es empfiehlt sich folgende Vorgehensweise:

                                          1. Überprüfen, dass die Thermostate / Sensoren in der CCU wirklich den richtigen Gewerken und Räumen zugeordnet sind

                                          2. Überprüfen, dass in den ioBroker Aufzählungen (rooms und functions) die Räume und Gewerke gelistet sind. Irgendwelche $functions oder $rooms sollten nicht auftauchen.

                                          3. Bei Ungereimtheiten in den Aufzählungen könnt ihr versuchen manuell zu korrigieren. Wenn bei den Aufzählungen nur CCU Räume und Gewerke vorhanden sind, dann empfiehlt sich einmal die rooms und functions komplett zu loeschen.

                                          4. nachdem geändert wurde muss der REGA adapter und auch die HM-rpc Adapter neu geladen werden ( bei den Instanzen). Bitte zuerst den REGA Adapter starten und mindestens 30 Sekunden warten. Dann erst die RPC Adapter starten. Falls das nicht klappt bitte ioBroker neu starten

                                          Hi so sieht es aktuell aus.
                                          zu Punkt 1 habe ich bereits mehrmals gemacht. Ist i.o.
                                          zu Punkt 2 Irgendwas mit "$" habe ich nicht in der Auflistung.
                                          zu Punkt 3 Habe ich auch schon gemacht. Alles gelöscht.
                                          zu Punkt 4 IOBroker neustart habe ich bis jetzt nicht gemacht. Das werde ich jetzt noch mal testen. Und mich dann wieder melden mit neuen Infos 🙂 Hoffentlich positiv.
                                          Gewerke:
                                          07ff4238-29c7-4b48-b9f4-81fdc4fe64cb-image.png
                                          Räume:
                                          88a946bd-ad70-4f23-8b1b-158816253617-image.png

                                          [EDIT] So ich habe mein Problem erst mal gefunden. 🙂 Lag an Gewerke ! Dann wollen wir uns mal den Rest anschauen.

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

                                            Hallo zusammen,
                                            erst mal danke an @looxer01 für das super Script.
                                            Leider habe ich ein kleines Problem. Das Script erkennt nu die Heizung in meinem Wohnzimmer.

                                            In meinem Wohnzimmer habe ich ein HmIP-eTRV-2 und im Bad sowie Schlafzimmer je ein HM-CC-RT-DN.

                                            Die Thermostate sin sauber den Räumen und dem Gewerk zugeordnet.

                                            Das Script findet aber nur das Thermostat im Wohnzimmer und legt dafür Datenpunkte an.

                                            Ich hab mir zum testen mal den Programmcode der nach den Thermostaten sucht in ein externes Script gepackt und dort ausgeführt.

                                            var ThermostatTypeTab = [];
                                            ThermostatTypeTab[0]  = ['hm-rpc.1.',  'HM-TC-IT-WM-W-EU', 'Wandthermostat (neu)'       ,'WT',   '2.SET_TEMPERATURE'      ,   false,        '2.MANU_MODE',              true,                  '1.TEMPERATURE',             '2.CONTROL_MODE',           12,                                            0];
                                            ThermostatTypeTab[1]  = ['hm-rpc.1.',  'HM-CC-TC'        , 'Wandthermostat (alt)'       ,'WT',   '2.SETPOINT'             ,   false,        false,                      false,                 '1.TEMPERATURE',              false,                     12,                                            0];
                                            ThermostatTypeTab[2]  = ['hm-rpc.1.',  'HM-CC-RT-DN'     , 'Heizkoerperthermostat(neu)' ,'HT',   '4.SET_TEMPERATURE'      ,   false,        '4.MANU_MODE',              true,                  '4.ACTUAL_TEMPERATURE',      '4.CONTROL_MODE',           12,                                            0];
                                            ThermostatTypeTab[3]  = ['hm-rpc.0.',  'HmIP-eTRV'       , 'Heizkoerperthermostat(HMIP)','IPHT', '1.SET_POINT_TEMPERATURE',   false,        '1.CONTROL_MODE',           false,                 '1.ACTUAL_TEMPERATURE',      '1.CONTROL_MODE',           12,                                            0];
                                            ThermostatTypeTab[4]  = ['hm-rpc.0.',  'HmIP-WTH'        , 'Wandthermostat(HMIP)'       ,'IPWT', '1.SET_POINT_TEMPERATURE',   false,        '1.CONTROL_MODE',           true,                  '1.ACTUAL_TEMPERATURE',      '1.CONTROL_MODE',           12,                                            0];
                                            ThermostatTypeTab[5]  = ['hm-rpc.0.',  'HmIP-WTH-2'      , 'Wandthermostat(HMIP)'       ,'IPWT', '1.SET_POINT_TEMPERATURE',   false,        '1.CONTROL_MODE',           false,                 '1.ACTUAL_TEMPERATURE',      '1.CONTROL_MODE',           12,                                            0];
                                            ThermostatTypeTab[6]  = ['hm-rpc.0.',  'HmIP-STH'        , 'Wandthermostat(HMIP)'       ,'IPWT', '1.SET_POINT_TEMPERATURE',   false,        '1.CONTROL_MODE',           true,                  '1.ACTUAL_TEMPERATURE',      '1.CONTROL_MODE',           12,                                            0];
                                            ThermostatTypeTab[7]  = ['hm-rpc.0.',  'HmIP-STHD'       , 'Wandthermostat(HMIP)'       ,'IPWT', '1.SET_POINT_TEMPERATURE',   false,        '1.CONTROL_MODE',           true,                  '1.ACTUAL_TEMPERATURE',      '1.CONTROL_MODE',           12,                                            0];
                                            ThermostatTypeTab[8]  = ['hm-rpc.0.',  'HmIP-eTRV-2'     , 'Heizkoerperthermostat(HMIP)','IPHT', '1.SET_POINT_TEMPERATURE',   false,        '1.CONTROL_MODE',           false,                 '1.ACTUAL_TEMPERATURE',      '1.CONTROL_MODE',           12,                                            0];
                                            ThermostatTypeTab[9]  = ['hm-rpc.0.',  'HmIP-eTRV-B'     , 'Heizkoerperthermostat(HMIP)','IPHT', '1.SET_POINT_TEMPERATURE',   false,        '1.SET_POINT_MODE',         true,                  '1.ACTUAL_TEMPERATURE',      '1.SET_POINT_MODE',         12,                                            0];
                                            ThermostatTypeTab[10] = ['hm-rpc.0.',  'HmiP-BWTH'       , 'Heizkoerperthermostat(HMIP)','IPWT', '1.SET_POINT_TEMPERATURE',   true,         '1.CONTROL_MODE',           false,                 '1.ACTUAL_TEMPERATURE',      '1.CONTROL_MODE',           12,                                            0];
                                            
                                            var HeizungGewerk           = "Heizung";        //  diesem Gewerk muessen alle Thermostate zugeordnet sein.
                                            
                                            var allRooms = getEnums('rooms');  // Lade alle Raeume
                                            var rooms = {};
                                            
                                            // jetzt Thermostate einlesen
                                            // Lade alle Raeume
                                            for (var i in allRooms) {  // loop ueber alle Raeume
                                                var roomName = allRooms[i].name;
                                            
                                                for (x in ThermostatTypeTab) {
                                                    $('channel[state.id=*.' + ThermostatTypeTab[x][4] + '] (rooms=' + roomName + ') (functions=' + HeizungGewerk + ') ').each(function (id, i) {
                                                        log("Ein Thermostat wurde im Raum " + roomName + " gefunden.");
                                                    });
                                                };
                                            };
                                            

                                            Das ist die Ausgabe davon:

                                            3.10.2019, 12:47:36.836	[info ]: javascript.1 Start javascript script.js.Heizung.Test
                                            3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Badezimmer gefunden.
                                            3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Schlafzimmer gefunden.
                                            3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden.
                                            3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden.
                                            3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden.
                                            3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden.
                                            3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden.
                                            3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden.
                                            3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden.
                                            3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden.
                                            3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: registered 0 subscriptions and 0 schedules
                                            3.10.2019, 12:47:38.253	[info ]: javascript.1 Stop script script.js.Heizung.Test
                                            

                                            Es werden also in jeden Raum Thermostate gefunden.
                                            Ich habe dann im Srcript von @looxer01 nach Zeile 657 mal eine Debug-Ausgabe eingefügt.

                                                for (x in ThermostatTypeTab){  // loop ueber die moeglichen Thermostattypen
                                                        hmrpc = ThermostatTypeTab[x][0];
                                                        devTypeThermTab = ThermostatTypeTab[x][1].toUpperCase();
                                                        StateDP = ThermostatTypeTab[x][4];
                                                        $('channel[state.id=*.' + ThermostatTypeTab[x][4] + '] (rooms=' + roomName + ') (functions=' + HeizungGewerk + ') ').each(function (id, i) {
                                                            log("Ein Thermostat wurde im Raum " + roomName + "gefunden")
                                                            idExtract = id.substr(0,id.length - StateDP.length - 1);
                                                            fullname = getObject(id).common.name;
                                                            devtype = getObject(idExtract).native.TYPE.toUpperCase();
                                            
                                            12:51:48.079	info	javascript.0 Start javascript script.js.Heizung.Heizungssteuerung
                                            12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Gibt es ein zugeordnetes Gerät für den Raum Badezimmer wird jetzt ueberprueft
                                            12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Gibt es ein zugeordnetes Gerät für den Raum Schlafzimmer wird jetzt ueberprueft
                                            12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Gibt es ein zugeordnetes Gerät für den Raum Wohnzimmer wird jetzt ueberprueft
                                            12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden
                                            12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden
                                            12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden
                                            12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden
                                            12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden
                                            12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden
                                            12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Routine getdevice fuer Wohnzimmer
                                            12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Routine GetDevices fuer HM Thermostate Wohnzimmer - hm-rpc.0.,HmIP-eTRV-2,Heizkoerperthermostat(HMIP),IPHT,1.SET_POINT_TEMPERATURE,false,1.CONTROL_MODE,false,1.ACTUAL_TEMPERATURE,1.CONTROL_MODE,12,0
                                            12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden
                                            12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden
                                            

                                            Und siehe da, außer im Raum "Wohnzimmer" wird der Code her nicht ausgeführt.
                                            Hat hier jemand eine Idee?

                                            EDIT:
                                            Ich habe mal das HMIP-Thermostat aus dem Raum "Wohnzimmer" entfernt und dem Raum "Schlafzimmer" hinzugefügt. Jetzt findet das Script im Schlafzimmer das HMIP-Thermostat aber die anderen beiden immer noch nicht.
                                            Scheint wohl irgendwie mit dem Thermostattyp zusammen zu hängen.

                                            Gruß,
                                            dsiggi

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            631
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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