Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. [Vorlage] Variable Zeitsteuerung mit VIS Editor

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    [Vorlage] Variable Zeitsteuerung mit VIS Editor

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

      Neue Version ist hochgeladen. Minuten Inkremente für PopUp View können nun über Variable verändert werden.

      Das Skript und das PopUp View müssten theoretisch neu importiert werden.
      Wer sich auskennt:

      • Im PopUp View muss nur der Verweis auf das neue Objekt angegeben werden, z.B.:
      {javascript.0.Timer.Devices.Editor.DropDownMinutes}
      
      • Im Skript gibt es die neue Variable
      var minIncrement = 5;
      

      und oben die neue Funktion

      // Erstellen des DropDown-Inhalts für Minuten Auswahl in PopUp Editor
      function setMinutesDropDown() {
      	var strDropDown = "";
          for (var i = 0; i < 60; i += minIncrement) {
              var tmp = (i <= 9 ? "0" : "") + i;
              strDropDown += tmp + ";";
          } 
          strDropDown = strDropDown.slice(0, strDropDown.length - 1); // Entfernen letztes Semikolon
          setState("javascript.0.Timer." + path + ".Editor.DropDownMinutes", strDropDown);
      }
      

      Der Aufruf der Funktion erfolgt in main:

      
      function main () {
          var dropDownListe = "";
          var devName;
          var TimerJSON = {};
          var idCounter = 0;
          if (debugLog){stdLog = true;}
          // ConditionJSON wird mit jedem Start neu eingelesen
          createConditionsJSON();
          compareCond();
          setMinutesDropDown();
      // usw...
      
      Glasfaser 1 Reply Last reply Reply Quote 1
      • Glasfaser
        Glasfaser @GiuseppeS last edited by

        @GiuseppeS

        Habe dein Update-Version inkl. PopUp Einstellung durchgeführt . ( Brauchte ich eigentlich nicht , aber bevor ein Fehler vorhanden ist 😎 was eigentlich nicht bei Dir vorkommt 😜 )

        Läuft super … wie zuvor bei meine händischen Änderungen 👍

        1.JPG

        G 1 Reply Last reply Reply Quote 0
        • G
          GiuseppeS @Glasfaser last edited by

          @Glasfaser
          Danke für's Testen 😉

          1 Reply Last reply Reply Quote 0
          • sigi234
            sigi234 Forum Testing Most Active last edited by

            Keine Ahnung ich bekomme es einfach nicht hin.
            Licht schaltet einfach nicht.

            9.9.2019, 21:35:49.681	[warn ]: javascript.0     at script.js.Sigi.Timer_1:197:39
            9.9.2019, 21:35:49.681	[warn ]: javascript.0     at compareCond (script.js.Sigi.Timer_1:196:32)
            9.9.2019, 21:35:49.681	[warn ]: javascript.0     at Object.<anonymous> (script.js.Sigi.Timer_1:467:5)
            9.9.2019, 21:35:54.697	[warn ]: javascript.0     at script.js.Sigi.Timer_1:197:39
            9.9.2019, 21:35:54.697	[warn ]: javascript.0     at compareCond (script.js.Sigi.Timer_1:196:32)
            9.9.2019, 21:35:54.697	[warn ]: javascript.0     at Object.<anonymous> (script.js.Sigi.Timer_1:467:5)
            9.9.2019, 21:35:59.701	[warn ]: javascript.0     at script.js.Sigi.Timer_1:197:39
            9.9.2019, 21:35:59.701	[warn ]: javascript.0     at compareCond (script.js.Sigi.Timer_1:196:32)
            9.9.2019, 21:35:59.701	[warn ]: javascript.0     at Object.<anonymous> (script.js.Sigi.Timer_1:467:5)
            9.9.2019, 21:36:04.703	[warn ]: javascript.0     at script.js.Sigi.Timer_1:197:39
            9.9.2019, 21:36:04.703	[warn ]: javascript.0     at compareCond (script.js.Sigi.Timer_1:196:32)
            9.9.2019, 21:36:04.703	[warn ]: javascript.0     at Object.<anonymous> (script.js.Sigi.Timer_1:467:5)
            9.9.2019, 21:36:09.709	[warn ]: javascript.0     at script.js.Sigi.Timer_1:197:39
            9.9.2019, 21:36:09.709	[warn ]: javascript.0     at compareCond (script.js.Sigi.Timer_1:196:32)
            9.9.2019, 21:36:09.709	[warn ]: javascript.0     at Object.<anonymous> (script.js.Sigi.Timer_1:467:5)
            9.9.2019, 21:36:14.710	[warn ]: javascript.0     at script.js.Sigi.Timer_1:197:39
            9.9.2019, 21:36:14.710	[warn ]: javascript.0     at compareCond (script.js.Sigi.Timer_1:196:32)
            9.9.2019, 21:36:14.710	[warn ]: javascript.0     at Object.<anonymous> (script.js.Sigi.Timer_1:467:5)
            9.9.2019, 21:36:19.715	[warn ]: javascript.0     at script.js.Sigi.Timer_1:197:39
            9.9.2019, 21:36:19.715	[warn ]: javascript.0     at compareCond (script.js.Sigi.Timer_1:196:32)
            9.9.2019, 21:36:19.715	[warn ]: javascript.0     at Object.<anonymous> (script.js.Sigi.Timer_1:467:5)
            9.9.2019, 21:36:20.732	[info ]: javascript.0 Stop script script.js.Sigi.Timer_1
            9.9.2019, 21:36:20.746	[info ]: javascript.0 Start javascript script.js.Sigi.Timer_1
            9.9.2019, 21:36:20.746	[info ]: javascript.0 script.js.Sigi.Timer_1: registered 20 subscriptions and 3 schedules
            9.9.2019, 21:36:21.248	[error]: javascript.0     at createConditionsJSON (script.js.Sigi.Timer_1:176:55)
            9.9.2019, 21:36:21.248	[error]: javascript.0     at Object.main (script.js.Sigi.Timer_1:984:5)
            9.9.2019, 21:36:24.716	[warn ]: javascript.0     at script.js.Sigi.Timer_1:197:39
            9.9.2019, 21:36:24.716	[warn ]: javascript.0     at compareCond (script.js.Sigi.Timer_1:196:32)
            9.9.2019, 21:36:24.716	[warn ]: javascript.0     at Object.<anonymous> (script.js.Sigi.Timer_1:467:5)
            
            Glasfaser G 2 Replies Last reply Reply Quote 0
            • Glasfaser
              Glasfaser @sigi234 last edited by Glasfaser

              @sigi234

              Da muss @GiuseppeS den Fehler eingrenzen. Der Fehler wird von den Bedingungen erzeugt, nur ich frage mich gerade warum !?

              1 Reply Last reply Reply Quote 0
              • G
                GiuseppeS @sigi234 last edited by

                @sigi234

                Falls Du den Haupt-Pfad des Skripts nicht geändert hast, bitte lade die Inhalte folgender Objekte hoch (direkt als code oder txt-Anhang):

                • javascript.0.Timer.Devices.ConditionJSON
                • javascript.0.Timer.Devices.TimerJSON

                Sind in der Aufzählung für die Bedingungen wirklich nur States oder doch Channels? Nur States sind zulässig.

                sigi234 1 Reply Last reply Reply Quote 0
                • sigi234
                  sigi234 Forum Testing Most Active @GiuseppeS last edited by sigi234

                  @GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:

                  @sigi234

                  Falls Du den Haupt-Pfad des Skripts nicht geändert hast, bitte lade die Inhalte folgender Objekte hoch (direkt als code oder txt-Anhang):

                  • javascript.0.Timer.Devices.ConditionJSON
                  • javascript.0.Timer.Devices.TimerJSON

                  Sind in der Aufzählung für die Bedingungen wirklich nur States oder doch Channels? Nur States sind zulässig.

                  javascript.0.Timer.Devices.TimerJSON.json

                  javascript.0.Timer.Devices.ConditionJSON.json

                  Screenshot (4067).png

                  /* ####################################################################### */
                  // Nachfolgende Einträge zwingend anpassen:
                  
                  // Eine Aufzählung für Geräte (z.B. Rollläden) angeben:
                  var deviceEnum = "enum.functions.Licht";
                  
                  // Eine Aufzählung für States der Bedingungen:
                  var deviceCond = "enum.functions.timerconditions";
                  
                  // Widget-Nummer für Widget "Timer bearbeiten" (View in Dialog)
                  var DlgWidget = 'w00311'
                  
                  G 1 Reply Last reply Reply Quote 0
                  • G
                    GiuseppeS @sigi234 last edited by

                    @sigi234
                    Sorry, hatte mich nicht genau ausgedrückt. Ich hätte gern die Inhalte aus den rechts gelb markierten Bereichen:
                    bca041e1-fae8-42e3-98fb-284ee63c871b-image.png

                    Aber vorab: Wann bekommst Du die Fehler? Direkt immer nach Neustart eins unveränderten Skripts? Als Du alles neu importiert hattest und die Konfiguration im Skript oben bzgl. der Aufzählungen durchgeführt hattest, kamen danach nach 2-3 Neustarts schon diese Fehler oder erst nachdem Du innerhalb der Timer in der VIS die Bedingungen verändert hast?

                    Glasfaser sigi234 2 Replies Last reply Reply Quote 0
                    • Glasfaser
                      Glasfaser @GiuseppeS last edited by Glasfaser

                      @GiuseppeS

                      1111111111111111111111.JPG

                      In Timerconditions sind die Aktoren drin !!!!!!!!!!! Das sind doch nicht die Bedingungen ??

                      G sigi234 2 Replies Last reply Reply Quote 0
                      • G
                        GiuseppeS @Glasfaser last edited by

                        @Glasfaser
                        Schon, aber die kann er auch als Bedingungen verwenden... Habe z.B. meine Rollladen Aktoren auch als Bedingungen drin. Weil Soll und Ist Positionen in einem State stehen.

                        @sigi234
                        Ist das so gewollt?

                        1 Reply Last reply Reply Quote 0
                        • sigi234
                          sigi234 Forum Testing Most Active @GiuseppeS last edited by

                          @GiuseppeS sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:

                          @sigi234
                          Sorry, hatte mich nicht genau ausgedrückt. Ich hätte gern die Inhalte aus den rechts gelb markierten Bereichen:
                          bca041e1-fae8-42e3-98fb-284ee63c871b-image.png

                          Aber vorab: Wann bekommst Du die Fehler? Direkt immer nach Neustart eins unveränderten Skripts? Als Du alles neu importiert hattest und die Konfiguration im Skript oben bzgl. der Aufzählungen durchgeführt hattest, kamen danach nach 2-3 Neustarts schon diese Fehler oder erst nachdem Du innerhalb der Timer in der VIS die Bedingungen verändert hast?

                          {"Licht_Vorraum:1.STATE":{"ID":"hm-rpc.1.OEQ0473764.1.STATE","Val":true,"Changed":false},"Philips_hue.Hue_lightstrip_Küche.on":{"ID":"hue.0.Philips_hue.Hue_lightstrip_Küche.on","Val":true,"Changed":true}}
                          
                          {"Licht_Vorraum:1":{"1":{"ObjID":"hm-rpc.1.OEQ0473764.1","DeviceNr":0,"Aktiv":false,"Zeit":"10:00","Std":"10","Min":"00","Sollwert":"100","TageVIS":"täglich","CronTage":"0,1,2,3,4,5,6","Cron":"0 10 * * 0,1,2,3,4,5,6","Astro":"manuell","Random":"0","RandPM":"pm","Offset":"0","OffsetPM":"m","ConditionsNr":"0","ConditionsTrue":true,"Conditions":{"1":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"2":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"3":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""}},"Mo":true,"Di":true,"Mi":true,"Do":true,"Fr":true,"Sa":true,"So":true},"2":{"ObjID":"hm-rpc.1.OEQ0473764.1","DeviceNr":0,"Aktiv":false,"Zeit":"19:00","Std":"19","Min":"00","Sollwert":"0","TageVIS":"täglich","CronTage":"0,1,2,3,4,5,6","Cron":"0 19 * * 0,1,2,3,4,5,6","Astro":"manuell","Random":"0","RandPM":"pm","Offset":"0","OffsetPM":"m","ConditionsTrue":true,"ConditionsNr":"0","Conditions":{"1":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"2":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"3":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""}},"Mo":true,"Di":true,"Mi":true,"Do":true,"Fr":true,"Sa":true,"So":true}},"Steckdose Stehlampe":{"1":{"ObjID":"tuya.0.07200471bcddc28298e0","DeviceNr":2,"Aktiv":false,"Zeit":"10:00","Std":"10","Min":"00","Sollwert":"100","TageVIS":"täglich","CronTage":"0,1,2,3,4,5,6","Cron":"0 10 * * 0,1,2,3,4,5,6","Astro":"manuell","Random":"0","RandPM":"pm","Offset":"0","OffsetPM":"m","ConditionsNr":"0","ConditionsTrue":true,"Conditions":{"1":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"2":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"3":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""}},"Mo":true,"Di":true,"Mi":true,"Do":true,"Fr":true,"Sa":true,"So":true},"2":{"ObjID":"tuya.0.07200471bcddc28298e0","DeviceNr":2,"Aktiv":false,"Zeit":"19:00","Std":"19","Min":"00","Sollwert":"0","TageVIS":"täglich","CronTage":"0,1,2,3,4,5,6","Cron":"0 19 * * 0,1,2,3,4,5,6","Astro":"manuell","Random":"0","RandPM":"pm","Offset":"0","OffsetPM":"m","ConditionsTrue":true,"ConditionsNr":"0","Conditions":{"1":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"2":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"3":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""}},"Mo":true,"Di":true,"Mi":true,"Do":true,"Fr":true,"Sa":true,"So":true}},"Philips_hue":{"1":{"ObjID":"hue.0.Philips_hue","DeviceNr":4,"Aktiv":false,"Zeit":"10:00","Std":"10","Min":"00","Sollwert":"100","TageVIS":"täglich","CronTage":"0,1,2,3,4,5,6","Cron":"0 10 * * 0,1,2,3,4,5,6","Astro":"manuell","Random":"0","RandPM":"pm","Offset":"0","OffsetPM":"m","ConditionsNr":"0","ConditionsTrue":true,"Conditions":{"1":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"2":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"3":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""}},"Mo":true,"Di":true,"Mi":true,"Do":true,"Fr":true,"Sa":true,"So":true},"2":{"ObjID":"hue.0.Philips_hue","DeviceNr":4,"Aktiv":false,"Zeit":"19:00","Std":"19","Min":"00","Sollwert":"0","TageVIS":"täglich","CronTage":"0,1,2,3,4,5,6","Cron":"0 19 * * 0,1,2,3,4,5,6","Astro":"manuell","Random":"0","RandPM":"pm","Offset":"0","OffsetPM":"m","ConditionsTrue":true,"ConditionsNr":"0","Conditions":{"1":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"2":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"3":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""}},"Mo":true,"Di":true,"Mi":true,"Do":true,"Fr":true,"Sa":true,"So":true}},"Stehlampe Wohnzimmer":{"1":{"ObjID":"meross.0.1811161726216929086534298f17edb7","DeviceNr":6,"Aktiv":false,"Zeit":"10:00","Std":"10","Min":"00","Sollwert":"100","TageVIS":"täglich","CronTage":"0,1,2,3,4,5,6","Cron":"0 10 * * 0,1,2,3,4,5,6","Astro":"manuell","Random":"0","RandPM":"pm","Offset":"0","OffsetPM":"m","ConditionsNr":"0","ConditionsTrue":true,"Conditions":{"1":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"2":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"3":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""}},"Mo":true,"Di":true,"Mi":true,"Do":true,"Fr":true,"Sa":true,"So":true},"2":{"ObjID":"meross.0.1811161726216929086534298f17edb7","DeviceNr":6,"Aktiv":false,"Zeit":"19:00","Std":"19","Min":"00","Sollwert":"0","TageVIS":"täglich","CronTage":"0,1,2,3,4,5,6","Cron":"0 19 * * 0,1,2,3,4,5,6","Astro":"manuell","Random":"0","RandPM":"pm","Offset":"0","OffsetPM":"m","ConditionsTrue":true,"ConditionsNr":"0","Conditions":{"1":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"2":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"3":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""}},"Mo":true,"Di":true,"Mi":true,"Do":true,"Fr":true,"Sa":true,"So":true}},"Lights":{"1":{"ObjID":"hue-extended.0.lights","DeviceNr":8,"Aktiv":false,"Zeit":"10:00","Std":"10","Min":"00","Sollwert":"100","TageVIS":"täglich","CronTage":"0,1,2,3,4,5,6","Cron":"0 10 * * 0,1,2,3,4,5,6","Astro":"manuell","Random":"0","RandPM":"pm","Offset":"0","OffsetPM":"m","ConditionsNr":"0","ConditionsTrue":true,"Conditions":{"1":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"2":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"3":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""}},"Mo":true,"Di":true,"Mi":true,"Do":true,"Fr":true,"Sa":true,"So":true},"2":{"ObjID":"hue-extended.0.lights","DeviceNr":8,"Aktiv":false,"Zeit":"19:00","Std":"19","Min":"00","Sollwert":"0","TageVIS":"täglich","CronTage":"0,1,2,3,4,5,6","Cron":"0 19 * * 0,1,2,3,4,5,6","Astro":"manuell","Random":"0","RandPM":"pm","Offset":"0","OffsetPM":"m","ConditionsTrue":true,"ConditionsNr":"0","Conditions":{"1":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"2":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""},"3":{"ConditionStr":"","CondState":"","CondComp":"==","CondValue":""}},"Mo":true,"Di":true,"Mi":true,"Do":true,"Fr":true,"Sa":true,"So":true}}}
                          
                          G 1 Reply Last reply Reply Quote 0
                          • sigi234
                            sigi234 Forum Testing Most Active @Glasfaser last edited by sigi234

                            @Glasfaser sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:

                            In Timerconditions sind die Aktoren drin !!!!!!!!!!!

                            Was gehört dann da rein? Bitte mal einen Screenshot was Ihr drinnen habt.

                            Glasfaser 1 Reply Last reply Reply Quote 0
                            • G
                              GiuseppeS @sigi234 last edited by

                              @sigi234
                              Gerade gesehen, dass keine Bedingungen in deinen Timern aktiv sind, ist das korrekt?
                              Sitze nicht mehr vor dem PC, kann also nicht genauer analysieren. Aber evtl liegt Es zahm den verwendeten Namen der Bedingungen. Versuche die bitte so zu ändern, dass keine Punkte in den Namen vorkommen.

                              1 Reply Last reply Reply Quote 0
                              • Glasfaser
                                Glasfaser @sigi234 last edited by

                                @sigi234

                                Das sind meine Bedingungen :
                                1.JPG

                                Das meine Rollladen im EG

                                2.JPG

                                sigi234 1 Reply Last reply Reply Quote 0
                                • sigi234
                                  sigi234 Forum Testing Most Active @Glasfaser last edited by

                                  @Glasfaser

                                  hm-rpc.1	2019-09-09 23:14:00.026	error	xmlrpc -> setValue: no dpType for hm-rpc.1.OEQ0473764.1!
                                  javascript.0	2019-09-09 23:14:00.008	info	script.js.Sigi.Timer_1: Timer: Licht_Vorraum:1 (An)
                                  javascript.0	2019-09-09 23:13:27.153	info	script.js.Sigi.Timer_1: Schedule "Licht_Vorraum:1 #1": 1 | 14 23 * * 0,1,2,3,4,5,6 | hm-rpc.1.OEQ0473764.1 | true
                                  javascript.0	2019-09-09 23:13:27.153	info	script.js.Sigi.Timer_1: Schedule für "Licht_Vorraum:1 #1" erstellen:
                                  
                                  Glasfaser 1 Reply Last reply Reply Quote 0
                                  • Glasfaser
                                    Glasfaser @sigi234 last edited by Glasfaser

                                    @sigi234

                                    111111111111111111111111111111111.JPG

                                    .
                                    Du musst ein State oder Level (je nach Aktor ) in die Aufzählung ziehen .

                                    sigi234 1 Reply Last reply Reply Quote 0
                                    • sigi234
                                      sigi234 Forum Testing Most Active @Glasfaser last edited by

                                      @Glasfaser sagte in [Vorlage] Variable Zeitsteuerung mit VIS Editor:

                                      @sigi234

                                      111111111111111111111111111111111.JPG

                                      .
                                      Du musst ein State oder Level (je nach Aktor ) in die Aufzählung ziehen .

                                      Hab ich ja gemacht:

                                      Screenshot (4069).png

                                      Glasfaser 1 Reply Last reply Reply Quote 0
                                      • Glasfaser
                                        Glasfaser @sigi234 last edited by

                                        @sigi234

                                        Nochmal :

                                        in den Timerconditions gehören nur Bedingungen rein nichts zum schalten bzw. was du schalten willst .

                                        Die Aktoren die du schalten willst gehören in :

                                        1.JPG

                                        sigi234 1 Reply Last reply Reply Quote 0
                                        • sigi234
                                          sigi234 Forum Testing Most Active @Glasfaser last edited by

                                          @Glasfaser

                                          Ich gebe auf.

                                          Glasfaser 1 Reply Last reply Reply Quote 0
                                          • Glasfaser
                                            Glasfaser @sigi234 last edited by

                                            @sigi234

                                            OK … ich weiß jetzt nicht warum … aber kein Problem ☺

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            886
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            template vis
                                            47
                                            919
                                            202029
                                            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