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 @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
                                    • liv-in-sky
                                      liv-in-sky @sigi234 last edited by

                                      @sigi234 , @bergjet

                                      diesmal mit orange - und ohne "depp"

                                      //6.10.2020 20:35
                                      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="320"
                                      var zusatzRegionen=["32006","7","5","32008","320"]
                                      
                                      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="🔴"
                                                                     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 bergjet 2 Replies Last reply Reply Quote 0
                                      • sigi234
                                        sigi234 Forum Testing Most Active @liv-in-sky last edited by

                                        @liv-in-sky

                                        Super, genügt der Austausch von 240-252?

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

                                          @sigi234

                                          du kannst einfach den depp mit dem roten punkt und den roten mit dem orangen ersetzen

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

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

                                            du kannst einfach den depp mit dem roten punkt und den roten mit dem orangen ersetzen

                                            Danke.
                                            Bildschirmfoto 2020-10-06 um 20.54.17.png

                                            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

                                            431
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

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