Navigation

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

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    [Vorlage] Heizungsthermostatsteuerung - Script

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

      Ja es sollen auch noch Fenstersensoren usw dazukommen aber alles IP. Mir gefällt das Design der IP-Geräte einfach besser außerdem scheint es so das für das alte Homematic keine neuen Produkte kommen. Das einzige was ich mir nicht als IP holen werde ist der Access Point da ich nicht komplett von einer Cloud abhängig sein will.

      Was meinst du mit sie mögen keine Lan-Gateways?

      Gruß Torsten

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

        @spoerl.torsten:

        Was meinst du mit sie mögen keine Lan-Gateways? `
        HM-IP Geräte können nur an die CCU angelernt werden.

        Gruß

        Rainer

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

          @looxer01:

          Ja genau. Einmal manuell loeschen

          Gesendet von meinem SM-G935F mit Tapatalk `
          Hallo,

          das kann man leichter pflegen, wenn man den forceCreate-Parameter mit übergibt. Er wird an dritter Stelle, nach Namen und Wert gesetzt. Ich nutze dazu in meinen Scripts eine Boolean-Variable (und nenn sie fC).

          const fC = true;
          createState(State, false,  fC, {read: true, write: true, type: 'number', name: 'Im View manuell eingestellte Temperatur - 0=reset'  , desc: 'Im View manuell eingestellte Temperatur - 0=reset'});
          

          So wird das Objekt bei jedem Neustart des Scrips neu angelegt.

          1 Reply Last reply Reply Quote 0
          • T
            tempestas last edited by

            @pix:

            @looxer01:

            Ja genau. Einmal manuell loeschen

            Gesendet von meinem SM-G935F mit Tapatalk `
            Hallo,

            das kann man leichter pflegen, wenn man den forceCreate-Parameter mit übergibt. Er wird an dritter Stelle, nach Namen und Wert gesetzt. Ich nutze dazu in meinen Scripts eine Boolean-Variable (und nenn sie fC).

            const fC = true;
            createState(State, false,  fC, {read: true, write: true, type: 'number', name: 'Im View manuell eingestellte Temperatur - 0=reset'  , desc: 'Im View manuell eingestellte Temperatur - 0=reset'});
            

            So wird das Objekt bei jedem Neustart des Scrips neu angelegt. `

            Und wieder zeigt sich, dass einfach mal querlesen ohne gezieltes Interesse hilfreich ist. Das Thema Heizungssteuerung ist für mich nicht relevant, aber dieser Post war (wie so häufig) sehr hilfreich 🙂

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

              Hallo Looxer,

              ich habe das Skript installiert und teste gerade. Es ist sehr vielversprechend und genau das, was ich gesucht habe. Vielen Dank für die tolle Arbeit.

              Ich habe die Version 0.76 vom ersten Post in diesem Thread. Da gibt es sicher schon ein neueres. Vielleicht mach es Sinn für Dich, deine großen Skripte auch in Github zu pflegen. Dort kann man leicht auch Veränderungen sehen. Textdateien zum Download im Forum sind dann nicht mehr nötig. Probleme mit inkompatiblen Editoren sind dann gelöst.

              Ich nutze nur ein einen (neuen) HM-Heizkörperregler HM-CC-RT-DN. Der ist im Bad. Also habe ich alle Räume auskommentiert und nur "Bad" übrig" gelassen. In einigen anderen Räumen sind trotzdem "alte" Heizkörperwandthermostate HM-CC-TC zur Temp/Feucht-Anzeige aufgestellt. Sie sind auch dem Gewerk Heizung zugeordnet, das sollte ich ändern, denn sie verursachen viel Müll im Log.

              Für meine Heizungsview habe ich deine Vorlage etwas angepasst. Einige HTML-Widgets, die nur eine Label-Funktion haben, sind überflüssig, da die HTML-Widgets für Wert i.d.R. auch noch HTML-Felder für Text vor und nach dem Wert bieten ("voranstellen HTML" und "HTMLanhängen". Da ich nur einen Regler verwende, habe ich auch einige Daten des Reglers direkt in den Bereich "Status" übernommen (Valvestate, Modus, …). Im Dropdown Minimaltemperatur habe ich die Kommatrennung durch einen Punkt ersetzt (in der Werteliste, Auswirkungen noch nicht getestet). Das würd ich für eine einheitliche Darstellung auch noch bei den Profileinstellungen machen.

              Hier ein Screenshot:

              Den unteren Bereich muss ich noch gestalten. Ich zerbreche mir den Kopf, wie ich den aktuellen Solltemperatur Zeitabschnitt GRAFISCH in VIS darstellen kann... 261_bildschirmfoto_2017-09-21_um_11.10.07.jpg

              Nochmal: Herzlichen Dank für das tolle Skript!

              Viele Grüße

              Pix

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

                @tempestas:

                Und wieder zeigt sich, dass einfach mal querlesen ohne gezieltes Interesse hilfreich ist. Das Thema Heizungssteuerung ist für mich nicht relevant, aber dieser Post war (wie so häufig) sehr hilfreich 🙂 `

                Steht aber auch in der DOku 😄

                https://github.com/ioBroker/ioBroker.ja … reatestate

                Gruß

                Pix

                1 Reply Last reply Reply Quote 0
                • T
                  tempestas last edited by

                  Ja das stimmt.

                  Aber ich bin ja eine Art IT-Dau und habe das in der Doku damals nicht verstanden bzw nicht ausreichend, als dass ich mich getraut hätte, das einzusetzen :lol:

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

                    @pix:

                    Hier ein Screenshot:

                    Den unteren Bereich muss ich noch gestalten. Ich zerbreche mir den Kopf, wie ich den aktuellen Solltemperatur Zeitabschnitt GRAFISCH in VIS darstellen kann… `

                    super Pix,

                    wuerdest du die view zur Verfügung stellen, wenn du fertig damit bist ? Wahrscheinlich muesste ich dann wieder zurückverallgemeinern aber die Darstellung sieht super aus.

                    vG Looxer

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

                      @pix:

                      Ich nutze nur ein einen (neuen) HM-Heizkörperregler HM-CC-RT-DN. Der ist im Bad. Also habe ich alle Räume auskommentiert und nur "Bad" übrig" gelassen. In einigen anderen Räumen sind trotzdem "alte" Heizkörperwandthermostate HM-CC-TC zur Temp/Feucht-Anzeige aufgestellt. Sie sind auch dem Gewerk Heizung zugeordnet, das sollte ich ändern, denn sie verursachen viel Müll im Log. `

                      Der Müll sollte aber nicht vom Heizungsscript kommen, wenn du die Raumtabelle pflegst. In diesem Fall würden auch nur Thermostate und Sensoren für das Bad geladen werden und nicht von anderen Räumen. dazu muss die Variable var UseRoomList = false; auf true gesetzt werden.

                      vG Looxer

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

                        Hallo Looxer,

                        ich kann hier die Widgets zur Verfügung stellen. Die View ist durch "View in Widget" Navigation nicht Export-geeignet. 261_bildschirmfoto_2017-09-21_um_13.17.25.jpg 261_pixwidgetsheizung.txt Die View ist für iPad Landscape ausgelegt. Es sind keine Gruppierungen vorhanden.

                        Ich nutze die Javascript Instanz 1 für die Steuerung. Alle Pfade sind natürlich entsprechend anzupassen.

                        Der Heizplan wird ausgeblendet, wenn das aktive Profil nicht 1 ist (Sichtbarkeit). Evtl. versuche ich noch, einen zweiten Heizplan für ein zweites Profil einzubauen (über Filter).

                        Der Hintergrund "Globale Heizparameter" wird rot, wenn "Heizperiode aktiv" angehakt ist.

                        Das Schlafzimmer-Fenster ist manuell eingefügt, hat nix mit dem Skript zu tun.

                        Boost klappt auch noch nicht 100%ig. Die Boost Funktion startet auch beim Abwählen des Kästchens.

                        Im Script werde ich die Anwesenheit noch mit meiner eigentlichen Anwesenheitsvariable synchronisieren.

                        "Letzter Programmlauf" und iCal Event (nutze ich derzeit nicht) sind noch nicht so richtig untergekommen.

                        Natürlich ließe sich noch mehr mit Warnfarben arbeiten (Batteriespannung sinkt unter Schwellenwert, Ventil zu oder offen, Soll über Ist oder umgekehrt), aber ich will nicht zu viele Bindings einbauen, da die vom Client/iPad und nicht vomioBroker Server generiert werden.

                        Frage: Ist geplant, eine Eingabe für die Endzeit von Urlaub und/oder Party einzubauen?

                        Gruß

                        Pix

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

                          @pix:

                          ich kann hier die Widgets zur Verfügung stellen.

                          ….

                          Frage: Ist geplant, eine Eingabe für die Endzeit von Urlaub und/oder Party einzubauen? `
                          super - Danke Pix. Schaue ich mir an.

                          Zur Frage: das funktioniert jetzt schon mit ICAL Events. Über den Google Kalender geht das super einfach.

                          Da müssen dann nur die Keywörter eingetragen werden und die Party kann beginnen oder enden.

                          vG Looxer

                          Edit: und hier nochmal die einstellbaren Keywords für die globalen Event-Parameter.

                          Wenn also im Google Kalender eines dieser Keywords eigegeben ist, dann wird der Parameter im Script gesetzt.

                          Natürlich muss vorher ICAL aufgesetzt werden und mit dem google Kalender verknüpft werden. Ist aber recht simpel.

                          var EventG_UrlaubAbwesend = "Urlaub_Abwesend";

                          var EventG_UrlaubAnwesend = "Urlaub_Anwesend";

                          var EventG_Party = "Party";

                          var EventG_Gaeste = "Gaeste";

                          var EventG_Abwesend = "Keiner_DA";

                          var EventG_Feiertag = "Feiertag";

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

                            Hallo Looxer,

                            habe die iCal Konfiguration erledigt.

                            ! ```
                            2017-09-21 17:00:16.747 - [32minfo[39m: ical.0 starting. Version 1.3.2 in /Users/pix/Documents/iobroker/node_modules/iobroker.ical, node: v4.8.4 2017-09-21 17:00:16.985 - [32minfo[39m: ical.0 Event "ical.0.events.Urlaub_Abwesend" created 2017-09-21 17:00:16.986 - [32minfo[39m: ical.0 Event "ical.0.events.Urlaub_Anwesend" created 2017-09-21 17:00:16.986 - [32minfo[39m: ical.0 Event "ical.0.events.Party" created 2017-09-21 17:00:16.986 - [32minfo[39m: ical.0 Event "ical.0.events.Gaeste" created 2017-09-21 17:00:16.987 - [32minfo[39m: ical.0 Event "ical.0.events.Keiner_DA" created 2017-09-21 17:00:16.987 - [32minfo[39m: ical.0 Event "ical.0.events.Feiertag" created[/code]
                            261_bildschirmfoto_2017-09-21_um_17.00.04.png
                            Im Skript habe ich die Steuerung eingeschaltet:
                            ~~[code]~~// ICAL Einstellungen (erst nach Ersteinstellung Aktivieren) // Wenn keine Events genutzt werden, dann alles auf false setzen // die Events muessen entsprechend in ICAL angelegt werden, sonst gibt es Warnmeldungen im Log // Die Eventnamen koennen angepasst werden. Bitte die Logkik von ICAL unbeding beachten. (siehe Doku im Kapitel ICAL) var UseEventsGlobalParameter = true; // mit diesen Events koennen Urlaub Party etc geplant werden - Empfehlung erst im zweiten Schritt aktivieren var UseEventsGlobalProfilSelect = false; // Events mit denen das Profil umgeschaltet werden kann - fuer alle Raeume - Empfehlung erst im zweiten Schritt aktivieren var UseEventsRaumProfilSelect = false; // Events mit denen das Profil fuer einzelne Raeume umgeschaltet werden kann - Empfehlung erst im zweiten Schritt aktivieren var EventG_UrlaubAbwesend = "Urlaub_Abwesend"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist var EventG_UrlaubAnwesend = "Urlaub_Anwesend"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist var EventG_Party = "Party"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist var EventG_Gaeste = "Gaeste"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist var EventG_Abwesend = "Keiner_DA"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist var EventG_Feiertag = "Feiertag"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist [/code]
                            ! Klappt leider noch nicht.
                            ! Was fehlt noch?
                            ! Danke.
                            ! Pix

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

                              Hi Pix,

                              wenn ich das richtig sehe, dann sitzen alle Events auf true. Also hast du für alle ein Event geplant, dass jetzt aktiv ist ?

                              Ich habe gerade mal ein event auf true gesetzt und das Programm laufen lassen. Das ging bei mir.

                              Ist dein Programm zwischenzeitlich gelaufen ?

                              Edit: nein, due hast nur die Events eingestellt. Hast du mal ein Event auf true gesetzt in den Objekten ?

                              das ist ja das was passiert, wenn ein Event im Kalender aktuell ist.

                              vG Looxer

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

                                Schön das ihr euch mit den Widgets befasst. 🙂

                                @Pix, danke das du deine zur Verfügung stellst.

                                @Looxer01,

                                mit deinen View´s wird bei mir der VIS-Editor nicht mehr bedienbar.

                                4-5 der Views sind noch ok, aber ich habe 11 Thermostate. Das schafft der Raspi irgendwie nicht mehr.

                                Das geht soweit, dass der Raspi nichtmal mehr über LAN erreichbar ist :shock:

                                Da hilft nur noch Stecker ziehen 😞

                                Könnte das sein bei so vielen Objekten, oder ist da etwas anderes faul?

                                Gruß

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

                                  @Smartuser:

                                  4-5 der Views sind noch ok, aber ich habe 11 Thermostate. `

                                  Ich glaube, dass die Views des Projektes komplett geladen werden.

                                  Ich nehme mal an, dass du Speicherprobleme mit dem Raspi bekommst. (1GB ist eh schon knapp)

                                  Was da helfen kann ist die Views abzuspecken. z.B die Global Parameter raus. Auch die Text Label zu entfernen hilft (wie PIX das gemacht hat)

                                  Vielleicht passt es dann bei dir.

                                  Die Anzahl der Thermostate ist aber egal. Die Anzahl der Räume ist eher entscheidend, da für jeden Raum ein View gebaut wird.

                                  vG Looxer

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

                                    @pix:

                                    Die View ist durch "View in Widget" Navigation nicht Export-geeignet.Bildschirmfoto 2017-09-21 um 13.17.25.jpgpixWidgetsHeizung.txtDie View ist für iPad Landscape ausgelegt. Es sind keine Gruppierungen vorhanden.

                                    I `
                                    Hi Pix,

                                    ich konnte die view nicht importieren. (Rendering Problem) Ich vermute, dass es ein Format issue ist.

                                    Ich musste sogar meines views wieder herstellen (meine back up Strategie ist einfach perfekt ;))

                                    Im notepad++ wird mir auch nur eine Zeile angezeigt. Könntest du die view mit notepad++ bearbeiten und hochladen ?

                                    vG Looxer

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

                                      Hallo,

                                      kurz vom Kinderbett aus [emoji1348]: ist keine View, sind Widgets. Da die View aus dem Screenshot für den Export nicht geeignet ist, habe ich die Widgets exportiert.

                                      Pix

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

                                        na dann, sweet dreams 😉

                                        ja, widgets geht. Allerdings habe ich jetzt alles in hell grau.

                                        Da fehlen wohl noch ein paar view einstellungen ?

                                        vG Looxer

                                        Edit: sieht so aus:
                                        305_pixheizview.jpg

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

                                          Endlich eingeschlafen …

                                          Ja, da fehlt noch der Hintergrund:

                                          background:````
                                          rgb(0, 0, 0) linear-gradient(rgb(69, 72, 77) 0%, rgb(0, 0, 0) 100%) repeat scroll 0% 0% / auto padding-box border-box

                                          -color:
                                          

                                          rgb(0,0,0)

                                          -image:
                                          

                                          linear-gradient(rgb(69, 72, 77) 0%, rgb(0, 0, 0) 100%)

                                          -repeat:
                                          

                                          repeat

                                          -atachement:
                                          

                                          scroll

                                          -position:
                                          

                                          0% 0%

                                          -size:
                                          

                                          auto

                                          -clip
                                          

                                          border-box

                                          -origin
                                          

                                          padding-box

                                          
                                          Ach, mit Screenshot gehts schneller: ![261_bildschirmfoto_2017-09-21_um_22.45.31.jpg](/assets/uploads/files/261_bildschirmfoto_2017-09-21_um_22.45.31.jpg) 
                                          Thema: ui-darkness
                                          
                                          Anmerkung zu den Kalender-Events:
                                          
                                          Es funktioniert :P
                                          
                                          Die Events, die vom iCal-Adapter oder von mir per Hand in Objekte gesetzt werden, werden vom Skript erkannt, sobald der nächste Cronjob das Skript startet. Die Ausführung der Regelung, also zB die Herabsetzung der SOLL-temp erfolgt aber erst beim ZWEITEN Programmdurchlauf. Das ist erstmal nicht schlimm, wenn man es weiß. Es erklärt sich aber nicht von selbst.
                                          
                                          Nach dem ersten Durchlauf wird in````
                                          javascript.1.Heizung.Heizplan.Bad.Source_ICALEvent
                                          ````das ricghtige Event angeziegt. Nach dem zweiten Durchlauf dann in````
                                          javascript.1.Heizung.Heizplan.Bad.Source_Global_Parameter
                                          ````auch der Grund für die nun ausgeführte Änderung.
                                          
                                          Gruß
                                          
                                          Pix
                                          1 Reply Last reply Reply Quote 0
                                          • P
                                            pix last edited by

                                            @looxer01:

                                            @Smartuser:

                                            4-5 der Views sind noch ok, aber ich habe 11 Thermostate. `

                                            Ich glaube, dass die Views des Projektes komplett geladen werden.

                                            Ich nehme mal an, dass du Speicherprobleme mit dem Raspi bekommst. (1GB ist eh schon knapp)

                                            Was da helfen kann ist die Views abzuspecken. z.B die Global Parameter raus. Auch die Text Label zu entfernen hilft (wie PIX das gemacht hat)

                                            Vielleicht passt es dann bei dir.

                                            Die Anzahl der Thermostate ist aber egal. Die Anzahl der Räume ist eher entscheidend, da für jeden Raum ein View gebaut wird.

                                            vG Looxer `
                                            Die Views eins Projektes werden komplett geladen. Um Speicher zu sparen, kannst du natürlich Widgets löschen. Aber dann leidet ja die Bedienbarkeit. Eine weitere Möglichkeit ist die Verschiebung in ein eigenes Projekt. Entweder legst du ein eigenes Heizungsprojekt an oder baust sogar für jeden Thermostat ein eigenes Projekt. Du musst ja eigentlich nicht ständig die Profile verändern. Wenn doch, kannst du dazu das Projekt ach separat aufrufen.

                                            Gruß

                                            Pix

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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