Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Corona-Ampel Österreich in VIS anzeigen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Corona-Ampel Österreich in VIS anzeigen

    This topic has been deleted. Only users with topic management privileges can see it.
    • liv-in-sky
      liv-in-sky @jackblackson last edited by

      @jackblackson
      freut mich, dass du das so positiv aufnimmst - dein script war aber auch gut vorbereitet - habe nur etwas dazugefügt

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

        @jackblackson

        Natürlich geht auch der Dank an dich.

        1 Reply Last reply Reply Quote 1
        • sigi234
          sigi234 Forum Testing Most Active @liv-in-sky last edited by sigi234

          @liv-in-sky
          Die Daten werden nur Freitags aktualisiert, ein Cron mit Freitag 15:00 Uhr wäre ja dann ausreichend?

          Ev. ein DP um es Manuel aus zu lösen?

          liv-in-sky G 3 Replies Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @sigi234 last edited by

            @sigi234

            hatte ich auch schon daran gedacht - ich habe mir eine werteliste in der vis gemacht, damit ich das sortieren auswählen kann -- da ist aber das gleiche thema - wenn ich anders sortieren will, muss ja auch die tabelle neu erstellt werden

            @jackblackson möchtest du das übernehmen, oder soll ich mich versuchen - ich dachte daran, alles im schedule als funtion zu machen - dann kann man das auch "solo" aufrufen

            1 Reply Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky @sigi234 last edited by

              @sigi234

              refresh und sortierung

              anim-gif6.gif

              //6.10.2020 9:00
              const url2 = 'https://corona-ampel.gv.at/sites/corona-ampel.gv.at/files/assets/Warnstufen_Corona_Ampel_aktuell.json';
              const url = 'https://corona-ampel.gv.at/sites/corona-ampel.gv.at/files/assets/Warnstufen_Corona_Ampel_Gemeinden_aktuell.json';
              var warnstufe=0;
              var htmlwidget ='';
              var arrStand="";
              var sucheGKZ="7"
              var zusatzRegionen=["80111","10716","40807","40809","40810","40824","10508","10706","80112","405","5","50326","50329"]
              
              var farbwertLevel1 = '#04B404'
              var farbwertLevel2 = '#FFFF00'
              var farbwertLevel3 = '#FF8000'
              var farbwertLevel4 = '#DF0101'
              var warngebiet = ''
              var warnregion="";
              var anzahl=0;
              var gkz=""
              var directory = 'Coronaampel' //javascript.0.xxx
              var tableContent = ''
              var dpSort;
              
              createState(directory  + '.warnstufe', {
                 name: 'Corona Warnstufe',
                 read: true, 
                 write: false, 
                 type: "number", 
                 def: 0
              });
              createState(directory  + '.anzahl', {
                 name: 'Corona Anzahl',
                 read: true, 
                 write: false, 
                 type: "number", 
                 def: 0
              });
              createState(directory  + '.Sortierung', {
                 name: 'Corona Sortierung',
                 read: true, 
                 write: true, 
                 type: "number", 
                 def: 1
              });
              createState(directory  + '.Refresh', {
                 name: 'Corona Refresh',
                 read: true, 
                 write: true, 
                 type: "boolean", 
                 def: false
              });
              
              createState(directory  + '.warngebiet', {
                 name: 'Corona Warngebiet',
                 read: true, 
                 write: false, 
                 type: "string", 
                 def: ""
              });
              
              createState(directory  + '.warnfarbe', {
                 name: 'Corona Warnfarbe',
                 read: true, 
                 write: false, 
                 type: "string", 
                 def: ""
              });
              createState(directory  + '.geholt', {
                 name: 'Corona Datum',
                 read: true, 
                 write: false, 
                 type: "string", 
                 def: ""
              });
              
              createState(directory  + '.GKZ', {
                 name: 'Corona GKZ',
                 read: true, 
                 write: false, 
                 type: "string", 
                 def: ""
              });
              
              createState(directory  + '.warnregion', {
                 name: 'Corona Region',
                 read: true, 
                 write: false, 
                 type: "string", 
                 def: ""
              });
              
              createState(directory  + '.stand', {
                 name: 'Corona stand',
                 read: true, 
                 write: false, 
                 type: "string", 
                 def: ""
              });
              
              createState(directory  + '.warntabelle', {
                 name: 'Corona Tabelle',
                 read: true, 
                 write: false, 
                 type: "string", 
                 def: ""
              });
              
              
              createState(directory  + '.jsonTable', {
                 name: 'Corona jsonTabelle',
                 read: true, 
                 write: false, 
                 type: "string", 
                 def: ""
              });
              var myObj=[];
              
              schedule(' 14 */4 * * *', function() { 
              main()
              });
              
              setTimeout(function(){main()},10000);
              
              
              
              function main() {   dpSort=getState(directory+'.Sortierung').val
                 myObj=[];
                 warnstufe = 0;
                 tableContent = ''
                 request(url, function(err, response, json) {
               
                     let arr = (JSON.parse(json)[0]).Warnstufen;
                      arrStand = (JSON.parse(json)[0]).Stand;
                   //  log(JSON.stringify(arr))
                   //  log(arr.flat(1))
                     //log(arrStand.toString())
                     //Loop und suche nach Bezirk
              
                    request(url2, function(err, response, json) {
               
                     let arr2 = (JSON.parse(json)[0]).Warnstufen;
                  // log(arr.length.toString())
                     arr= arr.concat(arr2)
                    //    log(arr.length.toString())
                  for(var z = 0; z < zusatzRegionen.length; z++) {    
                      for(let i = 0; i < arr.length; i++) { 
                        if(arr[i].GKZ == zusatzRegionen[z]){
                          myObj.push(arr[i])
                          break;
                          }
                     }
                  }
                  
                  for(let i = 0; i < arr.length; i++) { 
                        if(arr[i].GKZ == sucheGKZ){
                          //log(' Warnstufe für ' + suchwertBezirk + ': ' + arr[i].Warnstufe)
                          warnstufe = Number(arr[i].Warnstufe);
                          gkz=sucheGKZ
                          warnregion=arr[i].Region
                          warngebiet = arr[i].Name 
                         break;}}
              
                     anzahl=arr.length
              
              
              
              
              
                     for(let i = 0; i < arr.length; i++) { 
                         fillTable(arr[i].Region,arr[i].Name,arr[i].Warnstufe,arr[i].GKZ)
                     }
                     finishTable()
              
                 
              
              
              
                 saveData()
              
                 });
                 });
              
              }
              
              function fillTable(gebiet,name,warnstufe,gkz){
                 if (tableContent == ''){
                   tableContent = '<table ><tbody>'  
                 }
                 tableContent += '<tr><td>' + gebiet + '</td>'
                 tableContent += '<td>' + gkz + '</td>'
                 tableContent += '<td>' + name + '</td>'
                 tableContent += '<td>' + warnstufe + '</td>'
                 tableContent += '</tr>';
              }
              
              function finishTable(){
              
                 tableContent += '</tbody></table>'
                 setState(directory+'.warntabelle',tableContent)
              }
              
              function saveData(){
                   sotiereJson(dpSort)    
                         
              
                 jsonWarn()
                  setState(directory+'.jsonTable',JSON.stringify(myObj))
              
                 setState(directory+'.Refresh',false)
                 setState(directory+'.anzahl',anzahl)
               //  setState(directory+'.searchbyGKZ',suchGKZactivieren)
                 setState(directory+'.warnstufe',warnstufe)
                 setState(directory+'.warngebiet',warngebiet)
                 setState(directory+'.GKZ',gkz)
                 setState(directory+'.warnregion',warnregion)
                 setState(directory+'.geholt',formatDate(getDateObject((new Date().getTime())), "hh:mm"))
                 setState(directory+'.stand',   formatDate(getDateObject(arrStand.toString()), "TT:MM:JJJJ -  SS:mm"));
                 switch (warnstufe) {
                             case 1: 
                                             setState(directory+'.warnfarbe',farbwertLevel1)
                                             break;
                             case 2: 
                                              setState(directory+'.warnfarbe',farbwertLevel2)
                                             break;
                             case 3: 
                                             setState(directory+'.warnfarbe',farbwertLevel3)
                                             break;
                             case 4   : 
                                             setState(directory+'.warnfarbe',farbwertLevel4)
                                             break;
                             default: setState(directory+'.warnfarbe',"");
                             ;
                         }
              }
              
              function jsonWarn(){
              
                  for(let i = 0; i < myObj.length; i++) { 
                    var istWarnstufe=Number(myObj[i].Warnstufe)
                     switch (istWarnstufe) {
                             case 1: 
                                             myObj[i].Warnstufe="🟢"
                                             break;
                             case 2: 
                                             myObj[i].Warnstufe="🟡"
                                             break;
                             case 3: 
                                             myObj[i].Warnstufe="🔴"
                                             break;
                             case 4   : 
                                             myObj[i].Warnstufe="depp"
                                             break;
                             default: myObj[i].Warnstufe="?";
                             ;
                         }
                       }
                       }
                       
              
              function sotiereJson(mySort) {
                 // log(mySort.toString())
              switch (mySort) {
                             case 1: 
                                              myObj.sort(function (alpha, beta) {
                                                   if (alpha.Region > beta.Region )
                          
                                                   return 1;
                                                   if (beta.Region > alpha.Region)
                                                   return -1;
                                                   return 0;
                                                }); 
                                             break;
                             case 2: 
                                             myObj.sort(function (alpha, beta) {
                                                  if (Number(alpha.GKZ) > Number(beta.GKZ) )
                                                  return 1;
                                                 if (Number(beta.GKZ) > Number(alpha.GKZ)  )
                                                 return -1;
                                                 return 0;
                                                     }); 
                                             break;
                             case 3: 
                                           myObj.sort(function (alpha, beta) {
                                                  if (alpha.Name > beta.Name )
                          
                                                  return 1;
                                                 if (beta.Name > alpha.Name)
                                                 return -1;
                                                 return 0;
                         });
                                             break;
                             case 4   : 
                                             myObj.sort(function(a, b){
                                             return b.Warnstufe - a.Warnstufe;
                                             });
                                             break;
                             default:        myObj.sort(function(a, b){
                                             return b.Warnstufe - a.Warnstufe;
                                             });
                             ;
                         }
              
              
              
              }
              
              on({id: 'javascript.'+instance+'.'+directory  + '.Sortierung', change: "any"}, function (obj) { 
                 
                  main()
              
              });
               on({id: 'javascript.'+instance+'.'+directory  + '.Refresh', val: true}, function (obj) { 
                 
                  main()
                  
              
              });
              
              
              
              

              sigi234 1 Reply Last reply Reply Quote 1
              • bergjet
                bergjet @liv-in-sky last edited by

                @liv-in-sky Sehr schön. Ich brauche nur noch jemand, der mir dieses Widget erklärt. Invento, welches und was wird wo eingetragen?

                liv-in-sky 1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @bergjet last edited by liv-in-sky

                  @bergjet

                  die tabelle braucht die invento widgets (das json)
                  die schalter habe ich mit material design widgets gemacht (select und switch) - kann aber auch mit den standard widgets gemacht werden

                  import tabelle (invento)

                  [{"tpl":"i-vis-jsontable","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"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","iTblRowLimit":"200","iColCount":"4","iColShow1":"true","iTblCellImageSize1":"200","iOpacityAll":"1","iTblRowEvenColor":"#333333","iTblRowUnevenColor":"#3b3c39","iTblHeaderColor":"#333333","iTblRowEvenTextColor":"#ffffff","iTblRowUnevenTextColor":"#ffffff","iTblHeaderTextColor":"#ffffff","iRowSpacing":"10","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,"oid":"javascript.0.Coronaampel.jsonTable","iTblShowHead":true,"iColShow2":"true","iTblCellImageSize2":"200","iColShow3":"true","iTblCellImageSize3":"200","iColShow4":"true","iTblCellImageSize4":"200","iColShow5":"true","iTblCellImageSize5":"200","iTblCellFormat4":"normal"},"style":{"left":"971px","top":"118px","width":"384px","height":"830px","overflow-y":"scroll","z-index":"800","text-align":"center"},"widgetSet":"vis-inventwo"}]
                  

                  import refresh und auswahl (material design widget):

                  [{"tpl":"tplVis-materialdesign-Switch","data":{"oid":"javascript.0.Coronaampel.Refresh","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"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","toggleType":"boolean","stateIfNotTrueValue":"on","vibrateOnMobilDevices":"50","labelPosition":"left","labelClickActive":"true","autoLockAfter":"10","lockIconTop":"5","lockIconLeft":"5","lockFilterGrayscale":"30","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,"labelFalse":"Refresh","colorSwitchThumb":"#e4dddd","labelTrue":"...","labelColorTrue":"#e4dddd","labelColorFalse":"#e4dddd"},"style":{"left":"1394px","top":"202px","width":"145px","height":"51px"},"widgetSet":"materialdesign"},{"tpl":"tplVis-materialdesign-Select","data":{"oid":"javascript.0.Coronaampel.Sortierung","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"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","inputType":"text","vibrateOnMobilDevices":"50","inputLayout":"regular","showInputMessageAlways":"true","showInputCounter":"true","clearIconShow":"true","listDataMethod":"inputPerEditor","countSelectItems":"3","listPosition":"auto","showSelectedIcon":"prepend-inner","showValue":"true","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,"value0":"1","label0":"Region","value1":"2","value2":"3","value3":"4","label1":"GKZ","label2":"Name","label3":"Warnstufe","listIconColor3":"#ffffff","listItemBackgroundColor":"#676963","listItemValueFontColor":"","listItemBackgroundSelectedColor":"#fff","inputTextColor":"#fff","inputLayoutBackgroundColor":"#3b3c39","listItemBackgroundHoverColor":"#fff","listItemRippleEffectColor":"#fff","listItemFontColor":"#fff"},"style":{"left":"1399px","top":"259px"},"widgetSet":"materialdesign"}]
                  

                  bergjet 1 Reply Last reply Reply Quote 0
                  • sigi234
                    sigi234 Forum Testing Most Active @liv-in-sky last edited by

                    @liv-in-sky

                    Wie immer perfekt.👍

                    Screenshot (772)_LI.jpg

                    1 Reply Last reply Reply Quote 0
                    • bergjet
                      bergjet @liv-in-sky last edited by bergjet

                      @liv-in-sky Danke. Allerdings wird bei mir alles rot angezeigt. !

                      Bildschirmfoto 2020-10-06 um 19.17.39.png

                      Ich habe im Script nur die GKZ eingetragen.
                      Bildschirmfoto 2020-10-06 um 19.20.19.png

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

                        @bergjet

                        var sucheGKZ="deine Gemeinde" (5 stellig)
                        var zusatzRegionen=["1","2","3","4","5","6","7","8","9","410"]

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

                          @sigi234 Die Farben bleiben alle rot.

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

                            @bergjet sagte in Corona-Ampel Österreich in VIS anzeigen:

                            @sigi234 Die Farben bleiben alle rot.

                            Wie sehen deine Objekte aus, fahr mal mit der Maus über den Wert jsonTable

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

                              @sigi234 said in Corona-Ampel Österreich in VIS anzeigen:

                              Wie sehen deine Objekte aus, fahr mal mit der Maus über den Wert jsonTable

                              [{"Region":"Bezirk","GKZ":"320","Name":"Scheibbs","Warnstufe":"🔴"},{"Region":"Gemeinde","GKZ":"32013","Name":"Scheibbs","Warnstufe":"🔴"},{"Region":"Gemeinde","GKZ":"32008","Name":"Purgstall an der Erlauf","Warnstufe":"🔴"},{"Region":"Gemeinde","GKZ":"32006","Name":"Oberndorf an der Melk","Warnstufe":"🔴"},{"Region":"Gemeinde","GKZ":"32002","Name":"Göstling an der Ybbs","Warnstufe":"🔴"}]

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

                                @bergjet

                                Hmm.... sollten Orange sein

                                Ok, im Skript Falsch denke ich.

                                case 1: 
                                                               myObj[i].Warnstufe="🟢"
                                                               break;
                                               case 2: 
                                                               myObj[i].Warnstufe="🟡"
                                                               break;
                                               case 3: 
                                                               myObj[i].Warnstufe="🔴"
                                                               break;
                                               case 4   : 
                                                               myObj[i].Warnstufe="depp"
                                                               break;
                                

                                Case 3 sollte Orange sein und Case 4 Rot
                                @liv-in-sky

                                bergjet liv-in-sky 2 Replies Last reply Reply Quote 0
                                • bergjet
                                  bergjet @sigi234 last edited by

                                  @sigi234 Bundesland GKZ=3 grün, wird richtig angezeigt.

                                  liv-in-sky 1 Reply Last reply Reply Quote 0
                                  • liv-in-sky
                                    liv-in-sky @bergjet last edited by

                                    @bergjet

                                    schau mal auf die seiten der links - da steht das drin

                                    1 Reply Last reply Reply Quote 0
                                    • liv-in-sky
                                      liv-in-sky @sigi234 last edited by

                                      @sigi234

                                      der "depp" im script gilt mir - da war ich gerade sauer auf mich 🙂

                                      es gibt in beiden files (links) keine warnstufe 4

                                      bergjet sigi234 2 Replies Last reply Reply Quote 0
                                      • bergjet
                                        bergjet @liv-in-sky last edited by

                                        @liv-in-sky said in Corona-Ampel Österreich in VIS anzeigen:

                                        @sigi234

                                        der "depp" im script gilt mir - da war ich gerade sauer auf mich 🙂

                                        es gibt in beiden files (links) keine warnstufe 4

                                        Haha, aber der Bezirk Scheibbs hat Warnstufe 2 und die Gemeinde Scheibbs hat 3.

                                        liv-in-sky 1 Reply Last reply Reply Quote 0
                                        • liv-in-sky
                                          liv-in-sky @bergjet last edited by liv-in-sky

                                          @bergjet

                                          das sind aber 2 verschiedene einträge - ein neuer stand und ein alter - ich lese nur den neuen aus

                                          der neue ist 3 und der alte ist 2 bei gkz 320

                                          1 Reply Last reply Reply Quote 0
                                          • sigi234
                                            sigi234 Forum Testing Most Active @liv-in-sky last edited by

                                            @liv-in-sky sagte in Corona-Ampel Österreich in VIS anzeigen:

                                            der "depp" im script gilt mir - da war ich gerade sauer auf mich

                                            😀

                                            Aber Warnstufe 3 ist Orange

                                            liv-in-sky 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            820
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            corona vis
                                            10
                                            217
                                            18969
                                            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