Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. SONOFF NSPanel mit Lovelace UI

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

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

    SONOFF NSPanel mit Lovelace UI

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

      @armilar
      So in etwa habe ich es nun auch gemacht.

      Wäre es nicht eine Idee das ganze in dein Script mit einer Funktion zu implementieren, welche unter den 0_userdata zwei Variablen anlegt?
      So könnte man sich ein zweites Script sparen.
      Hier mal mein Beispiel:

      var Debug = false;
      const NSPanel_Path = '0_userdata.0.NSPanel.Fitness.';
      
      createStateAsync(NSPanel_Path + "Buttons.POWER1", false, { type: 'boolean' });
      createStateAsync(NSPanel_Path + "Buttons.POWER2", false, { type: 'boolean' });
      
      
      
      
      function set_power_relays(relayNumber,relayStatus) {
          try {
              if (Debug) {
                  console.log('Setting Power Relay '+relayNumber);
              }
              request({
                  //url: `http://${get_current_tasmota_ip_address()}/cm?cmnd=`+relayNumber+` `+relayStatus,
                  url: `http://192.168.2.102/cm?cmnd=`+relayNumber+` `+relayStatus,
                  headers: {
                      'User-Agent': 'ioBroker'
                  }
              });
          } catch (err) {
              console.warn('error setting Powerbutton' + err.message);
          }
      }
      
      
      on({id: NSPanel_Path + "Buttons.POWER1", change: 'any'}, function (dp) { 
          if(dp.state.val === true){
              set_power_relays('POWER1','ON');
          } else {
              set_power_relays('POWER1','OFF');
          }
          
      });
      on({id: NSPanel_Path + "Buttons.POWER2", change: 'any'}, function (dp) { 
          if(dp.state.val === true){
              set_power_relays('POWER2','ON');
          } else {
              set_power_relays('POWER2','OFF');
          }
          
      });
      

      Vielleicht gleich sogar noch automatisch den Alias mit erstellen dass es auch ein Switch ist und in anderen Scripten ausgewertet werden kann.

      Nur so ne Idee ...

      Armilar 2 Replies Last reply Reply Quote 0
      • Armilar
        Armilar Most Active Forum Testing @Peoples last edited by

        @peoples sagte in SONOFF NSPanel mit Lovelace UI:

        als Anfänger (wie ich einer bin)

        dbe8a797-fad1-436c-be24-56c1653ea5ea-image.png

        Ja - nee - ist klar 😉 (war gestern auf der Piste, darum auch etwas weniger Traffic...)

        1 Reply Last reply Reply Quote 0
        • Armilar
          Armilar Most Active Forum Testing @Peoples last edited by Armilar

          @peoples

          Ja, könnte man ins Auge fassen um die Relais dann mitbenutzen zu können... Irgendwie gehören die ja auch zum Panel. Ich sehe mir das mal an, auch hinsichtlich der fehlenden Buttons / Relais in der Emulation.

          Könnte dann noch eine Abfrage rein, ob in der Tasmota Config Relay 1 und 2 gesetzt sind. Aber sieht schonmal gut aus.

          Peoples 1 Reply Last reply Reply Quote 0
          • Peoples
            Peoples @Armilar last edited by

            @armilar
            Auf jeden Fall ein geiles Projekt 👍

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

              @peoples

              😊 dankeschön...

              1 Reply Last reply Reply Quote 0
              • Armilar
                Armilar Most Active Forum Testing @Peoples last edited by

                @peoples

                Was hältst du denn davon:

                //switch Relays 1 + 2 with DP's
                async function Init_Relays() {
                    if (existsState(NSPanel_Path + 'Relay.1') == false ||
                        existsState(NSPanel_Path + 'Relay.2') == false) {
                        await createStateAsync(NSPanel_Path + 'Relay.1', true, { type: 'boolean' });
                        await createStateAsync(NSPanel_Path + 'Relay.2', true, { type: 'boolean' });
                    }
                }
                Init_Relays();
                
                on({id: [].concat(String(NSPanel_Path) + 'Relay.1').concat(String(NSPanel_Path) + 'Relay.2'), change: "ne"}, async function (obj) {
                    try {
                        require("request")((['http://',get_current_tasmota_ip_address(),'/cm?cmnd=Power',(obj.common ? obj.common.name : ""),' ',(obj.state ? obj.state.val : "")].join(''))).on("error", function (err) {console.error(err.message);});
                    } catch (err) { 
                        console.warn(err.message); 
                    }
                });
                

                Spart den zweiten Trigger und die IP wird sowieso ermittelt

                Fehlt dann quasi nur der Sync mit den physischen Tasten

                1 Reply Last reply Reply Quote 0
                • Armilar
                  Armilar Most Active Forum Testing @Peoples last edited by Armilar

                  @peoples

                  //create switch Relays 1 + 2 with DP's
                  async function Init_Relays() {
                      if (existsState(NSPanel_Path + 'Relay.1') == false ||
                          existsState(NSPanel_Path + 'Relay.2') == false) {
                          await createStateAsync(NSPanel_Path + 'Relay.1', true, { type: 'boolean' });
                          await createStateAsync(NSPanel_Path + 'Relay.2', true, { type: 'boolean' });
                      }
                  }
                  Init_Relays();
                  
                  //Relay-DP's werden geschaltet --> Physische Relays werden geschaltet
                  on({id: [].concat(String(NSPanel_Path) + 'Relay.1').concat(String(NSPanel_Path) + 'Relay.2'), change: "ne"}, async function (obj) {
                      try {
                          require("request")((['http://',get_current_tasmota_ip_address(),'/cm?cmnd=Power',(obj.common ? obj.common.name : ""),' ',(obj.state ? obj.state.val : "")].join(''))).on("error", function (err) {console.error(err.message);});
                      } catch (err) { 
                          console.warn(err.message); 
                      }
                  });
                  
                  //physische Button werden gedrückt und synchronisieren Relay-DP's
                  on({id: [].concat(config.mrIcon1ScreensaverEntity.ScreensaverEntity).concat(config.mrIcon2ScreensaverEntity.ScreensaverEntity), change: "ne"}, async function (obj) {
                      if (obj.id.substring(0,4) == 'mqtt') {
                          let Button = obj.id.split('.'); 
                          if (getState(NSPanel_Path + 'Relay.' + Button[Button.length - 1].substring(5,6)).val != obj.state.val) {
                              await setStateAsync(NSPanel_Path + 'Relay.' + Button[Button.length - 1].substring(5,6), obj.state.val == 'ON' ? true : false);
                          }
                      }
                  });
                  

                  Ich denke das wars. Falls du Lust auf einen Test hast... gerne ...

                  Peoples 1 Reply Last reply Reply Quote 0
                  • Peoples
                    Peoples @Armilar last edited by

                    @armilar
                    Hi, nein funktioniert nicht, wenn die HW-Tasten gedrückt werden wird der Status gesetzt.
                    Aber wenn man den Status setzt ziehen die Relais nicht an.

                    Hier mal ein log der zeile 14:

                    script.js.Wandtablet.NS-Panel_Fitness: http://192.168.2.102/cm?cmnd=Power0_userdata.0.NSPanel.Fitness.Relay.1 false
                    

                    irgendwie scheint es dass common.name nicht richtig auflöst. Muss jetzt leider mal weg, aber kann später mal suchen.

                    Armilar 2 Replies Last reply Reply Quote 0
                    • Armilar
                      Armilar Most Active Forum Testing @Peoples last edited by

                      @peoples

                      hmm - interessant. Liefert bei mir ordentlich 1 oder 2. So hätte ich es auch erwartet.

                      Bin gespannt was herauskommt...

                      1 Reply Last reply Reply Quote 0
                      • Armilar
                        Armilar Most Active Forum Testing @Peoples last edited by Armilar

                        @peoples

                        03d322fd-8f8c-44bf-a79e-6e156003f404-image.png

                        Ergebnis aus Zeile 3:

                        on({id: [].concat(String(NSPanel_Path) + 'Relay.1').concat(String(NSPanel_Path) + 'Relay.2'), change: "ne"}, async function (obj) {
                            try {
                                console.log(((['http://',get_current_tasmota_ip_address(),'/cm?cmnd=Power',(obj.common ? obj.common.name : ""),' ',(obj.state ? obj.state.val : "")].join(''))));
                                require("request")((['http://',get_current_tasmota_ip_address(),'/cm?cmnd=Power',(obj.common ? obj.common.name : ""),' ',(obj.state ? obj.state.val : "")].join(''))).on("error", function (err) {console.error(err.message);});
                            } catch (err) { 
                                console.warn(err.message); 
                            }
                        });
                        

                        und schaltet auch beide Relais über Datenpunkte...

                        D Peoples 2 Replies Last reply Reply Quote 0
                        • D
                          danny_v1 @Armilar last edited by

                          @armilar Ich könnte Dank deiner Hilfe schon wirklich viel mit dem Panel umsetzen (läuft ja zur Zeit noch im nextion Editor) das richtige Panel ist noch original, bis ich fertig bin mit der Konfiguration. Also danke noch Mal für den super Support!
                          Das Lovelace ist echt richtig gut geworden und eine echte Bereicherung.

                          Ist schon abzusehen ob und wann eine Seite für wled kommt?

                          Und was noch sehr wünschenswert wäre ein zweiter auswählbarer screensaver mit wichtigen Infos. Der screensaver mit Uhr und Wetter sieht echt gut aus aber fände es echt super wenn es einen zweiten optionalen geben würde mit Infos wie zb welche Fenster sind offen, wer ist anwesend, welche Geräte haben einen geringen Akkustand, welche Lampen sind an. Das wäre echt eine feine Sache!

                          Armilar 1 Reply Last reply Reply Quote 0
                          • Armilar
                            Armilar Most Active Forum Testing @danny_v1 last edited by Armilar

                            @danny_v1 sagte in SONOFF NSPanel mit Lovelace UI:

                            Ist schon abzusehen ob und wann eine Seite für wled kommt?

                            Hab sie mir eben angesehen und denke es wird nicht mehr lange dauern. Dennoch hatten wir mit 5000 Codezeile ja erst Bergfest und da kommen auch noch weitere coole Gimmicks. Schätze so etwa 2 Wochen...

                            Und was noch sehr wünschenswert wäre ein zweiter auswählbarer screensaver mit wichtigen Infos. Der screensaver mit Uhr und Wetter sieht echt gut aus aber fände es echt super wenn es einen zweiten optionalen geben würde mit Infos wie zb welche Fenster sind offen, wer ist anwesend, welche Geräte haben einen geringen Akkustand, welche Lampen sind an. Das wäre echt eine feine Sache!

                            Dafür bin ich leider nicht zuständig 😉 Das Design liegt bei @joBr99
                            Wenn es jedoch interessant ist, dann könntest du es in einem kleinen beschreibenden Issue auf github mit ihm diskutieren.

                            1 Reply Last reply Reply Quote 0
                            • Peoples
                              Peoples @Armilar last edited by

                              @armilar
                              also ich habe es eben nochmal ganz unten im Script angefügt und da bekomme ich folgende Ausgabe:

                              2022-11-15 23:08:57.277 - info: javascript.0 (400696) script.js.Wandtablet.NS-Panel_Fitness: http://192.168.2.102/cm?cmnd=Power0_userdata.0.NSPanel.Fitness.Relay.1 false
                              2022-11-15 23:09:02.107 - info: javascript.0 (400696) script.js.Wandtablet.NS-Panel_Fitness: http://192.168.2.102/cm?cmnd=Power0_userdata.0.NSPanel.Fitness.Relay.2 false
                              2022-11-15 23:09:06.481 - info: javascript.0 (400696) script.js.Wandtablet.NS-Panel_Fitness: http://192.168.2.102/cm?cmnd=Power0_userdata.0.NSPanel.Fitness.Relay.1 true
                              2022-11-15 23:09:08.192 - info: javascript.0 (400696) script.js.Wandtablet.NS-Panel_Fitness: http://192.168.2.102/cm?cmnd=Power0_userdata.0.NSPanel.Fitness.Relay.1 false
                              2022-11-15 23:09:14.769 - info: javascript.0 (400696) script.js.Wandtablet.NS-Panel_Fitness: http://192.168.2.102/cm?cmnd=Power0_userdata.0.NSPanel.Fitness.Relay.1 true
                              2022-11-15 23:09:21.999 - info: javascript.0 (400696) script.js.Wandtablet.NS-Panel_Fitness: http://192.168.2.102/cm?cmnd=Power0_userdata.0.NSPanel.Fitness.Relay.1 false
                              

                              Und Schalten tut nix. Oder hat die Position etwas mit der Funktion zu tun

                              Armilar 1 Reply Last reply Reply Quote 0
                              • Armilar
                                Armilar Most Active Forum Testing @Peoples last edited by Armilar

                                @peoples

                                Nein die Postion ist egal. Habe es etwas höher, jedoch wäre die Position egal. Würde mich mal interessieren ob du bei einem anderen Trigger oder auch Datenpunkt an common.name kommst

                                Welche node.js hast du?

                                Peoples 1 Reply Last reply Reply Quote 0
                                • Meister-x
                                  Meister-x last edited by

                                  wow ..echt super
                                  darf ich als Anfänger eine Frage.. besser eine Bitte loswerden?
                                  Würde gerne den screensaver über einen externen Bewegungsmelder (Homematic) von dunkel auf hell schalten ,wenn ich ins Bad gehe.
                                  Gibt es dazu eine Möglichkeit ?
                                  Daaaaanke

                                  T K 2 Replies Last reply Reply Quote 0
                                  • W
                                    Wuschl last edited by

                                    Guten Abend, ich bekomme diese Fehlermeldungen und finde nicht warum. Was ist der Fehler?

                                    16.11.2022, 20:36:30.073	[warn ]: javascript.0 (806)     at HandleScreensaverUpdate (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:4658:29)
                                    16.11.2022, 20:36:30.074	[warn ]: javascript.0 (806)     at Object.<anonymous> (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:888:13)
                                    16.11.2022, 20:36:30.074	[warn ]: javascript.0 (806)     at step (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:33:23)
                                    16.11.2022, 20:36:30.074	[warn ]: javascript.0 (806)     at Object.next (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:14:53)
                                    16.11.2022, 20:36:30.074	[warn ]: javascript.0 (806)     at script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:8:71
                                    16.11.2022, 20:36:30.075	[warn ]: javascript.0 (806)     at __awaiter (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:4:12)
                                    16.11.2022, 20:36:30.075	[warn ]: javascript.0 (806)     at Object.<anonymous> (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:885:12)
                                    16.11.2022, 20:36:30.079	[warn ]: javascript.0 (806)     at HandleScreensaverUpdate (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:4665:34)
                                    16.11.2022, 20:36:30.079	[warn ]: javascript.0 (806)     at Object.<anonymous> (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:888:13)
                                    16.11.2022, 20:36:30.080	[warn ]: javascript.0 (806)     at step (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:33:23)
                                    16.11.2022, 20:36:30.080	[warn ]: javascript.0 (806)     at Object.next (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:14:53)
                                    16.11.2022, 20:36:30.080	[warn ]: javascript.0 (806)     at script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:8:71
                                    16.11.2022, 20:36:30.081	[warn ]: javascript.0 (806)     at __awaiter (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:4:12)
                                    16.11.2022, 20:36:30.085	[warn ]: javascript.0 (806)     at Object.<anonymous> (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:885:12)
                                    16.11.2022, 20:36:30.089	[warn ]: javascript.0 (806)     at HandleScreensaverUpdate (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:4679:29)
                                    16.11.2022, 20:36:30.089	[warn ]: javascript.0 (806)     at Object.<anonymous> (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:888:13)
                                    16.11.2022, 20:36:30.090	[warn ]: javascript.0 (806)     at step (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:33:23)
                                    16.11.2022, 20:36:30.090	[warn ]: javascript.0 (806)     at Object.next (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:14:53)
                                    16.11.2022, 20:36:30.090	[warn ]: javascript.0 (806)     at script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:8:71
                                    16.11.2022, 20:36:30.091	[warn ]: javascript.0 (806)     at __awaiter (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:4:12)
                                    16.11.2022, 20:36:30.091	[warn ]: javascript.0 (806)     at Object.<anonymous> (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:885:12)
                                    16.11.2022, 20:36:30.095	[warn ]: javascript.0 (806)     at HandleScreensaverUpdate (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:4686:34)
                                    16.11.2022, 20:36:30.096	[warn ]: javascript.0 (806)     at Object.<anonymous> (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:888:13)
                                    16.11.2022, 20:36:30.096	[warn ]: javascript.0 (806)     at step (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:33:23)
                                    16.11.2022, 20:36:30.097	[warn ]: javascript.0 (806)     at Object.next (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:14:53)
                                    16.11.2022, 20:36:30.097	[warn ]: javascript.0 (806)     at script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:8:71
                                    16.11.2022, 20:36:30.098	[warn ]: javascript.0 (806)     at __awaiter (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:4:12)
                                    16.11.2022, 20:36:30.098	[warn ]: javascript.0 (806)     at Object.<anonymous> (script.js.Papa-Garagen.NS-Panel-Paps-3_5_0_5:885:12)
                                    

                                    Bei dem anderen Panel diese

                                    16.11.2022, 20:39:41.087	[warn ]: javascript.0 (806)     at script.js.Ns-Panels.Garage-3_5_0_5:1335:46
                                    16.11.2022, 20:39:41.087	[warn ]: javascript.0 (806)     at step (script.js.Ns-Panels.Garage-3_5_0_5:33:23)
                                    16.11.2022, 20:39:41.087	[warn ]: javascript.0 (806)     at Object.next (script.js.Ns-Panels.Garage-3_5_0_5:14:53)
                                    16.11.2022, 20:39:41.087	[warn ]: javascript.0 (806)     at fulfilled (script.js.Ns-Panels.Garage-3_5_0_5:5:58)
                                    16.11.2022, 20:40:01.621	[warn ]: javascript.0 (806)     at HandleScreensaverUpdate (script.js.Ns-Panels.Garage-3_5_0_5:4700:29)
                                    16.11.2022, 20:40:01.621	[warn ]: javascript.0 (806)     at HandleScreensaver (script.js.Ns-Panels.Garage-3_5_0_5:4330:5)
                                    16.11.2022, 20:40:01.622	[warn ]: javascript.0 (806)     at HandleMessage (script.js.Ns-Panels.Garage-3_5_0_5:1825:21)
                                    16.11.2022, 20:40:01.622	[warn ]: javascript.0 (806)     at Object.<anonymous> (script.js.Ns-Panels.Garage-3_5_0_5:1762:17)
                                    16.11.2022, 20:40:01.623	[warn ]: javascript.0 (806)     at HandleScreensaverUpdate (script.js.Ns-Panels.Garage-3_5_0_5:4707:34)
                                    16.11.2022, 20:40:01.623	[warn ]: javascript.0 (806)     at HandleScreensaver (script.js.Ns-Panels.Garage-3_5_0_5:4330:5)
                                    16.11.2022, 20:40:01.624	[warn ]: javascript.0 (806)     at HandleMessage (script.js.Ns-Panels.Garage-3_5_0_5:1825:21)
                                    16.11.2022, 20:40:01.624	[warn ]: javascript.0 (806)     at Object.<anonymous> (script.js.Ns-Panels.Garage-3_5_0_5:1762:17)
                                    16.11.2022, 20:40:01.626	[warn ]: javascript.0 (806)     at HandleScreensaverUpdate (script.js.Ns-Panels.Garage-3_5_0_5:4721:29)
                                    16.11.2022, 20:40:01.627	[warn ]: javascript.0 (806)     at HandleScreensaver (script.js.Ns-Panels.Garage-3_5_0_5:4330:5)
                                    16.11.2022, 20:40:01.627	[warn ]: javascript.0 (806)     at HandleMessage (script.js.Ns-Panels.Garage-3_5_0_5:1825:21)
                                    16.11.2022, 20:40:01.627	[warn ]: javascript.0 (806)     at Object.<anonymous> (script.js.Ns-Panels.Garage-3_5_0_5:1762:17)
                                    16.11.2022, 20:40:01.629	[warn ]: javascript.0 (806)     at HandleScreensaverUpdate (script.js.Ns-Panels.Garage-3_5_0_5:4728:34)
                                    16.11.2022, 20:40:01.629	[warn ]: javascript.0 (806)     at HandleScreensaver (script.js.Ns-Panels.Garage-3_5_0_5:4330:5)
                                    16.11.2022, 20:40:01.629	[warn ]: javascript.0 (806)     at HandleMessage (script.js.Ns-Panels.Garage-3_5_0_5:1825:21)
                                    16.11.2022, 20:40:01.629	[warn ]: javascript.0 (806)     at Object.<anonymous> (script.js.Ns-Panels.Garage-3_5_0_5:1762:17)
                                    
                                    Armilar 1 Reply Last reply Reply Quote 0
                                    • T
                                      TT-Tom @Meister-x last edited by TT-Tom

                                      Fehler post

                                      Meister-x 1 Reply Last reply Reply Quote 0
                                      • K
                                        Kuckuckmann @Meister-x last edited by

                                        @meister-x

                                        Hi,

                                        willkommen im Forum 🙂

                                        Wenn Du einen Bewegungsmelder am ioBroker angeschlossen hast und die Datenpunkte in einem Skript verarbeiten kannst, kannst Du darüber den Datenpunkt vom NSPanel bzgl. Screensaver beeinflussen.

                                        LG

                                        1 Reply Last reply Reply Quote 0
                                        • Meister-x
                                          Meister-x @TT-Tom last edited by

                                          @tt-tom
                                          Servus,
                                          was meinst damit ?

                                          T 1 Reply Last reply Reply Quote 0
                                          • T
                                            TT-Tom @Meister-x last edited by

                                            @meister-x

                                            ich hatte diesen Post,
                                            https://forum.iobroker.net/post/889863

                                            ist aber nicht genau was du wolltest. Darum Fehlpost

                                            Meister-x Armilar 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            882
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            lovelace ui nspanel sonoff
                                            260
                                            7128
                                            4288750
                                            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