Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. [Vorstellung] Meine zweite Visualisierung

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorstellung] Meine zweite Visualisierung

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

      @Kuddel

      Also meine Version ist 4.1.16.

      Ansonsten passen die Versionen soweit auch:
      b1d2b5b0-c9ad-4e5a-b5cd-e13ff3a6e2e9-image.png

      Ich habe gestern Abend aber mal den iobroker komplett neu gestartet. Die Adapter leuchtet jetzt "grün". In den Logs sind auch keine Fehlermeldung mehr zu erkennen. - Keine Ahnung an was es gelegen haben soll.

      In der VIS ist die Rollo-Steuerung und Astro-Steuerung auch wieder da und die Rollos sind auch um 19:45 heruntergefahren:

      895ab94f-66a9-425b-8d0c-cb09477a31f6-image.png

      Ich beobachte das mal die nächsten Tage intensiv und berichte dann. - Dir vielen Dank für drüber schauen!👍

      D 2 Replies Last reply Reply Quote 0
      • S
        Sven_hh @Kuddel last edited by

        @Kuddel

        Hallo an alle, Hallo Kuddel,

        erstmal meinen größten Respekt für deine Visualisierung. Ich finde das ist schon eine der Besten VIS die ich bisher gesehen habe. Ich hab mir die VIS auch mal importiert. Aber ehrlich gesagt erschlägt es mich als Anfänger mit den ganzen Seiten und Skripten ( von den ich keine Ahnung habe ). Ich würde mich ja schon über deine Startseite freuen die ich dann mit meinen Daten füttern kann und das dann läuft. Ist so etwas möglich nur deine Startseite zu Importieren?

        Noch mal eine kleine frage am Rande an alle hier im Forum. Vom Homematic Forum kenne ich die Funktion eine PM an jemanden zu senden. Gibt es diese Funktion hier auch?

        Ich hoffe ich habe mit diesem Text jetzt keine Regel gebrochen. Falls ja seht es mir bitte nach 🙂

        VG aus dem Sonnigen HH. Sven

        K 1 Reply Last reply Reply Quote 0
        • Negalein
          Negalein Global Moderator last edited by Negalein

          @Kuddel

          Servus

          Ich hab gerade ein komisches Phänomen!

          Deine Scripte hab ich mit meinen zusammengeführt und wieder importiert.
          Hat gleich funktioniert.

          Aber jetzt hab ich 2 Scripte von meinen, die nicht mehr funktionieren.

          var timeout;
           
          on(
              {id: "vis.0.control.data", change: "ne"} ,
                  function (obj){
                     // Nach 5 Minuten, zeige wieder index View
              (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
              timeout = setTimeout(function () {
                setState("vis.0.control.command", '{"instance": "353.6043", "command": "changeView", "data": "001_Home"}');
              }, 300000);
              
           
          });
          
          /*******************************************************************************
           * ---------------------------
           * Pin-Schutz für VIS-View
           * ---------------------------
           * Autor: Mic
           * Change Log
           *  - 0.2 - Fix: 0 on keypad was not recognized
           *  - 0.1 - initial version
           * Support: https://forum.iobroker.net/viewtopic.php?f=30&t=19871
           ******************************************************************************/
          
          /*******************************************************************************
           * Konfiguration
           ******************************************************************************/
          const STATE_PATH = 'javascript.' + instance + '.' + 'visViewPinSperre.';
          
          const LOGGING = true;         // Detaillierte Ausgabe im Log. Falls keine Probleme, dann auf false setzen.
          
          
          /*******************************************************************************
           * Konfiguration: Views
           ******************************************************************************/
          // Es können beliebig mehr Views hinzugefügt oder auf eine limitiert werden, bitte aber Aufbau beibehalten!
          const PIN_VIEWS = [
            {
              name:       '041_Energie',        // Name der View, zu der bei Erfolg gewechselt werden soll
              project:    'main',            // VIS-Projekt, in dem die View ist, für den Viewwechsel bei Erfolg. Wert bekommt man u.a.: Vis -> Menü: Setup > Projekte (den Namen des jeweilgen Projektes nehmen)
              instance:   '353.6043',      // Funktioniert bei mir (und einigen anderen) immer mit 'FFFFFFFF', ansonsten Wert vom Vis, Menü Tools, Feld "Instanz ID" nehmen
              pin:        '2901',          // Pin          
            },
          ];
          
          
          /**********************************************************************************************************
           ++++++++++++++++++++++++++++ Ab hier nichts mehr ändern / Stop editing here! ++++++++++++++++++++++++++++
           *********************************************************************************************************/
          
          
          /*******************************************************************************
           * Globale Variablen
           *******************************************************************************/
          // Array, pro View ein Element
          var G_LastKeyPressed = [];      // Letzte Taste, die gedrückt wurde
          var G_PinBufferKeys = [];       // Puffer für eingegebene Ziffern
          var G_PinBufferWildcards = [];  // Für Vis-Anzeigefeld der Pineingabe, füllt sich mit "*" nach jeder Zifferneingabe
          
          /*******************************************************************************
           * Executed on every script start.
           *******************************************************************************/
          init();
          function init() {
           
              // Create states
              createScriptStates();
          
              // 1. Initialize global variables
              // 2. Reset for each view
              setTimeout(function(){
                  for (let i = 0; i < PIN_VIEWS.length; i++) {
                      // Initialize global variables
                      G_LastKeyPressed[PIN_VIEWS[i].name] = '';
                      G_PinBufferKeys[PIN_VIEWS[i].name] = '';
                      G_PinBufferWildcards[PIN_VIEWS[i].name] = '';        
                      // Reset für jede View durchführen
                      resetPin(PIN_VIEWS[i].name)
                  }
              }, 3000);
          
              // Main Script starten, 5 Sekunden nach State-Generierung
              setTimeout(main, 5000);
          
          }
          
          /*******************************************************************************
           * Haupt-Skript
           *******************************************************************************/
          function main() {
          
              // Überwacht das Tastenfeld in VIS für jede View
              for (var i = 0; i < PIN_VIEWS.length; i++) {
                  on({id: STATE_PATH + PIN_VIEWS[i].name + '.CurrentKey', change: "any"}, function (obj) {
                      var currView = obj.id.substr(STATE_PATH.length).split(".")[0]; // get View Name simply from obj.id
                      if(LOGGING) if(obj.state.val !== '') log('Eingabe über Tastenfeld: ' + obj.state.val + ', Viewname: ' + currView);
                      switch(obj.state.val) {
                          case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9:
                              G_LastKeyPressed[currView] = obj.state.val;
                              userEnteredNumber(currView);
                              break;
                          case 'Enter':   // Der User hat die Pin-Eingabe bestätigt.
                              checkEnteredPin(currView);
                              break;
                          case 'Reset':
                              resetPin(currView);
                              break;
                          default:
                              //None
                      } 
                  });
              }
          
          }
          
          
          /********************************
           * Create States
           ********************************/
          function createScriptStates() {
              for (let i = 0; i < PIN_VIEWS.length; i++) {
                  createState(STATE_PATH + PIN_VIEWS[i].name + '.CurrentKey', {'name':'Mit Tasten aus VIS setzen', 'type':'string', 'read':true, 'write':false, 'role':'info', 'def':'' });
                  createState(STATE_PATH + PIN_VIEWS[i].name + '.WrongPinEntered', {'name':'Pin-Fehler', 'type':'boolean', 'read':true, 'write':false, 'role':'info'});
                  createState(STATE_PATH + PIN_VIEWS[i].name + '.PinWildcards', {'name':'Sterne (*) für VIS-Anzeige', 'type':'string', 'read':true, 'write':false, 'role':'info', 'def':'' });
              }
          }
          
          
          /********************************
           * Wird ausgeführt, sobald der User eine Nummer im Tastenfeld eingibt.
           * @param {string}   viewName     Name der View
           *********************************/
          function userEnteredNumber(viewName) {
              G_PinBufferKeys[viewName] = G_PinBufferKeys[viewName] + G_LastKeyPressed[viewName];
              G_PinBufferWildcards[viewName] = G_PinBufferWildcards[viewName] + ' *';
              setState(STATE_PATH + viewName + '.PinWildcards', G_PinBufferWildcards[viewName]);
          }
          
          /********************************
           * Wird ausgeführt, sobald der User E für "Enter" eingibt
           * @param {string}   viewName     Name der View
           ********************************/
          function checkEnteredPin(viewName) {
              if (G_PinBufferKeys[viewName] == getPresetElement(viewName, 'pin')) {
                  if(LOGGING) log('Pin-Eingabe erfolgreich, View [' + viewName + ']');
                  onSuccess(viewName);
                  setTimeout(function() { resetPin(viewName) }, 3000);    // Reset nach 3 Sekunden
              } else {
                  if(LOGGING) log('Falschen Pin eingegeben, View [' + viewName + ']');
                  setState(STATE_PATH + viewName + '.WrongPinEntered', true);
                  resetPin(viewName);
              }
          }    
          
          /********************************
           * Reset
           * @param {string}   viewName     Name der View
           ********************************/
          function resetPin(viewName) {
              if(LOGGING) log('Reset Pin, View-Name: [' + viewName + ']');
              G_PinBufferWildcards[viewName] = '';
              G_PinBufferKeys[viewName] = '';
              setState(STATE_PATH + viewName + '.CurrentKey', '');
              setState(STATE_PATH + viewName + '.PinWildcards', '');
              setStateDelayed(STATE_PATH + viewName + '.WrongPinEntered', false, 3000); // Erst nach 3 Sekunden, für VIS-Anzeige
          }
          
          /********************************
           * Wird bei erfolgreicher Pin-Eingabe ausgeführt
           * @param {string}   viewName     Name der View
           ********************************/
          function onSuccess(viewName){
              // Change View
              setState("vis.0.control.instance", getPresetElement(viewName, 'instance'));
              setState("vis.0.control.data",     getPresetElement(viewName, 'project') + '/' + viewName);
              setState("vis.0.control.command",  'changeView');
          }
          
          
          /********************************
           * Gibt Elemente von PIN_VIEWS zurück
           * @param {string}   viewName     Name of the view
           * @param {string}   key          'project', 'instance', 'pin'
           * @return {string}  Content of the element, e.g. the Pin "1234" for element 'pin'
           ********************************/
          function getPresetElement(viewName, key) {
              var keyEntry = '';
              for (let i = 0; i < PIN_VIEWS.length; i++) {
                  if (PIN_VIEWS[i].name === viewName) {
                      keyEntry = PIN_VIEWS[i][key]
                  }
              }
              return keyEntry;
          }
          

          Hat es mir durch das importieren was durcheinander geschmissen?

          K 1 Reply Last reply Reply Quote 0
          • K
            Kuddel @Sven_hh last edited by

            @Sven_hh mit ein wenig Aufwand kann man nur die Startseite zur Verfügung stellen.

            Aber alleine die Startseite setzt sich auch aus 15 einzelnen Seiten zusammen.

            Da ist es dann deutlich einfacher das die ganze VIS zu importieren.

            1 Reply Last reply Reply Quote 0
            • K
              Kuddel @Negalein last edited by

              @Negalein die Vermtutung liegt nahe, dass dabei irgendetwas durchgewürfelt wurde

              Negalein 1 Reply Last reply Reply Quote 0
              • Negalein
                Negalein Global Moderator @Kuddel last edited by

                @Kuddel sagte in [Vorstellung] Meine zweite Visualisierung:

                @Negalein die Vermtutung liegt nahe, dass dabei irgendetwas durchgewürfelt wurde

                dann mach ich besser einen eigenen Thread zu dem Problem auf.

                Laut Log vom PIN-Script erkennt er den PIN nicht.

                K 1 Reply Last reply Reply Quote 0
                • K
                  Kuddel @Negalein last edited by

                  @Negalein ja ist besser.

                  Vllt. hat sich im Skript iwo ein Fehler eingeschlichen oder so...

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

                    Deine VIS ist echt super geworden. Ich hätte nur eine Frage, wie hast du diese Striche unter dem Text hinbekommen?
                    strich.JPG
                    Danke dir im voraus

                    sigi234 1 Reply Last reply Reply Quote 0
                    • A
                      Annuit20 last edited by

                      Seit langer Zeit noch mal ins Forum geschaut und direkt im ersten Post den ich lese ein Dankeschön. Das ist richtig toll!

                      Bitte und viel Spaß. Diesen Winter wird nochmal gebastelt und ich komme hoffentlich dazu mal eine mobile Version zu erstellen.

                      Gruß

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

                        @Paan83 sagte in [Vorstellung] Meine zweite Visualisierung:

                        Deine VIS ist echt super geworden. Ich hätte nur eine Frage, wie hast du diese Striche unter dem Text hinbekommen?
                        strich.JPG
                        Danke dir im voraus

                        Widget:

                        [{"tpl":"tplHtml","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis.0/Wetter_Sigi/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis.0/Wetter_Sigi/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis.0/Wetter_Sigi/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"name":"Linie Links Mondstatus","filterkey":"Linie"},"style":{"left":"1025px","top":"90px","width":"80px","height":"3px","background":"linear-gradient(to right, #282828 5px, white 200px )","z-index":"3"},"widgetSet":"basic"},{"tpl":"tplHtml","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis.0/Wetter_Sigi/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis.0/Wetter_Sigi/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis.0/Wetter_Sigi/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"name":"Linie Rechts Mondstatus","filterkey":"Linie"},"style":{"left":"1105px","top":"90px","width":"80px","height":"3px","background":"linear-gradient(to left, #282828 5px, white 200px )","z-index":"3"},"widgetSet":"basic"}]
                        
                        P 1 Reply Last reply Reply Quote 1
                        • P
                          Paan83 @sigi234 last edited by

                          @sigi234 Hey, danke für deine schnelle Antwort, ich habe das Widget importiert, bei mir sieht es aber folgendermaßen aus:
                          strich.JPG
                          Fehlt mir veilleicht noch ein Adapter?

                          A 1 Reply Last reply Reply Quote 0
                          • A
                            Annuit20 @Paan83 last edited by

                            @Paan83 sagte in [Vorstellung] Meine zweite Visualisierung:

                            @sigi234 Hey, danke für deine schnelle Antwort, ich habe das Widget importiert, bei mir sieht es aber folgendermaßen aus:
                            strich.JPG
                            Fehlt mir veilleicht noch ein Adapter?

                            Versucht mal diese:

                            [{"tpl":"tplHtml","data":{"g_fixed":true,"g_visibility":true,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"name":"Line-1"},"style":{"left":"407px","top":"371px","background":"linear-gradient(to right, #212121 20px, White 200px )","height":"2px","width":"125px","z-index":"30"},"widgetSet":"basic"}]
                            
                            [{"tpl":"tplHtml","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"","name":"Linie-2"},"style":{"left":"259px","top":"340px","background":"linear-gradient(to left, #212121 20px, White 200px )","height":"2px","width":"125px","z-index":"30"},"widgetSet":"basic"}]
                            

                            P 1 Reply Last reply Reply Quote 0
                            • P
                              Paan83 @Annuit20 last edited by

                              @Annuit20 Leider genau das selbe Ergebnis.
                              Das sind ja einfache Basic html Widgets. Mit welchen Einstellungen kann man die bearbeiten, dass sie so spitz nach aussen zulaufen?
                              Sorry für die fragerei, aber ich bin noch in der Lernphase...
                              Danke euch

                              K 1 Reply Last reply Reply Quote 0
                              • K
                                Kuddel @Paan83 last edited by

                                @Paan83 auf Seite 1 stehen alle benötigten Adapter:

                                Damit alles korrekt dargestellt wird, müssen folgende Widgets installiert sein:
                                408591b8-7148-4efd-8e50-c6c93f1caa07-grafik.png

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

                                  Mir haben noch zwei Adapter gefehlt, ich habe diese installiert und erneut versucht das Widget zu importieren, aber leider immer noch das gleiche Ergebnis

                                  Röstkartoffel 1 Reply Last reply Reply Quote 0
                                  • Röstkartoffel
                                    Röstkartoffel @Paan83 last edited by

                                    @Paan83
                                    Kannst du uns bitte mal einen größeren Ausschnitt mit dem beiden Widgets zeigen?
                                    Diese sind nämlich auch vom Hintergrund abhängig, um spitz nach aus auszusehen.

                                    P 1 Reply Last reply Reply Quote 0
                                    • P
                                      Paan83 @Röstkartoffel last edited by

                                      @Röstkartoffel aber klar, ich habe einfach mal den Hintergrund Schwarz, Grau und Weiss gemacht!!
                                      Test1.JPG
                                      test2.JPG
                                      test3.JPG
                                      (Dies ist mein Testview, bitte nicht wundern wegen der Unordnung 😬 )

                                      K 1 Reply Last reply Reply Quote 0
                                      • K
                                        Kuddel @Paan83 last edited by

                                        @Paan83 du weißt, dass es immer zwie Linien sind ?

                                        eine linke und eine rechte ?

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

                                          @Kuddel sagte in [Vorstellung] Meine zweite Visualisierung:

                                          @Paan83 du weißt, dass es immer zwie Linien sind ?

                                          eine linke und eine rechte ?

                                          Der Verlauf wird unter CCS Hintergrund gesteuert!

                                          linear-gradient(to left, #282828 5px, white 200px )
                                          
                                          K 1 Reply Last reply Reply Quote 1
                                          • K
                                            Kuddel @sigi234 last edited by

                                            @sigi234 ja stimmt

                                            1bf6ea5e-e1c4-41b8-be42-eb5b1672377d-grafik.png

                                            linear-gradient(to right, #212121 20px, White 200px )
                                            
                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            693
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            template vis
                                            148
                                            1324
                                            459026
                                            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