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

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorlage] Heizungsthermostatsteuerung - Script

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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
                • L
                  looxer01 last edited by

                  Danke Pix,

                  ein paar Anpassungen muss ich noch machen.

                  sieht jetzt so aus:

                  305_pixheizview.jpg

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

                    @pix:

                    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 `
                    Pix,

                    die Idee mit dem separaten Projekt hatte ich gestern auch noch.

                    Aber auch da kommt es ab 6 Views zu abstürzen.

                    Eigentlich ist das etwas seltsam, da ich in meinem Hauptprojekt schon 20 Views habe, welche keinerlei Probleme verursachen.

                    Gruß

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

                      Hallo,

                      pro Heizplan sind es ja schon rund 100 Widgets. Bei 6 ähnlichen Views bist du insgesamt bei vielleicht 700 Widgets. Das braucht schon etwas power.

                      Pix

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

                        Hallo,

                        ich habe noch ein Frage zum Skript:

                        Ich möchte nur einen Thermostat in einem Raum (Bad) steuern. Dazu habe ich die RoomList eingeschaltet und "Bad" eingetragen.````
                        var UseRoomList = true; // Wenn testmodus werden nur die Angegebenen Raeume abgearbeitet
                        var RoomList = [];
                        RoomList[0] = ['Bad']; // Liste der Raeume die gesteuert werden soll zum Testen
                        /*RoomList[1] = ['Schlafzimmer'];
                        RoomList[2] = ['Wohnzimmer'];
                        RoomList[3] = ['Kueche'];
                        RoomList[4] = ['Flur'];
                        RoomList[5] = ['Kinderzimmer'];
                        RoomList[6] = ['WC'];
                        RoomList[7] = ['Raum7'];
                        RoomList[8] = ['Raum8'];
                        RoomList[9] = ['Raum9'];
                        */

                        Die Gewerke sind auch eingestellt:
                        

                        //Das Gewerk muss alle Thermostate bzw Sensoren enhalten
                        var HeizungGewerk = "Heizung"; // diesem Gewerk muessen alle Thermostate zugeordnet sein.
                        var SensorGewerk = "Verschluss"; // diesem Gewerk muessen alle Verschlusssensoren zugeordnet sein.

                        
                        Jetzt stelle ich fest, dass das Skript Geräte abarbeitet/überwacht, die nicht in dem eingestellten Raum sind, wohl aber zu den Gewerken gehören. Das möchte ich nicht! Es soll nur die RaumListe beachtet werden. Also es soll das Gewerk stimmen UND die RaumListe.
                        
                        Mein geplanter Workaround: Dieses eine Thermostat einem weiteren Gewerk zuordnen, das nur für dieses Skript erstellt wird (zB __Looxer_Heizung__).
                        
                        ****Frage: Willst du das Skript anpassen?****
                        
                        Es werden derzeit alle dem Gewerk __Verschluss__ zugeordneten Sensoren überwacht. Ich erhalte nämlich ständig warn-Meldungen im Log, die langsam nerven :-D
                        
                        >! ```
                        `2017-09-27 10:56:01.459  - [32minfo[39m: host.MacMini.local instance system.adapter.tankerkoenig.0 terminated with code 0 (OK)
                        2017-09-27 10:56:33.142  - [33mwarn[39m: javascript.1 State "javascript.1.Heizung.Heizplan.Küche.Source_Profil" not found
                        2017-09-27 10:56:33.142  - [32minfo[39m: javascript.0 script.js.common.Status.Status_Fenster_Tueren: Waschraum Tür (TFK) geöffnet
                        2017-09-27 10:56:33.143  - [33mwarn[39m: javascript.1     at SensorChange (script.js.Test.Test_HeizungLooxer:725:4)
                        2017-09-27 10:56:33.143  - [33mwarn[39m: javascript.1     at Object. <anonymous>(script.js.Test.Test_HeizungLooxer:501:25)
                        2017-09-27 10:56:33.143  - [33mwarn[39m: javascript.1 State "javascript.1.Heizung.Heizplan.Küche.Source_TimeStamp" not found
                        2017-09-27 10:56:33.145  - [33mwarn[39m: javascript.1     at LoopDevices (script.js.Test.Test_HeizungLooxer:593:27)
                        2017-09-27 10:56:33.145  - [33mwarn[39m: javascript.1     at SensorChange (script.js.Test.Test_HeizungLooxer:733:1)
                        2017-09-27 10:56:33.145  - [33mwarn[39m: javascript.1     at Object. <anonymous>(script.js.Test.Test_HeizungLooxer:501:25)
                        2017-09-27 10:56:41.411  - [33mwarn[39m: javascript.1 State "javascript.1.Heizung.Heizplan.Küche.Source_Profil" not found
                        2017-09-27 10:56:41.412  - [32minfo[39m: javascript.0 script.js.common.Status.Status_Fenster_Tueren: Waschraum Tür (TFK) geschlossen
                        2017-09-27 10:56:41.412  - [33mwarn[39m: javascript.1     at SensorChange (script.js.Test.Test_HeizungLooxer:725:4)
                        2017-09-27 10:56:41.412  - [33mwarn[39m: javascript.1     at Object. <anonymous>(script.js.Test.Test_HeizungLooxer:501:25)
                        2017-09-27 10:56:41.412  - [33mwarn[39m: javascript.1 State "javascript.1.Heizung.Heizplan.Küche.Source_TimeStamp" not found
                        2017-09-27 10:56:41.413  - [33mwarn[39m: javascript.1     at LoopDevices (script.js.Test.Test_HeizungLooxer:593:27)
                        2017-09-27 10:56:41.414  - [33mwarn[39m: javascript.1     at SensorChange (script.js.Test.Test_HeizungLooxer:733:1)
                        2017-09-27 10:56:41.414  - [33mwarn[39m: javascript.1     at Object. <anonymous>(script.js.Test.Test_HeizungLooxer:501:25)[/code]</anonymous></anonymous></anonymous></anonymous>``~~[code]~~2017-09-27 11:04:11.727  - [33mwarn[39m: javascript.1 State "javascript.1.Heizung.Heizplan.Flur.Source_Profil" not found
                        2017-09-27 11:04:11.734  - [32minfo[39m: javascript.0 script.js.common.Raum.Flur.Flur_Wohnungstuer_offen_Nachricht: Wohnungstür: Fenster-auf-Timer gestartet (-5min)
                        2017-09-27 11:04:11.729  - [33mwarn[39m: javascript.1     at SensorChange (script.js.Test.Test_HeizungLooxer:725:4)
                        2017-09-27 11:04:11.730  - [33mwarn[39m: javascript.1     at Object. <anonymous>(script.js.Test.Test_HeizungLooxer:501:25)
                        2017-09-27 11:04:11.730  - [33mwarn[39m: javascript.1 State "javascript.1.Heizung.Heizplan.Flur.Source_TimeStamp" not found
                        2017-09-27 11:04:11.731  - [33mwarn[39m: javascript.1     at LoopDevices (script.js.Test.Test_HeizungLooxer:593:27)
                        2017-09-27 11:04:11.731  - [33mwarn[39m: javascript.1     at SensorChange (script.js.Test.Test_HeizungLooxer:733:1)
                        2017-09-27 11:04:11.731  - [33mwarn[39m: javascript.1     at Object. <anonymous>(script.js.Test.Test_HeizungLooxer:501:25)
                        2017-09-27 11:04:11.732  - [33mwarn[39m: javascript.1 State "javascript.1.Heizung.Heizplan.Flur.Source_Profil" not found
                        2017-09-27 11:04:11.733  - [33mwarn[39m: javascript.1     at SensorChange (script.js.Test.Test_HeizungLooxer:725:4)
                        2017-09-27 11:04:11.733  - [33mwarn[39m: javascript.1     at Object. <anonymous>(script.js.Test.Test_HeizungLooxer:501:25)
                        2017-09-27 11:04:11.733  - [33mwarn[39m: javascript.1 State "javascript.1.Heizung.Heizplan.Flur.Source_TimeStamp" not found
                        2017-09-27 11:04:11.735  - [33mwarn[39m: javascript.1     at LoopDevices (script.js.Test.Test_HeizungLooxer:593:27)
                        2017-09-27 11:04:11.735  - [33mwarn[39m: javascript.1     at SensorChange (script.js.Test.Test_HeizungLooxer:733:1)
                        2017-09-27 11:04:11.735  - [33mwarn[39m: javascript.1     at Object. <anonymous>(script.js.Test.Test_HeizungLooxer:501:25)[/code]</anonymous></anonymous></anonymous></anonymous>`
                        >! Gruß
                        >! Pix[/code]
                        ```
                        1 Reply Last reply Reply Quote 0
                        • L
                          looxer01 last edited by

                          @pix:

                          Frage: Willst du das Skript anpassen? `
                          Hi Pix,

                          das sollte nicht so sein. Die Raumliste nutze ich zwar nicht (eben nur zu Testzwecken) aber für Fälle wie deiner ist sie hillfreich.

                          Daher schaue ich mir das an. Es gibt eine zentrale Stelle, da werden die Steuerungstabellen geladen und die enthalten alle Geräte. Das passiert nur beim Start des Scripts und nicht alle x Minuten des schedules. Sollte also nicht so schwierig sein.

                          Allein die Zeit ist im Moment etwas knapp. Bekomme ich aber hin am WE, denke ich

                          edit: ich habe gerade gesehen, dass ich die Tabellen doch fülle. Dann muss ich doch intensiver schauen

                          vG Looxer

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

                            Hi Pix,

                            könntest du mal folgendes testen ? :

                            im bereich des Kommentars // jetzt thermostate einlesen

                            die folgende Zeile ersezten

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

                            durch

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

                            vG Looxer

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

                              Hallo Looxer,

                              das hat keine Änderung gebracht.

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

                              Kommentarbereich // Verschluss sensoren einlesen und subscription buchen

                              statt

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

                              lieber

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

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

                              Dann gings (nach dem ersten Eindruck :-D)

                              Pix

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

                                @pix:

                                Kommentarbereich // Verschluss sensoren einlesen und subscription buchen

                                statt `

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

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

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

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

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

                                Vielen Dank

                                vG Looxer

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

                                  Ah, verstehe.

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

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

                                  Pix

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

                                    @looxer01

                                    ich habe kleine Frage zur Heizperiode.

                                    In deiner Anleitung steht:
                                    ` > Heizperiode

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

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

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

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

                                    Ich vermute hier:

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

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

                                    Gruß

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

                                      @Smartuser:

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

                                      Hi,

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

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

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

                                      im Standard auf 12 Grad.

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

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

                                      Edit:

                                      also konkret zu deiner Frage

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

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

                                      vG Looxer

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

                                        @looxer01:

                                        Edit:

                                        also konkret zu deiner Frage

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

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

                                        vG Looxer `

                                        Danke Dir.

                                        … funktioniert 🙂

                                        Das Script ist der Hammer. 8-)

                                        Gruß

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

                                          Hallo zusammen,

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

                                          Beste Grüße

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

                                            @00chaos:

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

                                            Hi,

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

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

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

                                            vG Looxer

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            772
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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