Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. VIS-Tabelle für WLAN Wetterstation

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    358

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

VIS-Tabelle für WLAN Wetterstation

Geplant Angeheftet Gesperrt Verschoben Visualisierung
vis
101 Beiträge 11 Kommentatoren 16.3k Aufrufe 16 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • NegaleinN Negalein

    @liv-in-sky sagte in VIS-Tabelle für WLAN Wetterstation:

    im ersten post ist ein update

    es sieht jetzt so aus.

    Hab die Settings ins neue übernommen und andere Farben gewählt.
    Passt da bei mir was nicht?
    Screenshot_2020-11-03 vis(1).png

    // @liv-in-sky 3.11.2020 21:45
     
     
    const dataInputPath="0_userdata.0.Statistik.Wetter.Data";  //SEHR WICHTIG !!!!!!!!!
    const inhaltFarbe="black"
    const inhaltHintergrund="lightgray"
    const monatFarbe="black"
    const hintergrund="gray"
    const htmlFarbTableBorderColor="black";
    const abstandZelle=6;
    const htmlRahmenLinien="all"
    const htmlSchriftgroessehtmlSchriftart=""  //nicht verwendbar!
    const htmlFarbFelderschrift="red";         //nicht verwendbar!
    const htmlSchriftgroesse="13px";
    const htmlSchriftart="RobotoCondensed-Regular";       //oder z.b. "Helvetica"
    const weite="auto";                        //oder "500px"
    let myTable="table bordercolor=\""+htmlFarbTableBorderColor+"\" border=\"2px\" cellspacing=\""+abstandZelle+"\" cellpadding=\""+abstandZelle+"\" width=\""+weite+"\" rules=\""+htmlRahmenLinien+"\" style=\"color:"+htmlFarbFelderschrift+";  font-size:"+htmlSchriftgroesse+
                          "; font-family:"+htmlSchriftart+";\"";
                          
    const varData={  Tiefstwert:       { einheit:"°C", name:"Minimum Temperatur"},
                    Hoechstwert:      { einheit:"°C", name:"Maximum Temperatur"},
                    Temp_Durchschnitt:{ einheit:"°C", name:"Durchschnittstemperatur"},
                    Max_Windboe:      { einheit:'km/h', name:"Max Windböe"},
                    Max_Regenmenge:   { einheit:'l/m2', name:"Max. Regen/Tag"},
                    Regenmenge_Monat: { einheit:'l/m2', name:"Regen"},
                    warme_Tage:       { einheit:"", name:"Warme Tage (über 20°C)"},
                    Sommertage:       { einheit:"", name:"Sommertage (über 25°C)"},
                    heisse_Tage:      { einheit:"", name:'Heiße Tage (über 30°C)'},
                    Frost_Tage:       { einheit:"", name:"Frosttage (Min. unter 0°C)"},
                    kalte_Tage:       { einheit:"", name:"Kalte Tage (Max. unter 10°C)"},
                    Eistage:          { einheit:"", name:"Eistage (Max. unter 0°C)"},
                    sehr_kalte_Tage:  { einheit:"", name:"Sehr kalte Tage (Min. unter -10°C)"}
    }   
     
    const monate =["Jänner","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"];
    
     
    //--------------------------nix mehr ändern ab hier--------------------------------------
    let myObj;
    let myArrAll=[]
    let myArrErstellt=[]
    let tableContent;
    let monWahlVIS;
     
    //----------------------------------------------------------------------------------------
    function dataStuff(){
    let myArrAll=[]
    let mySelector=dataInputPath+'.*.*'
    $(mySelector).each(function(id, i) {
    let ida=id.split("."); let lang=ida.length; let jahri=lang-2; let moni=lang-1;
    let obj2 = { jahr: ida[jahri]};
    let obj3 = { monat: ida[moni]};
    let helper=JSON.parse(getState(id).val)
    helper={ ...helper, ...obj2, ...obj3}
    myArrAll.push(JSON.stringify(helper))
    });
     
    tableContent = ""  
    myObj=JSON.parse("["+myArrAll.toString()+"]")
     
     
    //KOPFZEILE
    let choseMonth=monate[monWahlVIS-1]
    let choseMonthArr=choseMonth.split('')
    let test=""
    for (let i=0;i<choseMonthArr.length;i++){
      // log(choseMonthArr[i])
       test=test+choseMonthArr[i]+`
       `    
    }
     
    //log(test)
    //tableContent+='<td  class=\"test-klein\"  rowspan=\"14\"\">'+choseMonth+'</td><td>Wetterwerte</td>'
    tableContent+='<td class=\"myWetterStation\"  style=\"color:'+monatFarbe+'; background-color:'+hintergrund+' ; vertical-align:middle; text-align:center \"  width=\"25px\" rowspan=\"14\"\">'+test+'</td><td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\>Wetterwerte</td>'
    for (let i=0;i<myObj.length;i++) {
       if(parseInt(myObj[i].monat)==monWahlVIS){
    tableContent += '<td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\ align=center>'  + myObj[i].jahr+'</td>'}
    }; tableContent="<tr style=\"font-weight\:bold\">"+tableContent+"</tr>"
    //RESTZEILEN
    for(var index in varData){
       tableContent+='<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\">'+varData[index].name+'</td>'
       for (let i=0;i<myObj.length;i++) {
          if(myObj[i].monat==monWahlVIS){
            tableContent += '<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\" align=right>' + myObj[i][index] + ' '+ varData[index].einheit+'</td>'}
                                        }; tableContent="<tr>"+tableContent+"</tr>"
     
    }
     
     
    tableContent = '<'+myTable+' ><tbody>'+tableContent+'</tbody></table >'
    //log(tableContent)
    setState("javascript." + instance + ".Wetterstation.MonthlyDaten",tableContent)
    }
     
    //--------------------------------------------------------------------------------------------------
    async function main() {
       if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.MonthlyDaten"))) {
           await createStateAsync("Wetterstation.MonthlyDaten", "leer", {type: "string", name: "MonthlyDaten", role: "value", read: true, write: true, } ); }
       if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.MonatAuswahl"))) {
           await createStateAsync("Wetterstation.MonatAuswahl", 10, {type: "number", name: "MonatAuswahl", role: "value", read: true, write: true, } ); }  
       monWahlVIS=((await getStateAsync("javascript." + instance + ".Wetterstation.MonatAuswahl")).val ) 
       dataStuff();
     
    }
     
    //-----------------------------------------------------------------------------------------------------
    main()
     
     
     
    on({id: "javascript." + instance + ".Wetterstation.MonatAuswahl", change: "any"}, async function (obj) {
    main()
     
    });
     
    schedule('  */30 * * * *', function() { 
       setState("javascript." + instance + ".Wetterstation.MonatAuswahl", parseInt(formatDate(getDateObject((new Date().getTime())), "MM"))) 
    });
     
     
     
     
     
    
    
    liv-in-skyL Offline
    liv-in-skyL Offline
    liv-in-sky
    schrieb am zuletzt editiert von
    #13

    @Negalein

    was hast du für einen browser ?

    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

    NegaleinN 1 Antwort Letzte Antwort
    0
    • liv-in-skyL liv-in-sky

      @Negalein

      was hast du für einen browser ?

      NegaleinN Offline
      NegaleinN Offline
      Negalein
      Global Moderator
      schrieb am zuletzt editiert von
      #14

      @liv-in-sky sagte in VIS-Tabelle für WLAN Wetterstation:

      was hast du für einen browser ?

      Chrome und FF

      bei beiden dieses Bild

      ° Node.js: 20.17.0 NPM: 10.8.2
      ° Proxmox, Ubuntu 22.04.3 LTS
      ° Fixer ---> iob fix

      liv-in-skyL 1 Antwort Letzte Antwort
      0
      • NegaleinN Negalein

        @liv-in-sky sagte in VIS-Tabelle für WLAN Wetterstation:

        was hast du für einen browser ?

        Chrome und FF

        bei beiden dieses Bild

        liv-in-skyL Offline
        liv-in-skyL Offline
        liv-in-sky
        schrieb am zuletzt editiert von
        #15

        @Negalein

        ich schau mir das morgen nochmal an - bin nicht am hauptrechner - bei mir funktioniert es in chrome

        die schriftgröße im linken block stimmt nicht - die ist zu klein

        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

        NegaleinN 1 Antwort Letzte Antwort
        0
        • liv-in-skyL liv-in-sky

          @Negalein

          ich schau mir das morgen nochmal an - bin nicht am hauptrechner - bei mir funktioniert es in chrome

          die schriftgröße im linken block stimmt nicht - die ist zu klein

          NegaleinN Offline
          NegaleinN Offline
          Negalein
          Global Moderator
          schrieb am zuletzt editiert von
          #16

          @liv-in-sky sagte in VIS-Tabelle für WLAN Wetterstation:

          ich schau mir das morgen nochmal an

          keine Eile

          ° Node.js: 20.17.0 NPM: 10.8.2
          ° Proxmox, Ubuntu 22.04.3 LTS
          ° Fixer ---> iob fix

          liv-in-skyL 1 Antwort Letzte Antwort
          0
          • NegaleinN Negalein

            @liv-in-sky sagte in VIS-Tabelle für WLAN Wetterstation:

            ich schau mir das morgen nochmal an

            keine Eile

            liv-in-skyL Offline
            liv-in-skyL Offline
            liv-in-sky
            schrieb am zuletzt editiert von
            #17

            @Negalein

            fehler entdeckt und oben upgedatet

            hier dein script mit all deinen einstellungen zum import

            // @liv-in-sky 3.11.2020 21:45
            
            
            const dataInputPath="0_userdata.0.Statistik.Wetter.Data";  //SEHR WICHTIG !!!!!!!!!
            const inhaltFarbe="black"
            const inhaltHintergrund="lightgray"
            const monatFarbe="black"
            const hintergrund="gray"
            const htmlFarbTableBorderColor="black";
            const abstandZelle=6;
            const htmlRahmenLinien="all"
            const htmlSchriftgroessehtmlSchriftart=""  //nicht verwendbar!
            const htmlFarbFelderschrift="red";         //nicht verwendbar!
            const htmlSchriftgroesse="14px";
            const htmlSchriftart="Ubuntu-Light"//"RobotoCondensed-Regular";       //oder z.b. "Helvetica"
            const weite="auto";                        //oder "500px"
            let myTable="table bordercolor=\""+htmlFarbTableBorderColor+"\" border=\"2px\" cellspacing=\""+abstandZelle+"\" cellpadding=\""+abstandZelle+"\" width=\""+weite+"\" rules=\""+htmlRahmenLinien+"\" style=\"color:"+htmlFarbFelderschrift+";  font-size:"+htmlSchriftgroesse+
                                 "; font-family:"+htmlSchriftart+";\"";
                                 
            const varData={  Tiefstwert:       { einheit:"°C", name:"Minimum Temperatur"},
                           Hoechstwert:      { einheit:"°C", name:"Maximum Temperatur"},
                           Temp_Durchschnitt:{ einheit:"°C", name:"Durchschnittstemperatur"},
                           Max_Windboe:      { einheit:'km/h', name:"Max Windböe"},
                           Max_Regenmenge:   { einheit:'l/m2', name:"Max. Regen/Tag"},
                           Regenmenge_Monat: { einheit:'l/m2', name:"Regen"},
                           warme_Tage:       { einheit:"", name:"Warme Tage (über 20°C)"},
                           Sommertage:       { einheit:"", name:"Sommertage (über 25°C)"},
                           heisse_Tage:      { einheit:"", name:'Heiße Tage (über 30°C)'},
                           Frost_Tage:       { einheit:"", name:"Frosttage (Min. unter 0°C)"},
                           kalte_Tage:       { einheit:"", name:"Kalte Tage (Max. unter 10°C)"},
                           Eistage:          { einheit:"", name:"Eistage (Max. unter 0°C)"},
                           sehr_kalte_Tage:  { einheit:"", name:"Sehr kalte Tage (Min. unter -10°C)"}
            }   
            
            const monate =["Jänner","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"];
            
            
            //--------------------------nix mehr ändern ab hier--------------------------------------
            let myObj;
            let myArrAll=[]
            let myArrErstellt=[]
            let tableContent;
            let monWahlVIS;
            
            //----------------------------------------------------------------------------------------
            function dataStuff(){
            let myArrAll=[]
            let mySelector=dataInputPath+'.*.*'
            $(mySelector).each(function(id, i) {
            let ida=id.split("."); let lang=ida.length; let jahri=lang-2; let moni=lang-1;
            let obj2 = { jahr: ida[jahri]};
            let obj3 = { monat: ida[moni]};
            let helper=JSON.parse(getState(id).val)
            helper={ ...helper, ...obj2, ...obj3}
            myArrAll.push(JSON.stringify(helper))
            });
            
            tableContent = ""  
            myObj=JSON.parse("["+myArrAll.toString()+"]")
            
            
            //KOPFZEILE
            let choseMonth=monate[monWahlVIS-1]
            let choseMonthArr=choseMonth.split('')
            let test=""
            for (let i=0;i<choseMonthArr.length;i++){
             // log(choseMonthArr[i])
              test=test+choseMonthArr[i]+`
              `    
            }
            
            //log(test)
            //tableContent+='<td  class=\"test-klein\"  rowspan=\"14\"\">'+choseMonth+'</td><td>Wetterwerte</td>'
            tableContent+='<td class=\"myWetterStation\" width=\"25px\"  style=\"color:'+monatFarbe+';font-size:26px; background-color:'+hintergrund+' ; vertical-align:middle; text-align:center \"   rowspan=\"14\"\">'+test+'</td><td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\>Wetterwerte</td>'
            for (let i=0;i<myObj.length;i++) {
              if(parseInt(myObj[i].monat)==monWahlVIS){
            tableContent += '<td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\ align=center>'  + myObj[i].jahr+'</td>'}
            }; tableContent="<tr style=\"font-weight\:bold\">"+tableContent+"</tr>"
            //RESTZEILEN
            for(var index in varData){
              tableContent+='<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\">'+varData[index].name+'</td>'
              for (let i=0;i<myObj.length;i++) {
                 if(myObj[i].monat==monWahlVIS){
                   tableContent += '<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\" align=right>' + myObj[i][index] + ' '+ varData[index].einheit+'</td>'}
                                               }; tableContent="<tr>"+tableContent+"</tr>"
            
            }
            
            
            tableContent = '<'+myTable+' ><tbody>'+tableContent+'</tbody></table >'
            //log(tableContent)
            setState("javascript." + instance + ".Wetterstation.MonthlyDaten",tableContent)
            }
            
            //--------------------------------------------------------------------------------------------------
            async function main() {
              if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.MonthlyDaten"))) {
                  await createStateAsync("Wetterstation.MonthlyDaten", "leer", {type: "string", name: "MonthlyDaten", role: "value", read: true, write: true, } ); }
              if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.MonatAuswahl"))) {
                  await createStateAsync("Wetterstation.MonatAuswahl", 10, {type: "number", name: "MonatAuswahl", role: "value", read: true, write: true, } ); }  
              monWahlVIS=((await getStateAsync("javascript." + instance + ".Wetterstation.MonatAuswahl")).val ) 
              dataStuff();
            
            }
            
            //-----------------------------------------------------------------------------------------------------
            main()
            
            
            
            on({id: "javascript." + instance + ".Wetterstation.MonatAuswahl", change: "any"}, async function (obj) {
            main()
            
            });
            
            schedule('  */30 * * * *', function() { 
              setState("javascript." + instance + ".Wetterstation.MonatAuswahl", parseInt(formatDate(getDateObject((new Date().getTime())), "MM"))) 
            });
            
            
             
            
            

            Image 1.png

            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

            NegaleinN 1 Antwort Letzte Antwort
            1
            • liv-in-skyL liv-in-sky

              @Negalein

              fehler entdeckt und oben upgedatet

              hier dein script mit all deinen einstellungen zum import

              // @liv-in-sky 3.11.2020 21:45
              
              
              const dataInputPath="0_userdata.0.Statistik.Wetter.Data";  //SEHR WICHTIG !!!!!!!!!
              const inhaltFarbe="black"
              const inhaltHintergrund="lightgray"
              const monatFarbe="black"
              const hintergrund="gray"
              const htmlFarbTableBorderColor="black";
              const abstandZelle=6;
              const htmlRahmenLinien="all"
              const htmlSchriftgroessehtmlSchriftart=""  //nicht verwendbar!
              const htmlFarbFelderschrift="red";         //nicht verwendbar!
              const htmlSchriftgroesse="14px";
              const htmlSchriftart="Ubuntu-Light"//"RobotoCondensed-Regular";       //oder z.b. "Helvetica"
              const weite="auto";                        //oder "500px"
              let myTable="table bordercolor=\""+htmlFarbTableBorderColor+"\" border=\"2px\" cellspacing=\""+abstandZelle+"\" cellpadding=\""+abstandZelle+"\" width=\""+weite+"\" rules=\""+htmlRahmenLinien+"\" style=\"color:"+htmlFarbFelderschrift+";  font-size:"+htmlSchriftgroesse+
                                   "; font-family:"+htmlSchriftart+";\"";
                                   
              const varData={  Tiefstwert:       { einheit:"°C", name:"Minimum Temperatur"},
                             Hoechstwert:      { einheit:"°C", name:"Maximum Temperatur"},
                             Temp_Durchschnitt:{ einheit:"°C", name:"Durchschnittstemperatur"},
                             Max_Windboe:      { einheit:'km/h', name:"Max Windböe"},
                             Max_Regenmenge:   { einheit:'l/m2', name:"Max. Regen/Tag"},
                             Regenmenge_Monat: { einheit:'l/m2', name:"Regen"},
                             warme_Tage:       { einheit:"", name:"Warme Tage (über 20°C)"},
                             Sommertage:       { einheit:"", name:"Sommertage (über 25°C)"},
                             heisse_Tage:      { einheit:"", name:'Heiße Tage (über 30°C)'},
                             Frost_Tage:       { einheit:"", name:"Frosttage (Min. unter 0°C)"},
                             kalte_Tage:       { einheit:"", name:"Kalte Tage (Max. unter 10°C)"},
                             Eistage:          { einheit:"", name:"Eistage (Max. unter 0°C)"},
                             sehr_kalte_Tage:  { einheit:"", name:"Sehr kalte Tage (Min. unter -10°C)"}
              }   
              
              const monate =["Jänner","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"];
              
              
              //--------------------------nix mehr ändern ab hier--------------------------------------
              let myObj;
              let myArrAll=[]
              let myArrErstellt=[]
              let tableContent;
              let monWahlVIS;
              
              //----------------------------------------------------------------------------------------
              function dataStuff(){
              let myArrAll=[]
              let mySelector=dataInputPath+'.*.*'
              $(mySelector).each(function(id, i) {
              let ida=id.split("."); let lang=ida.length; let jahri=lang-2; let moni=lang-1;
              let obj2 = { jahr: ida[jahri]};
              let obj3 = { monat: ida[moni]};
              let helper=JSON.parse(getState(id).val)
              helper={ ...helper, ...obj2, ...obj3}
              myArrAll.push(JSON.stringify(helper))
              });
              
              tableContent = ""  
              myObj=JSON.parse("["+myArrAll.toString()+"]")
              
              
              //KOPFZEILE
              let choseMonth=monate[monWahlVIS-1]
              let choseMonthArr=choseMonth.split('')
              let test=""
              for (let i=0;i<choseMonthArr.length;i++){
               // log(choseMonthArr[i])
                test=test+choseMonthArr[i]+`
                `    
              }
              
              //log(test)
              //tableContent+='<td  class=\"test-klein\"  rowspan=\"14\"\">'+choseMonth+'</td><td>Wetterwerte</td>'
              tableContent+='<td class=\"myWetterStation\" width=\"25px\"  style=\"color:'+monatFarbe+';font-size:26px; background-color:'+hintergrund+' ; vertical-align:middle; text-align:center \"   rowspan=\"14\"\">'+test+'</td><td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\>Wetterwerte</td>'
              for (let i=0;i<myObj.length;i++) {
                if(parseInt(myObj[i].monat)==monWahlVIS){
              tableContent += '<td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\ align=center>'  + myObj[i].jahr+'</td>'}
              }; tableContent="<tr style=\"font-weight\:bold\">"+tableContent+"</tr>"
              //RESTZEILEN
              for(var index in varData){
                tableContent+='<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\">'+varData[index].name+'</td>'
                for (let i=0;i<myObj.length;i++) {
                   if(myObj[i].monat==monWahlVIS){
                     tableContent += '<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\" align=right>' + myObj[i][index] + ' '+ varData[index].einheit+'</td>'}
                                                 }; tableContent="<tr>"+tableContent+"</tr>"
              
              }
              
              
              tableContent = '<'+myTable+' ><tbody>'+tableContent+'</tbody></table >'
              //log(tableContent)
              setState("javascript." + instance + ".Wetterstation.MonthlyDaten",tableContent)
              }
              
              //--------------------------------------------------------------------------------------------------
              async function main() {
                if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.MonthlyDaten"))) {
                    await createStateAsync("Wetterstation.MonthlyDaten", "leer", {type: "string", name: "MonthlyDaten", role: "value", read: true, write: true, } ); }
                if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.MonatAuswahl"))) {
                    await createStateAsync("Wetterstation.MonatAuswahl", 10, {type: "number", name: "MonatAuswahl", role: "value", read: true, write: true, } ); }  
                monWahlVIS=((await getStateAsync("javascript." + instance + ".Wetterstation.MonatAuswahl")).val ) 
                dataStuff();
              
              }
              
              //-----------------------------------------------------------------------------------------------------
              main()
              
              
              
              on({id: "javascript." + instance + ".Wetterstation.MonatAuswahl", change: "any"}, async function (obj) {
              main()
              
              });
              
              schedule('  */30 * * * *', function() { 
                setState("javascript." + instance + ".Wetterstation.MonatAuswahl", parseInt(formatDate(getDateObject((new Date().getTime())), "MM"))) 
              });
              
              
               
              
              

              Image 1.png

              NegaleinN Offline
              NegaleinN Offline
              Negalein
              Global Moderator
              schrieb am zuletzt editiert von
              #18

              @liv-in-sky sagte in VIS-Tabelle für WLAN Wetterstation:

              fehler entdeckt und oben upgedatet

              Super, funktioniert
              Merci

              ° Node.js: 20.17.0 NPM: 10.8.2
              ° Proxmox, Ubuntu 22.04.3 LTS
              ° Fixer ---> iob fix

              liv-in-skyL 1 Antwort Letzte Antwort
              0
              • NegaleinN Negalein

                @liv-in-sky sagte in VIS-Tabelle für WLAN Wetterstation:

                fehler entdeckt und oben upgedatet

                Super, funktioniert
                Merci

                liv-in-skyL Offline
                liv-in-skyL Offline
                liv-in-sky
                schrieb am zuletzt editiert von
                #19

                @Negalein leider kann ich es nicht verwenden (habe keine wetterstation) - suche schon nach einer anzeige in meinen datenpunkten, damit ich das script verwenden kann :-)

                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                NegaleinN M 2 Antworten Letzte Antwort
                0
                • liv-in-skyL liv-in-sky

                  @Negalein leider kann ich es nicht verwenden (habe keine wetterstation) - suche schon nach einer anzeige in meinen datenpunkten, damit ich das script verwenden kann :-)

                  NegaleinN Offline
                  NegaleinN Offline
                  Negalein
                  Global Moderator
                  schrieb am zuletzt editiert von
                  #20

                  @liv-in-sky sagte in VIS-Tabelle für WLAN Wetterstation:

                  habe keine wetterstation

                  dann wird es Zeit ;)

                  ° Node.js: 20.17.0 NPM: 10.8.2
                  ° Proxmox, Ubuntu 22.04.3 LTS
                  ° Fixer ---> iob fix

                  da_WoodyD 1 Antwort Letzte Antwort
                  0
                  • NegaleinN Negalein

                    @liv-in-sky sagte in VIS-Tabelle für WLAN Wetterstation:

                    habe keine wetterstation

                    dann wird es Zeit ;)

                    da_WoodyD Online
                    da_WoodyD Online
                    da_Woody
                    schrieb am zuletzt editiert von
                    #21

                    @Negalein said in VIS-Tabelle für WLAN Wetterstation:

                    @liv-in-sky sagte in VIS-Tabelle für WLAN Wetterstation:

                    habe keine wetterstation

                    dann wird es Zeit ;)

                    der meinung bin ich auch! macht sich so schick...
                    20201023_143556.jpg

                    gruß vom Woody
                    HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                    1 Antwort Letzte Antwort
                    0
                    • liv-in-skyL Offline
                      liv-in-skyL Offline
                      liv-in-sky
                      schrieb am zuletzt editiert von
                      #22

                      hat jmd lust mal dieses script zu testen

                      widgets:

                      [{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Wetterstation.AuswahlJahr","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","values":"0;2019;2020;2021;2022","texts":"All Years;2019;2020;2021;2022","height":"100","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,"no_style":true},"style":{"left":"1142px","top":"70px"},"widgetSet":"jqui"},{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Wetterstation.MonatAuswahl","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","values":"1;2;3;4;5;6;7;8;9;10;11;12","texts":"JANUAR;FEBRUAR;MÄRZ;APRIL;MAI;JUNI;JULI;AUGUST;SEPTEMBER;OKTOBER;NOVEMBER;DEZEMBER","height":"100","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,"no_style":true},"style":{"left":"1258px","top":"70px"},"widgetSet":"jqui"},{"tpl":"tplHtml","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","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":"{javascript.0.Wetterstation.MonthlyDaten}"},"style":{"left":"1095px","top":"133px","width":"634px","height":"589px","font-family":"","color":"#f7f51d"},"widgetSet":"basic"}]
                      

                      script:

                      // @liv-in-sky 5.11.2020 14:45
                      
                      
                      const dataInputPath="controll-own.0.AAATEST.Wetter.Data";  //SEHR WICHTIG !!!!!!!!!
                      const inhaltFarbe="black"
                      const inhaltHintergrund="lightgray"
                      const monatFarbe="yellow"
                      const hintergrund="gray"
                      const htmlFarbTableBorderColor="yellow";
                      const abstandZelle=6;
                      const htmlRahmenLinien="all"
                      const htmlSchriftgroessehtmlSchriftart=""  //nicht verwendbar!
                      const htmlFarbFelderschrift="red";         //nicht verwendbar!
                      const htmlSchriftgroesse="13px";
                      const htmlSchriftart="Ubuntu-Light"//"monospace";       //oder z.b. "Helvetica"
                      const weite="auto";                        //oder "500px"
                      let myTable="table bordercolor=\""+htmlFarbTableBorderColor+"\" border=\"2px\" cellspacing=\""+abstandZelle+"\" cellpadding=\""+abstandZelle+"\" width=\""+weite+"\" rules=\""+htmlRahmenLinien+"\" style=\"color:"+htmlFarbFelderschrift+";  font-size:"+htmlSchriftgroesse+
                                            "; font-family:"+htmlSchriftart+";\"";
                                            
                      const varData={  Tiefstwert:       { einheit:"°C", name:"Minimum Temperatur"},
                                     Hoechstwert:      { einheit:"°C", name:"Maximum Temperatur"},
                                     Temp_Durchschnitt:{ einheit:"°C", name:"Durchschnittstemperatur"},
                                     Max_Windboe:      { einheit:'km/h', name:"Max Windböe"},
                                     Max_Regenmenge:   { einheit:'l/m2', name:"Max. Regen/Tag"},
                                     Regenmenge_Monat: { einheit:'l/m2', name:"Regen"},
                                     warme_Tage:       { einheit:"", name:"Warme Tage (über 20°C)"},
                                     Sommertage:       { einheit:"", name:"Sommertage (über 25°C)"},
                                     heisse_Tage:      { einheit:"", name:'Heiße Tage (über 30°C)'},
                                     Frost_Tage:       { einheit:"", name:"Frosttage (Min. unter 0°C)"},
                                     kalte_Tage:       { einheit:"", name:"Kalte Tage (Max. unter 10°C)"},
                                     Eistage:          { einheit:"", name:"Eistage (Max. unter 0°C)"},
                                     sehr_kalte_Tage:  { einheit:"", name:"Sehr kalte Tage (Min. unter -10°C)"}
                      }  
                      
                      const monate =["JANUAR","FEBRUAR","MÄRZ","APRIL","MAI","JUNI","JULI","AUGUST","SEPTEMBER","OKTOBER","NOVEMBER","DEZEMBER"];
                      
                      
                      //--------------------------nix mehr ändern ab hier--------------------------------------
                      let myObj;
                      let myArrAll=[]
                      let myArrErstellt=[]
                      let tableContent;
                      let monWahlVIS;
                      let lastThree;
                      //----------------------------------------------------------------------------------------
                      function dataStuff(){
                      let myArrAll=[]
                      let mySelector=dataInputPath+'.*.*'
                      $(mySelector).each(function(id, i) {
                      let ida=id.split("."); let lang=ida.length; let jahri=lang-2; let moni=lang-1;
                      let obj2 = { jahr: ida[jahri]};
                      let obj3 = { monat: ida[moni]};
                      let helper=JSON.parse(getState(id).val)
                      helper={ ...helper, ...obj2, ...obj3}
                      myArrAll.push(JSON.stringify(helper))
                      });
                      
                      tableContent = ""  
                      myObj=JSON.parse("\["+myArrAll.toString()+"\]")
                      
                      if (lastThree==0) {
                      //KOPFZEILE
                      let choseMonth=monate[monWahlVIS-1]
                      let choseMonthArr=choseMonth.split('')
                      let test=""
                      for (let i=0;i<choseMonthArr.length;i++){
                        // log(choseMonthArr[i])
                         test=test+choseMonthArr[i]+`
                         `    
                      }
                      
                      //log(test)
                      //tableContent+='<td  class=\"test-klein\"  rowspan=\"14\"\">'+choseMonth+'</td><td>Wetterwerte</td>'
                      tableContent+='<td class=\"myWetterStation\" width=\"25px\"  style=\"color:'+monatFarbe+';font-size:26px; background-color:'+hintergrund+' ; vertical-align:middle; text-align:center \"   rowspan=\"14\"\">'+test+'</td><td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\>Wetterwerte</td>'
                      for (let i=0;i<myObj.length;i++) {
                         if(parseInt(myObj[i].monat)==monWahlVIS){
                      tableContent += '<td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\ align=center>'  + myObj[i].jahr+'</td>'}
                      }; tableContent="<tr style=\"font-weight\:bold\">"+tableContent+"</tr>"
                      //RESTZEILEN
                      for(var index in varData){
                         tableContent+='<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\">'+varData[index].name+'</td>'
                         for (let i=0;i<myObj.length;i++) {
                            if(myObj[i].monat==monWahlVIS){
                              tableContent += '<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\" align=right>' + myObj[i][index] + ' '+ varData[index].einheit+'</td>'}
                                                          }; tableContent="<tr>"+tableContent+"</tr>"
                      
                      }
                      } //lastThree
                      else {
                      //log(myObj[0].monat)
                          myObj.sort(function (alpha, beta) {
                                   if (parseInt(alpha.monat) > parseInt(beta.monat))
                                       return 1;
                                    if (parseInt(beta.monat) > parseInt(alpha.monat))
                                       return -1;
                                    return 0;});
                                //    log(myObj[0].monat)
                      
                      //KOPFZEILE LASTTHREE
                      
                      let choseJahr=lastThree.toString()//formatDate(getDateObject((new Date().getTime())), "JJJJ")//monate[monWahlVIS-1]
                      let choseMonthArr=choseJahr.split('')
                      let test=""
                      for (let i=0;i<choseMonthArr.length;i++){
                        // log(choseMonthArr[i])
                         test=test+choseMonthArr[i]+`
                         `    
                      }
                      
                      //log(test)
                      //tableContent+='<td  class=\"test-klein\"  rowspan=\"14\"\">'+choseMonth+'</td><td>Wetterwerte</td>'
                      tableContent+='<td class=\"myWetterStation\" width=\"25px\"  style=\"color:'+monatFarbe+';font-size:26px; background-color:'+hintergrund+' ; vertical-align:middle; text-align:center \"   rowspan=\"14\"\">'+test+'</td><td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\>Wetterwerte</td>'
                      
                      for (let i=0;i<myObj.length;i++) {
                         
                         if( parseInt(myObj[i].jahr)==parseInt(choseJahr) && (parseInt(myObj[i].monat)==parseInt(monWahlVIS) || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-1 || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-2)){
                      tableContent += '<td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\ align=center>'  + monate[parseInt(myObj[i].monat)-1]+'</td>';}
                      }; tableContent="<tr style=\"font-weight\:bold\">"+tableContent+"</tr>"
                      //RESTZEILEN
                      for(var index in varData){
                         tableContent+='<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\">'+varData[index].name+'</td>'
                         for (let i=0;i<myObj.length;i++) {
                          if( parseInt(myObj[i].jahr)==parseInt(choseJahr) && (parseInt(myObj[i].monat)==parseInt(monWahlVIS) || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-1 || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-2)){
                              tableContent += '<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\" align=right>' + myObj[i][index] + ' '+ varData[index].einheit+'</td>'}
                                                          }; tableContent="<tr>"+tableContent+"</tr>"
                      
                      }
                      
                      
                      }
                      
                      tableContent = '<'+myTable+' ><tbody>'+tableContent+'</tbody></table >'
                      //log(tableContent)
                      
                      setState("javascript." + instance + ".Wetterstation.MonthlyDaten",tableContent)
                      }
                      
                      //--------------------------------------------------------------------------------------------------
                      async function main() {
                         if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.MonthlyDaten"))) {
                             await createStateAsync("Wetterstation.MonthlyDaten", "leer", {type: "string", name: "MonthlyDaten", role: "value", read: true, write: true, } ); }
                         if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.MonatAuswahl"))) {
                             await createStateAsync("Wetterstation.MonatAuswahl", 10, {type: "number", name: "MonatAuswahl", role: "value", read: true, write: true, } ); } 
                         if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.AuswahlJahr"))) {
                             await createStateAsync("Wetterstation.AuswahlJahr", 0, {type: "number", name: "AuswahlJahr", role: "value", read: true, write: true, } ); } 
                         lastThree = (await getStateAsync("javascript." + instance + ".Wetterstation.AuswahlJahr")).val //? lastThree=true : lastThree=false;  
                              
                         monWahlVIS=((await getStateAsync("javascript." + instance + ".Wetterstation.MonatAuswahl")).val ) 
                         dataStuff();
                      
                      }
                      
                      //-----------------------------------------------------------------------------------------------------
                      main()
                      
                      
                      
                      on({id: "javascript." + instance + ".Wetterstation.MonatAuswahl", change: "any"}, async function (obj) {
                      main()
                      
                      });
                      
                      on({id: "javascript." + instance + ".Wetterstation.AuswahlJahr", change: "any"}, async function (obj) {
                      main()
                      
                      });
                      
                      schedule('  */30 * * * *', function() { 
                         setState("javascript." + instance + ".Wetterstation.MonatAuswahl", parseInt(formatDate(getDateObject((new Date().getTime())), "MM"))) 
                      });
                      
                      
                      
                      
                      
                      

                      • im script muss eigenlich nur der datenpunkt eingestellt werden
                      • es kommt ein weiteres widget dazu
                      • man kann das jahr abfragen und bekommt die letzten beiden monate und den gesuchten monat des jahres

                      anim-gif12.gif

                      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                      da_WoodyD SBorgS NegaleinN 3 Antworten Letzte Antwort
                      2
                      • liv-in-skyL liv-in-sky

                        hat jmd lust mal dieses script zu testen

                        widgets:

                        [{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Wetterstation.AuswahlJahr","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","values":"0;2019;2020;2021;2022","texts":"All Years;2019;2020;2021;2022","height":"100","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,"no_style":true},"style":{"left":"1142px","top":"70px"},"widgetSet":"jqui"},{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Wetterstation.MonatAuswahl","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","values":"1;2;3;4;5;6;7;8;9;10;11;12","texts":"JANUAR;FEBRUAR;MÄRZ;APRIL;MAI;JUNI;JULI;AUGUST;SEPTEMBER;OKTOBER;NOVEMBER;DEZEMBER","height":"100","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,"no_style":true},"style":{"left":"1258px","top":"70px"},"widgetSet":"jqui"},{"tpl":"tplHtml","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","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":"{javascript.0.Wetterstation.MonthlyDaten}"},"style":{"left":"1095px","top":"133px","width":"634px","height":"589px","font-family":"","color":"#f7f51d"},"widgetSet":"basic"}]
                        

                        script:

                        // @liv-in-sky 5.11.2020 14:45
                        
                        
                        const dataInputPath="controll-own.0.AAATEST.Wetter.Data";  //SEHR WICHTIG !!!!!!!!!
                        const inhaltFarbe="black"
                        const inhaltHintergrund="lightgray"
                        const monatFarbe="yellow"
                        const hintergrund="gray"
                        const htmlFarbTableBorderColor="yellow";
                        const abstandZelle=6;
                        const htmlRahmenLinien="all"
                        const htmlSchriftgroessehtmlSchriftart=""  //nicht verwendbar!
                        const htmlFarbFelderschrift="red";         //nicht verwendbar!
                        const htmlSchriftgroesse="13px";
                        const htmlSchriftart="Ubuntu-Light"//"monospace";       //oder z.b. "Helvetica"
                        const weite="auto";                        //oder "500px"
                        let myTable="table bordercolor=\""+htmlFarbTableBorderColor+"\" border=\"2px\" cellspacing=\""+abstandZelle+"\" cellpadding=\""+abstandZelle+"\" width=\""+weite+"\" rules=\""+htmlRahmenLinien+"\" style=\"color:"+htmlFarbFelderschrift+";  font-size:"+htmlSchriftgroesse+
                                              "; font-family:"+htmlSchriftart+";\"";
                                              
                        const varData={  Tiefstwert:       { einheit:"°C", name:"Minimum Temperatur"},
                                       Hoechstwert:      { einheit:"°C", name:"Maximum Temperatur"},
                                       Temp_Durchschnitt:{ einheit:"°C", name:"Durchschnittstemperatur"},
                                       Max_Windboe:      { einheit:'km/h', name:"Max Windböe"},
                                       Max_Regenmenge:   { einheit:'l/m2', name:"Max. Regen/Tag"},
                                       Regenmenge_Monat: { einheit:'l/m2', name:"Regen"},
                                       warme_Tage:       { einheit:"", name:"Warme Tage (über 20°C)"},
                                       Sommertage:       { einheit:"", name:"Sommertage (über 25°C)"},
                                       heisse_Tage:      { einheit:"", name:'Heiße Tage (über 30°C)'},
                                       Frost_Tage:       { einheit:"", name:"Frosttage (Min. unter 0°C)"},
                                       kalte_Tage:       { einheit:"", name:"Kalte Tage (Max. unter 10°C)"},
                                       Eistage:          { einheit:"", name:"Eistage (Max. unter 0°C)"},
                                       sehr_kalte_Tage:  { einheit:"", name:"Sehr kalte Tage (Min. unter -10°C)"}
                        }  
                        
                        const monate =["JANUAR","FEBRUAR","MÄRZ","APRIL","MAI","JUNI","JULI","AUGUST","SEPTEMBER","OKTOBER","NOVEMBER","DEZEMBER"];
                        
                        
                        //--------------------------nix mehr ändern ab hier--------------------------------------
                        let myObj;
                        let myArrAll=[]
                        let myArrErstellt=[]
                        let tableContent;
                        let monWahlVIS;
                        let lastThree;
                        //----------------------------------------------------------------------------------------
                        function dataStuff(){
                        let myArrAll=[]
                        let mySelector=dataInputPath+'.*.*'
                        $(mySelector).each(function(id, i) {
                        let ida=id.split("."); let lang=ida.length; let jahri=lang-2; let moni=lang-1;
                        let obj2 = { jahr: ida[jahri]};
                        let obj3 = { monat: ida[moni]};
                        let helper=JSON.parse(getState(id).val)
                        helper={ ...helper, ...obj2, ...obj3}
                        myArrAll.push(JSON.stringify(helper))
                        });
                        
                        tableContent = ""  
                        myObj=JSON.parse("\["+myArrAll.toString()+"\]")
                        
                        if (lastThree==0) {
                        //KOPFZEILE
                        let choseMonth=monate[monWahlVIS-1]
                        let choseMonthArr=choseMonth.split('')
                        let test=""
                        for (let i=0;i<choseMonthArr.length;i++){
                          // log(choseMonthArr[i])
                           test=test+choseMonthArr[i]+`
                           `    
                        }
                        
                        //log(test)
                        //tableContent+='<td  class=\"test-klein\"  rowspan=\"14\"\">'+choseMonth+'</td><td>Wetterwerte</td>'
                        tableContent+='<td class=\"myWetterStation\" width=\"25px\"  style=\"color:'+monatFarbe+';font-size:26px; background-color:'+hintergrund+' ; vertical-align:middle; text-align:center \"   rowspan=\"14\"\">'+test+'</td><td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\>Wetterwerte</td>'
                        for (let i=0;i<myObj.length;i++) {
                           if(parseInt(myObj[i].monat)==monWahlVIS){
                        tableContent += '<td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\ align=center>'  + myObj[i].jahr+'</td>'}
                        }; tableContent="<tr style=\"font-weight\:bold\">"+tableContent+"</tr>"
                        //RESTZEILEN
                        for(var index in varData){
                           tableContent+='<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\">'+varData[index].name+'</td>'
                           for (let i=0;i<myObj.length;i++) {
                              if(myObj[i].monat==monWahlVIS){
                                tableContent += '<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\" align=right>' + myObj[i][index] + ' '+ varData[index].einheit+'</td>'}
                                                            }; tableContent="<tr>"+tableContent+"</tr>"
                        
                        }
                        } //lastThree
                        else {
                        //log(myObj[0].monat)
                            myObj.sort(function (alpha, beta) {
                                     if (parseInt(alpha.monat) > parseInt(beta.monat))
                                         return 1;
                                      if (parseInt(beta.monat) > parseInt(alpha.monat))
                                         return -1;
                                      return 0;});
                                  //    log(myObj[0].monat)
                        
                        //KOPFZEILE LASTTHREE
                        
                        let choseJahr=lastThree.toString()//formatDate(getDateObject((new Date().getTime())), "JJJJ")//monate[monWahlVIS-1]
                        let choseMonthArr=choseJahr.split('')
                        let test=""
                        for (let i=0;i<choseMonthArr.length;i++){
                          // log(choseMonthArr[i])
                           test=test+choseMonthArr[i]+`
                           `    
                        }
                        
                        //log(test)
                        //tableContent+='<td  class=\"test-klein\"  rowspan=\"14\"\">'+choseMonth+'</td><td>Wetterwerte</td>'
                        tableContent+='<td class=\"myWetterStation\" width=\"25px\"  style=\"color:'+monatFarbe+';font-size:26px; background-color:'+hintergrund+' ; vertical-align:middle; text-align:center \"   rowspan=\"14\"\">'+test+'</td><td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\>Wetterwerte</td>'
                        
                        for (let i=0;i<myObj.length;i++) {
                           
                           if( parseInt(myObj[i].jahr)==parseInt(choseJahr) && (parseInt(myObj[i].monat)==parseInt(monWahlVIS) || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-1 || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-2)){
                        tableContent += '<td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\ align=center>'  + monate[parseInt(myObj[i].monat)-1]+'</td>';}
                        }; tableContent="<tr style=\"font-weight\:bold\">"+tableContent+"</tr>"
                        //RESTZEILEN
                        for(var index in varData){
                           tableContent+='<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\">'+varData[index].name+'</td>'
                           for (let i=0;i<myObj.length;i++) {
                            if( parseInt(myObj[i].jahr)==parseInt(choseJahr) && (parseInt(myObj[i].monat)==parseInt(monWahlVIS) || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-1 || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-2)){
                                tableContent += '<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\" align=right>' + myObj[i][index] + ' '+ varData[index].einheit+'</td>'}
                                                            }; tableContent="<tr>"+tableContent+"</tr>"
                        
                        }
                        
                        
                        }
                        
                        tableContent = '<'+myTable+' ><tbody>'+tableContent+'</tbody></table >'
                        //log(tableContent)
                        
                        setState("javascript." + instance + ".Wetterstation.MonthlyDaten",tableContent)
                        }
                        
                        //--------------------------------------------------------------------------------------------------
                        async function main() {
                           if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.MonthlyDaten"))) {
                               await createStateAsync("Wetterstation.MonthlyDaten", "leer", {type: "string", name: "MonthlyDaten", role: "value", read: true, write: true, } ); }
                           if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.MonatAuswahl"))) {
                               await createStateAsync("Wetterstation.MonatAuswahl", 10, {type: "number", name: "MonatAuswahl", role: "value", read: true, write: true, } ); } 
                           if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.AuswahlJahr"))) {
                               await createStateAsync("Wetterstation.AuswahlJahr", 0, {type: "number", name: "AuswahlJahr", role: "value", read: true, write: true, } ); } 
                           lastThree = (await getStateAsync("javascript." + instance + ".Wetterstation.AuswahlJahr")).val //? lastThree=true : lastThree=false;  
                                
                           monWahlVIS=((await getStateAsync("javascript." + instance + ".Wetterstation.MonatAuswahl")).val ) 
                           dataStuff();
                        
                        }
                        
                        //-----------------------------------------------------------------------------------------------------
                        main()
                        
                        
                        
                        on({id: "javascript." + instance + ".Wetterstation.MonatAuswahl", change: "any"}, async function (obj) {
                        main()
                        
                        });
                        
                        on({id: "javascript." + instance + ".Wetterstation.AuswahlJahr", change: "any"}, async function (obj) {
                        main()
                        
                        });
                        
                        schedule('  */30 * * * *', function() { 
                           setState("javascript." + instance + ".Wetterstation.MonatAuswahl", parseInt(formatDate(getDateObject((new Date().getTime())), "MM"))) 
                        });
                        
                        
                        
                        
                        
                        

                        • im script muss eigenlich nur der datenpunkt eingestellt werden
                        • es kommt ein weiteres widget dazu
                        • man kann das jahr abfragen und bekommt die letzten beiden monate und den gesuchten monat des jahres

                        anim-gif12.gif

                        da_WoodyD Online
                        da_WoodyD Online
                        da_Woody
                        schrieb am zuletzt editiert von
                        #23

                        @liv-in-sky mann, ich komm ja jetzt schon nicht mehr nach! :clown_face:

                        gruß vom Woody
                        HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                        1 Antwort Letzte Antwort
                        0
                        • liv-in-skyL liv-in-sky

                          hat jmd lust mal dieses script zu testen

                          widgets:

                          [{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Wetterstation.AuswahlJahr","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","values":"0;2019;2020;2021;2022","texts":"All Years;2019;2020;2021;2022","height":"100","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,"no_style":true},"style":{"left":"1142px","top":"70px"},"widgetSet":"jqui"},{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Wetterstation.MonatAuswahl","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","values":"1;2;3;4;5;6;7;8;9;10;11;12","texts":"JANUAR;FEBRUAR;MÄRZ;APRIL;MAI;JUNI;JULI;AUGUST;SEPTEMBER;OKTOBER;NOVEMBER;DEZEMBER","height":"100","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,"no_style":true},"style":{"left":"1258px","top":"70px"},"widgetSet":"jqui"},{"tpl":"tplHtml","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","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":"{javascript.0.Wetterstation.MonthlyDaten}"},"style":{"left":"1095px","top":"133px","width":"634px","height":"589px","font-family":"","color":"#f7f51d"},"widgetSet":"basic"}]
                          

                          script:

                          // @liv-in-sky 5.11.2020 14:45
                          
                          
                          const dataInputPath="controll-own.0.AAATEST.Wetter.Data";  //SEHR WICHTIG !!!!!!!!!
                          const inhaltFarbe="black"
                          const inhaltHintergrund="lightgray"
                          const monatFarbe="yellow"
                          const hintergrund="gray"
                          const htmlFarbTableBorderColor="yellow";
                          const abstandZelle=6;
                          const htmlRahmenLinien="all"
                          const htmlSchriftgroessehtmlSchriftart=""  //nicht verwendbar!
                          const htmlFarbFelderschrift="red";         //nicht verwendbar!
                          const htmlSchriftgroesse="13px";
                          const htmlSchriftart="Ubuntu-Light"//"monospace";       //oder z.b. "Helvetica"
                          const weite="auto";                        //oder "500px"
                          let myTable="table bordercolor=\""+htmlFarbTableBorderColor+"\" border=\"2px\" cellspacing=\""+abstandZelle+"\" cellpadding=\""+abstandZelle+"\" width=\""+weite+"\" rules=\""+htmlRahmenLinien+"\" style=\"color:"+htmlFarbFelderschrift+";  font-size:"+htmlSchriftgroesse+
                                                "; font-family:"+htmlSchriftart+";\"";
                                                
                          const varData={  Tiefstwert:       { einheit:"°C", name:"Minimum Temperatur"},
                                         Hoechstwert:      { einheit:"°C", name:"Maximum Temperatur"},
                                         Temp_Durchschnitt:{ einheit:"°C", name:"Durchschnittstemperatur"},
                                         Max_Windboe:      { einheit:'km/h', name:"Max Windböe"},
                                         Max_Regenmenge:   { einheit:'l/m2', name:"Max. Regen/Tag"},
                                         Regenmenge_Monat: { einheit:'l/m2', name:"Regen"},
                                         warme_Tage:       { einheit:"", name:"Warme Tage (über 20°C)"},
                                         Sommertage:       { einheit:"", name:"Sommertage (über 25°C)"},
                                         heisse_Tage:      { einheit:"", name:'Heiße Tage (über 30°C)'},
                                         Frost_Tage:       { einheit:"", name:"Frosttage (Min. unter 0°C)"},
                                         kalte_Tage:       { einheit:"", name:"Kalte Tage (Max. unter 10°C)"},
                                         Eistage:          { einheit:"", name:"Eistage (Max. unter 0°C)"},
                                         sehr_kalte_Tage:  { einheit:"", name:"Sehr kalte Tage (Min. unter -10°C)"}
                          }  
                          
                          const monate =["JANUAR","FEBRUAR","MÄRZ","APRIL","MAI","JUNI","JULI","AUGUST","SEPTEMBER","OKTOBER","NOVEMBER","DEZEMBER"];
                          
                          
                          //--------------------------nix mehr ändern ab hier--------------------------------------
                          let myObj;
                          let myArrAll=[]
                          let myArrErstellt=[]
                          let tableContent;
                          let monWahlVIS;
                          let lastThree;
                          //----------------------------------------------------------------------------------------
                          function dataStuff(){
                          let myArrAll=[]
                          let mySelector=dataInputPath+'.*.*'
                          $(mySelector).each(function(id, i) {
                          let ida=id.split("."); let lang=ida.length; let jahri=lang-2; let moni=lang-1;
                          let obj2 = { jahr: ida[jahri]};
                          let obj3 = { monat: ida[moni]};
                          let helper=JSON.parse(getState(id).val)
                          helper={ ...helper, ...obj2, ...obj3}
                          myArrAll.push(JSON.stringify(helper))
                          });
                          
                          tableContent = ""  
                          myObj=JSON.parse("\["+myArrAll.toString()+"\]")
                          
                          if (lastThree==0) {
                          //KOPFZEILE
                          let choseMonth=monate[monWahlVIS-1]
                          let choseMonthArr=choseMonth.split('')
                          let test=""
                          for (let i=0;i<choseMonthArr.length;i++){
                            // log(choseMonthArr[i])
                             test=test+choseMonthArr[i]+`
                             `    
                          }
                          
                          //log(test)
                          //tableContent+='<td  class=\"test-klein\"  rowspan=\"14\"\">'+choseMonth+'</td><td>Wetterwerte</td>'
                          tableContent+='<td class=\"myWetterStation\" width=\"25px\"  style=\"color:'+monatFarbe+';font-size:26px; background-color:'+hintergrund+' ; vertical-align:middle; text-align:center \"   rowspan=\"14\"\">'+test+'</td><td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\>Wetterwerte</td>'
                          for (let i=0;i<myObj.length;i++) {
                             if(parseInt(myObj[i].monat)==monWahlVIS){
                          tableContent += '<td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\ align=center>'  + myObj[i].jahr+'</td>'}
                          }; tableContent="<tr style=\"font-weight\:bold\">"+tableContent+"</tr>"
                          //RESTZEILEN
                          for(var index in varData){
                             tableContent+='<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\">'+varData[index].name+'</td>'
                             for (let i=0;i<myObj.length;i++) {
                                if(myObj[i].monat==monWahlVIS){
                                  tableContent += '<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\" align=right>' + myObj[i][index] + ' '+ varData[index].einheit+'</td>'}
                                                              }; tableContent="<tr>"+tableContent+"</tr>"
                          
                          }
                          } //lastThree
                          else {
                          //log(myObj[0].monat)
                              myObj.sort(function (alpha, beta) {
                                       if (parseInt(alpha.monat) > parseInt(beta.monat))
                                           return 1;
                                        if (parseInt(beta.monat) > parseInt(alpha.monat))
                                           return -1;
                                        return 0;});
                                    //    log(myObj[0].monat)
                          
                          //KOPFZEILE LASTTHREE
                          
                          let choseJahr=lastThree.toString()//formatDate(getDateObject((new Date().getTime())), "JJJJ")//monate[monWahlVIS-1]
                          let choseMonthArr=choseJahr.split('')
                          let test=""
                          for (let i=0;i<choseMonthArr.length;i++){
                            // log(choseMonthArr[i])
                             test=test+choseMonthArr[i]+`
                             `    
                          }
                          
                          //log(test)
                          //tableContent+='<td  class=\"test-klein\"  rowspan=\"14\"\">'+choseMonth+'</td><td>Wetterwerte</td>'
                          tableContent+='<td class=\"myWetterStation\" width=\"25px\"  style=\"color:'+monatFarbe+';font-size:26px; background-color:'+hintergrund+' ; vertical-align:middle; text-align:center \"   rowspan=\"14\"\">'+test+'</td><td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\>Wetterwerte</td>'
                          
                          for (let i=0;i<myObj.length;i++) {
                             
                             if( parseInt(myObj[i].jahr)==parseInt(choseJahr) && (parseInt(myObj[i].monat)==parseInt(monWahlVIS) || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-1 || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-2)){
                          tableContent += '<td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\ align=center>'  + monate[parseInt(myObj[i].monat)-1]+'</td>';}
                          }; tableContent="<tr style=\"font-weight\:bold\">"+tableContent+"</tr>"
                          //RESTZEILEN
                          for(var index in varData){
                             tableContent+='<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\">'+varData[index].name+'</td>'
                             for (let i=0;i<myObj.length;i++) {
                              if( parseInt(myObj[i].jahr)==parseInt(choseJahr) && (parseInt(myObj[i].monat)==parseInt(monWahlVIS) || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-1 || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-2)){
                                  tableContent += '<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\" align=right>' + myObj[i][index] + ' '+ varData[index].einheit+'</td>'}
                                                              }; tableContent="<tr>"+tableContent+"</tr>"
                          
                          }
                          
                          
                          }
                          
                          tableContent = '<'+myTable+' ><tbody>'+tableContent+'</tbody></table >'
                          //log(tableContent)
                          
                          setState("javascript." + instance + ".Wetterstation.MonthlyDaten",tableContent)
                          }
                          
                          //--------------------------------------------------------------------------------------------------
                          async function main() {
                             if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.MonthlyDaten"))) {
                                 await createStateAsync("Wetterstation.MonthlyDaten", "leer", {type: "string", name: "MonthlyDaten", role: "value", read: true, write: true, } ); }
                             if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.MonatAuswahl"))) {
                                 await createStateAsync("Wetterstation.MonatAuswahl", 10, {type: "number", name: "MonatAuswahl", role: "value", read: true, write: true, } ); } 
                             if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.AuswahlJahr"))) {
                                 await createStateAsync("Wetterstation.AuswahlJahr", 0, {type: "number", name: "AuswahlJahr", role: "value", read: true, write: true, } ); } 
                             lastThree = (await getStateAsync("javascript." + instance + ".Wetterstation.AuswahlJahr")).val //? lastThree=true : lastThree=false;  
                                  
                             monWahlVIS=((await getStateAsync("javascript." + instance + ".Wetterstation.MonatAuswahl")).val ) 
                             dataStuff();
                          
                          }
                          
                          //-----------------------------------------------------------------------------------------------------
                          main()
                          
                          
                          
                          on({id: "javascript." + instance + ".Wetterstation.MonatAuswahl", change: "any"}, async function (obj) {
                          main()
                          
                          });
                          
                          on({id: "javascript." + instance + ".Wetterstation.AuswahlJahr", change: "any"}, async function (obj) {
                          main()
                          
                          });
                          
                          schedule('  */30 * * * *', function() { 
                             setState("javascript." + instance + ".Wetterstation.MonatAuswahl", parseInt(formatDate(getDateObject((new Date().getTime())), "MM"))) 
                          });
                          
                          
                          
                          
                          
                          

                          • im script muss eigenlich nur der datenpunkt eingestellt werden
                          • es kommt ein weiteres widget dazu
                          • man kann das jahr abfragen und bekommt die letzten beiden monate und den gesuchten monat des jahres

                          anim-gif12.gif

                          SBorgS Offline
                          SBorgS Offline
                          SBorg
                          Forum Testing Most Active
                          schrieb am zuletzt editiert von
                          #24

                          @liv-in-sky Bin endlich auch mal dazu gekommen, sieht mit "echten" Daten gut aus :+1:
                          Bild 1.png

                          LG SBorg ( SBorg auf GitHub)
                          Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                          liv-in-skyL 1 Antwort Letzte Antwort
                          0
                          • SBorgS SBorg

                            @liv-in-sky Bin endlich auch mal dazu gekommen, sieht mit "echten" Daten gut aus :+1:
                            Bild 1.png

                            liv-in-skyL Offline
                            liv-in-skyL Offline
                            liv-in-sky
                            schrieb am zuletzt editiert von
                            #25

                            @SBorg

                            danke für's testen - die farben gehören wohl noch geändert - aber das kann man ja im script einfach machen

                            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                            SBorgS 1 Antwort Letzte Antwort
                            0
                            • liv-in-skyL liv-in-sky

                              @SBorg

                              danke für's testen - die farben gehören wohl noch geändert - aber das kann man ja im script einfach machen

                              SBorgS Offline
                              SBorgS Offline
                              SBorg
                              Forum Testing Most Active
                              schrieb am zuletzt editiert von
                              #26

                              @liv-in-sky :grin: Gelb ist auch nicht so meins, aber für einen 1. Test zuerst so wenig wie möglich ändern.
                              ...und schön wenn man sich nicht um alles alleine kümmern muss. Doku dauert mittlerweile bald länger als das programmieren.

                              btw: Wetterstation im Angebot ;)

                              LG SBorg ( SBorg auf GitHub)
                              Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                              liv-in-skyL 1 Antwort Letzte Antwort
                              0
                              • SBorgS SBorg

                                @liv-in-sky :grin: Gelb ist auch nicht so meins, aber für einen 1. Test zuerst so wenig wie möglich ändern.
                                ...und schön wenn man sich nicht um alles alleine kümmern muss. Doku dauert mittlerweile bald länger als das programmieren.

                                btw: Wetterstation im Angebot ;)

                                liv-in-skyL Offline
                                liv-in-skyL Offline
                                liv-in-sky
                                schrieb am zuletzt editiert von
                                #27

                                @SBorg glaub ich - deshalb dachte ich mir, du hast so viel arbeit reingesteckt - da schadet es nicht, wenn man in der vis was zu spielen und sehen hat

                                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                1 Antwort Letzte Antwort
                                0
                                • liv-in-skyL liv-in-sky

                                  hat jmd lust mal dieses script zu testen

                                  widgets:

                                  [{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Wetterstation.AuswahlJahr","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","values":"0;2019;2020;2021;2022","texts":"All Years;2019;2020;2021;2022","height":"100","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,"no_style":true},"style":{"left":"1142px","top":"70px"},"widgetSet":"jqui"},{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Wetterstation.MonatAuswahl","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","values":"1;2;3;4;5;6;7;8;9;10;11;12","texts":"JANUAR;FEBRUAR;MÄRZ;APRIL;MAI;JUNI;JULI;AUGUST;SEPTEMBER;OKTOBER;NOVEMBER;DEZEMBER","height":"100","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,"no_style":true},"style":{"left":"1258px","top":"70px"},"widgetSet":"jqui"},{"tpl":"tplHtml","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","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":"{javascript.0.Wetterstation.MonthlyDaten}"},"style":{"left":"1095px","top":"133px","width":"634px","height":"589px","font-family":"","color":"#f7f51d"},"widgetSet":"basic"}]
                                  

                                  script:

                                  // @liv-in-sky 5.11.2020 14:45
                                  
                                  
                                  const dataInputPath="controll-own.0.AAATEST.Wetter.Data";  //SEHR WICHTIG !!!!!!!!!
                                  const inhaltFarbe="black"
                                  const inhaltHintergrund="lightgray"
                                  const monatFarbe="yellow"
                                  const hintergrund="gray"
                                  const htmlFarbTableBorderColor="yellow";
                                  const abstandZelle=6;
                                  const htmlRahmenLinien="all"
                                  const htmlSchriftgroessehtmlSchriftart=""  //nicht verwendbar!
                                  const htmlFarbFelderschrift="red";         //nicht verwendbar!
                                  const htmlSchriftgroesse="13px";
                                  const htmlSchriftart="Ubuntu-Light"//"monospace";       //oder z.b. "Helvetica"
                                  const weite="auto";                        //oder "500px"
                                  let myTable="table bordercolor=\""+htmlFarbTableBorderColor+"\" border=\"2px\" cellspacing=\""+abstandZelle+"\" cellpadding=\""+abstandZelle+"\" width=\""+weite+"\" rules=\""+htmlRahmenLinien+"\" style=\"color:"+htmlFarbFelderschrift+";  font-size:"+htmlSchriftgroesse+
                                                        "; font-family:"+htmlSchriftart+";\"";
                                                        
                                  const varData={  Tiefstwert:       { einheit:"°C", name:"Minimum Temperatur"},
                                                 Hoechstwert:      { einheit:"°C", name:"Maximum Temperatur"},
                                                 Temp_Durchschnitt:{ einheit:"°C", name:"Durchschnittstemperatur"},
                                                 Max_Windboe:      { einheit:'km/h', name:"Max Windböe"},
                                                 Max_Regenmenge:   { einheit:'l/m2', name:"Max. Regen/Tag"},
                                                 Regenmenge_Monat: { einheit:'l/m2', name:"Regen"},
                                                 warme_Tage:       { einheit:"", name:"Warme Tage (über 20°C)"},
                                                 Sommertage:       { einheit:"", name:"Sommertage (über 25°C)"},
                                                 heisse_Tage:      { einheit:"", name:'Heiße Tage (über 30°C)'},
                                                 Frost_Tage:       { einheit:"", name:"Frosttage (Min. unter 0°C)"},
                                                 kalte_Tage:       { einheit:"", name:"Kalte Tage (Max. unter 10°C)"},
                                                 Eistage:          { einheit:"", name:"Eistage (Max. unter 0°C)"},
                                                 sehr_kalte_Tage:  { einheit:"", name:"Sehr kalte Tage (Min. unter -10°C)"}
                                  }  
                                  
                                  const monate =["JANUAR","FEBRUAR","MÄRZ","APRIL","MAI","JUNI","JULI","AUGUST","SEPTEMBER","OKTOBER","NOVEMBER","DEZEMBER"];
                                  
                                  
                                  //--------------------------nix mehr ändern ab hier--------------------------------------
                                  let myObj;
                                  let myArrAll=[]
                                  let myArrErstellt=[]
                                  let tableContent;
                                  let monWahlVIS;
                                  let lastThree;
                                  //----------------------------------------------------------------------------------------
                                  function dataStuff(){
                                  let myArrAll=[]
                                  let mySelector=dataInputPath+'.*.*'
                                  $(mySelector).each(function(id, i) {
                                  let ida=id.split("."); let lang=ida.length; let jahri=lang-2; let moni=lang-1;
                                  let obj2 = { jahr: ida[jahri]};
                                  let obj3 = { monat: ida[moni]};
                                  let helper=JSON.parse(getState(id).val)
                                  helper={ ...helper, ...obj2, ...obj3}
                                  myArrAll.push(JSON.stringify(helper))
                                  });
                                  
                                  tableContent = ""  
                                  myObj=JSON.parse("\["+myArrAll.toString()+"\]")
                                  
                                  if (lastThree==0) {
                                  //KOPFZEILE
                                  let choseMonth=monate[monWahlVIS-1]
                                  let choseMonthArr=choseMonth.split('')
                                  let test=""
                                  for (let i=0;i<choseMonthArr.length;i++){
                                    // log(choseMonthArr[i])
                                     test=test+choseMonthArr[i]+`
                                     `    
                                  }
                                  
                                  //log(test)
                                  //tableContent+='<td  class=\"test-klein\"  rowspan=\"14\"\">'+choseMonth+'</td><td>Wetterwerte</td>'
                                  tableContent+='<td class=\"myWetterStation\" width=\"25px\"  style=\"color:'+monatFarbe+';font-size:26px; background-color:'+hintergrund+' ; vertical-align:middle; text-align:center \"   rowspan=\"14\"\">'+test+'</td><td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\>Wetterwerte</td>'
                                  for (let i=0;i<myObj.length;i++) {
                                     if(parseInt(myObj[i].monat)==monWahlVIS){
                                  tableContent += '<td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\ align=center>'  + myObj[i].jahr+'</td>'}
                                  }; tableContent="<tr style=\"font-weight\:bold\">"+tableContent+"</tr>"
                                  //RESTZEILEN
                                  for(var index in varData){
                                     tableContent+='<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\">'+varData[index].name+'</td>'
                                     for (let i=0;i<myObj.length;i++) {
                                        if(myObj[i].monat==monWahlVIS){
                                          tableContent += '<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\" align=right>' + myObj[i][index] + ' '+ varData[index].einheit+'</td>'}
                                                                      }; tableContent="<tr>"+tableContent+"</tr>"
                                  
                                  }
                                  } //lastThree
                                  else {
                                  //log(myObj[0].monat)
                                      myObj.sort(function (alpha, beta) {
                                               if (parseInt(alpha.monat) > parseInt(beta.monat))
                                                   return 1;
                                                if (parseInt(beta.monat) > parseInt(alpha.monat))
                                                   return -1;
                                                return 0;});
                                            //    log(myObj[0].monat)
                                  
                                  //KOPFZEILE LASTTHREE
                                  
                                  let choseJahr=lastThree.toString()//formatDate(getDateObject((new Date().getTime())), "JJJJ")//monate[monWahlVIS-1]
                                  let choseMonthArr=choseJahr.split('')
                                  let test=""
                                  for (let i=0;i<choseMonthArr.length;i++){
                                    // log(choseMonthArr[i])
                                     test=test+choseMonthArr[i]+`
                                     `    
                                  }
                                  
                                  //log(test)
                                  //tableContent+='<td  class=\"test-klein\"  rowspan=\"14\"\">'+choseMonth+'</td><td>Wetterwerte</td>'
                                  tableContent+='<td class=\"myWetterStation\" width=\"25px\"  style=\"color:'+monatFarbe+';font-size:26px; background-color:'+hintergrund+' ; vertical-align:middle; text-align:center \"   rowspan=\"14\"\">'+test+'</td><td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\>Wetterwerte</td>'
                                  
                                  for (let i=0;i<myObj.length;i++) {
                                     
                                     if( parseInt(myObj[i].jahr)==parseInt(choseJahr) && (parseInt(myObj[i].monat)==parseInt(monWahlVIS) || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-1 || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-2)){
                                  tableContent += '<td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\ align=center>'  + monate[parseInt(myObj[i].monat)-1]+'</td>';}
                                  }; tableContent="<tr style=\"font-weight\:bold\">"+tableContent+"</tr>"
                                  //RESTZEILEN
                                  for(var index in varData){
                                     tableContent+='<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\">'+varData[index].name+'</td>'
                                     for (let i=0;i<myObj.length;i++) {
                                      if( parseInt(myObj[i].jahr)==parseInt(choseJahr) && (parseInt(myObj[i].monat)==parseInt(monWahlVIS) || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-1 || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-2)){
                                          tableContent += '<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\" align=right>' + myObj[i][index] + ' '+ varData[index].einheit+'</td>'}
                                                                      }; tableContent="<tr>"+tableContent+"</tr>"
                                  
                                  }
                                  
                                  
                                  }
                                  
                                  tableContent = '<'+myTable+' ><tbody>'+tableContent+'</tbody></table >'
                                  //log(tableContent)
                                  
                                  setState("javascript." + instance + ".Wetterstation.MonthlyDaten",tableContent)
                                  }
                                  
                                  //--------------------------------------------------------------------------------------------------
                                  async function main() {
                                     if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.MonthlyDaten"))) {
                                         await createStateAsync("Wetterstation.MonthlyDaten", "leer", {type: "string", name: "MonthlyDaten", role: "value", read: true, write: true, } ); }
                                     if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.MonatAuswahl"))) {
                                         await createStateAsync("Wetterstation.MonatAuswahl", 10, {type: "number", name: "MonatAuswahl", role: "value", read: true, write: true, } ); } 
                                     if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.AuswahlJahr"))) {
                                         await createStateAsync("Wetterstation.AuswahlJahr", 0, {type: "number", name: "AuswahlJahr", role: "value", read: true, write: true, } ); } 
                                     lastThree = (await getStateAsync("javascript." + instance + ".Wetterstation.AuswahlJahr")).val //? lastThree=true : lastThree=false;  
                                          
                                     monWahlVIS=((await getStateAsync("javascript." + instance + ".Wetterstation.MonatAuswahl")).val ) 
                                     dataStuff();
                                  
                                  }
                                  
                                  //-----------------------------------------------------------------------------------------------------
                                  main()
                                  
                                  
                                  
                                  on({id: "javascript." + instance + ".Wetterstation.MonatAuswahl", change: "any"}, async function (obj) {
                                  main()
                                  
                                  });
                                  
                                  on({id: "javascript." + instance + ".Wetterstation.AuswahlJahr", change: "any"}, async function (obj) {
                                  main()
                                  
                                  });
                                  
                                  schedule('  */30 * * * *', function() { 
                                     setState("javascript." + instance + ".Wetterstation.MonatAuswahl", parseInt(formatDate(getDateObject((new Date().getTime())), "MM"))) 
                                  });
                                  
                                  
                                  
                                  
                                  
                                  

                                  • im script muss eigenlich nur der datenpunkt eingestellt werden
                                  • es kommt ein weiteres widget dazu
                                  • man kann das jahr abfragen und bekommt die letzten beiden monate und den gesuchten monat des jahres

                                  anim-gif12.gif

                                  NegaleinN Offline
                                  NegaleinN Offline
                                  Negalein
                                  Global Moderator
                                  schrieb am zuletzt editiert von
                                  #28

                                  @liv-in-sky sagte in VIS-Tabelle für WLAN Wetterstation:

                                  hat jmd lust mal dieses script zu testen

                                  getestet, läuft und für sehr gut gefunden :grin:

                                  ° Node.js: 20.17.0 NPM: 10.8.2
                                  ° Proxmox, Ubuntu 22.04.3 LTS
                                  ° Fixer ---> iob fix

                                  1 Antwort Letzte Antwort
                                  0
                                  • liv-in-skyL liv-in-sky

                                    @Negalein leider kann ich es nicht verwenden (habe keine wetterstation) - suche schon nach einer anzeige in meinen datenpunkten, damit ich das script verwenden kann :-)

                                    M Offline
                                    M Offline
                                    MyMeyer
                                    schrieb am zuletzt editiert von
                                    #29

                                    @liv-in-sky Na dann habe ich mir mal gleich eine bestellt...damit ich das Script testen kann.. :-)

                                    MyMeyer

                                    >>> Hardware: Intel I5 mit ****Debian ProxMox OS: Debian **** <<< >>> Network with UniFi <<<
                                    >>> HomeMatic CCU-2 (Wired und Funk) / Philips HUE / Echo.DOT / Echo.SHOW / Xiaomi Smart-Home / Xiaomi Robot Vacuum Cleaner / Synology DS 918+ / Shelly 1&2 <<<

                                    1 Antwort Letzte Antwort
                                    1
                                    • liv-in-skyL liv-in-sky

                                      gehört zu: https://forum.iobroker.net/topic/28384/linux-shell-skript-wlan-wetterstation/1528

                                      dieses script dient zur Wetterdaten-Anzeige für die WLAN Wetterstation

                                      1604403727276-anim-gif10.gif
                                      oder
                                      anim-gif12.gif

                                      • datenpunkte werden unter javascript.x.Wetterstation angelegt
                                      • ein dp für das html-standard-widget mit binding
                                      • ein datenpunkt um auswählen des monats
                                      • farben können eingestellt werden
                                      • schriftgröße oder abstand zu den zellen

                                      [{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Wetterstation.AuswahlJahr","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","values":"0;2019;2020;2021;2022","texts":"All Years;2019;2020;2021;2022","height":"100","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,"no_style":true},"style":{"left":"1142px","top":"70px"},"widgetSet":"jqui"},{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Wetterstation.MonatAuswahl","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","values":"1;2;3;4;5;6;7;8;9;10;11;12","texts":"JANUAR;FEBRUAR;MÄRZ;APRIL;MAI;JUNI;JULI;AUGUST;SEPTEMBER;OKTOBER;NOVEMBER;DEZEMBER","height":"100","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,"no_style":true},"style":{"left":"1258px","top":"70px"},"widgetSet":"jqui"},{"tpl":"tplHtml","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","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":"{javascript.0.Wetterstation.MonthlyDaten}"},"style":{"left":"1095px","top":"133px","width":"634px","height":"589px","font-family":"","color":"#f7f51d"},"widgetSet":"basic"}]
                                      

                                      // @liv-in-sky 4.10.2021 11:45
                                      //forum: https://forum.iobroker.net/topic/38286/vis-tabelle-f%C3%BCr-wlan-wetterstation
                                      
                                      
                                      const dataInputPath="0_userdata.0.CONTROL-OWN.AAATEST.Wetter.Data";  //SEHR WICHTIG !!!!!!!!!
                                      const inhaltFarbe="black"
                                      const inhaltHintergrund="lightgray"
                                      const monatFarbe="yellow"
                                      const hintergrund="grey"
                                      const htmlFarbTableBorderColor="yellow";
                                      const abstandZelle=6;
                                      const htmlRahmenLinien="all"
                                      const htmlSchriftgroessehtmlSchriftart=""  //nicht verwendbar!
                                      const htmlFarbFelderschrift="red";         //nicht verwendbar!
                                      const htmlSchriftgroesse="13px";
                                      const htmlSchriftart="Ubuntu-Light"//"monospace";       //oder z.b. "Helvetica"
                                      const weite="auto";                        //oder "500px"
                                      let myTable="table bordercolor=\""+htmlFarbTableBorderColor+"\" border=\"2px\" cellspacing=\""+abstandZelle+"\" cellpadding=\""+abstandZelle+"\" width=\""+weite+"\" rules=\""+htmlRahmenLinien+"\" style=\"color:"+htmlFarbFelderschrift+";  font-size:"+htmlSchriftgroesse+
                                                            "; font-family:"+htmlSchriftart+";\"";
                                                            
                                      const varData={ 
                                                     Hoechstwert:      { einheit:"°C", name:"Maximum Temperatur"}, 
                                                      kalte_Tage:       { einheit:"", name:"Kalte Tage (Max. unter 10°C)"},
                                                     Tiefstwert:       { einheit:"°C", name:"Minimum Temperatur"},
                                                     Temp_Durchschnitt:{ einheit:"°C", name:"Durchschnittstemperatur"},
                                                     Max_Windboe:      { einheit:'km/h', name:"Max Windböe"},
                                                     Max_Regenmenge:   { einheit:'l/m2', name:"Max. Regen/Tag"},
                                                     Regenmenge_Monat: { einheit:'l/m2', name:"Regen"},
                                                     warme_Tage:       { einheit:"", name:"Warme Tage (über 20°C)"},
                                                     Sommertage:       { einheit:"", name:"Sommertage (über 25°C)"},
                                                     heisse_Tage:      { einheit:"", name:'Heiße Tage (über 30°C)'},
                                                     Frost_Tage:       { einheit:"", name:"Frosttage (Min. unter 0°C)"},
                                                    
                                                     Eistage:          { einheit:"", name:"Eistage (Max. unter 0°C)"},
                                                     sehr_kalte_Tage:  { einheit:"", name:"Sehr kalte Tage (Min. unter -10°C)"}
                                      }  
                                      
                                      const monate =["JANUAR","FEBRUAR","MÄRZ","APRIL","MAI","JUNI","JULI","AUGUST","SEPTEMBER","OKTOBER","NOVEMBER","DEZEMBER"];
                                      
                                      
                                      //--------------------------nix mehr ändern ab hier--------------------------------------
                                      let myObj;
                                      let myArrAll=[]
                                      let myArrErstellt=[]
                                      let tableContent;
                                      let monWahlVIS;
                                      let lastThree;
                                      //----------------------------------------------------------------------------------------
                                      function dataStuff(){
                                      let myArrAll=[]
                                      let mySelector=dataInputPath+'.*.*'
                                      $(mySelector).each(function(id, i) {
                                      let ida=id.split("."); let lang=ida.length; let jahri=lang-2; let moni=lang-1;
                                      let obj2 = { jahr: ida[jahri]};
                                      let obj3 = { monat: ida[moni]};
                                      let formathelp= getState(id).val
                                      let helper;
                                      if (typeof(formathelp)=="object") {helper=getState(id).val[0];}  else{helper=JSON.parse(getState(id).val)}
                                      
                                      helper={ ...helper, ...obj2, ...obj3}
                                      myArrAll.push(JSON.stringify(helper))
                                      });
                                      //log(myArrAll)
                                      tableContent = ""  
                                      myObj=JSON.parse("\["+myArrAll.toString()+"\]")
                                      
                                      if (lastThree==0) {
                                      //KOPFZEILE
                                      let choseMonth=monate[monWahlVIS-1]
                                      let choseMonthArr=choseMonth.split('')
                                      let test=""
                                      for (let i=0;i<choseMonthArr.length;i++){
                                        // log(choseMonthArr[i])
                                         test=test+choseMonthArr[i]+`
                                         `    
                                      }
                                      
                                      //log(test)
                                      //tableContent+='<td  class=\"test-klein\"  rowspan=\"14\"\">'+choseMonth+'</td><td>Wetterwerte</td>'
                                      tableContent+='<td class=\"myWetterStation\" width=\"25px\"  style=\"color:'+monatFarbe+';font-size:26px; background-color:'+hintergrund+' ; vertical-align:middle; text-align:center \"   rowspan=\"14\"\">'+test+'</td><td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\>Wetterwerte</td>'
                                      for (let i=0;i<myObj.length;i++) {
                                         if(parseInt(myObj[i].monat)==monWahlVIS){
                                      tableContent += '<td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\ align=center>'  + myObj[i].jahr+'</td>'}
                                      }; tableContent="<tr style=\"font-weight\:bold\">"+tableContent+"</tr>"
                                      //RESTZEILEN
                                      for(var index in varData){
                                         tableContent+='<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\">'+varData[index].name+'</td>'
                                         for (let i=0;i<myObj.length;i++) {
                                            if(myObj[i].monat==monWahlVIS){
                                              tableContent += '<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\" align=right>' + myObj[i][index] + ' '+ varData[index].einheit+'</td>'}
                                                                          }; tableContent="<tr>"+tableContent+"</tr>"
                                      
                                      }
                                      } //lastThree
                                      else {
                                      //log(myObj[0].monat)
                                          myObj.sort(function (alpha, beta) {
                                                   if (parseInt(alpha.monat) > parseInt(beta.monat))
                                                       return 1;
                                                    if (parseInt(beta.monat) > parseInt(alpha.monat))
                                                       return -1;
                                                    return 0;});
                                                //    log(myObj[0].monat)
                                      
                                      //KOPFZEILE LASTTHREE
                                      
                                      let choseJahr=lastThree.toString()//formatDate(getDateObject((new Date().getTime())), "JJJJ")//monate[monWahlVIS-1]
                                      let choseMonthArr=choseJahr.split('')
                                      let test=""
                                      for (let i=0;i<choseMonthArr.length;i++){
                                        // log(choseMonthArr[i])
                                         test=test+choseMonthArr[i]+`
                                         `    
                                      }
                                      
                                      //log(test)
                                      //tableContent+='<td  class=\"test-klein\"  rowspan=\"14\"\">'+choseMonth+'</td><td>Wetterwerte</td>'
                                      tableContent+='<td class=\"myWetterStation\" width=\"25px\"  style=\"color:'+monatFarbe+';font-size:26px; background-color:'+hintergrund+' ; vertical-align:middle; text-align:center \"   rowspan=\"14\"\">'+test+'</td><td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\>Wetterwerte</td>'
                                      
                                      for (let i=0;i<myObj.length;i++) {
                                         
                                         if( parseInt(myObj[i].jahr)==parseInt(choseJahr) && (parseInt(myObj[i].monat)==parseInt(monWahlVIS) || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-1 || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-2)){
                                      tableContent += '<td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\ align=center>'  + monate[parseInt(myObj[i].monat)-1]+'</td>';}
                                      }; tableContent="<tr style=\"font-weight\:bold\">"+tableContent+"</tr>"
                                      //RESTZEILEN
                                      for(var index in varData){
                                         tableContent+='<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\">'+varData[index].name+'</td>'
                                         for (let i=0;i<myObj.length;i++) {
                                          if( parseInt(myObj[i].jahr)==parseInt(choseJahr) && (parseInt(myObj[i].monat)==parseInt(monWahlVIS) || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-1 || parseInt(myObj[i].monat)==parseInt(monWahlVIS)-2)){
                                              tableContent += '<td style=\"color:'+inhaltFarbe+'; background-color:'+inhaltHintergrund+'\" align=right>' + myObj[i][index] + ' '+ varData[index].einheit+'</td>'}
                                                                          }; tableContent="<tr>"+tableContent+"</tr>"
                                      
                                      }
                                      
                                      
                                      }
                                      
                                      tableContent = '<'+myTable+' ><tbody>'+tableContent+'</tbody></table >'
                                      //log(tableContent)
                                      
                                      setState("javascript." + instance + ".Wetterstation.MonthlyDaten",tableContent)
                                      }
                                      
                                      //--------------------------------------------------------------------------------------------------
                                      async function main() {
                                         if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.MonthlyDaten"))) {
                                             await createStateAsync("Wetterstation.MonthlyDaten", "leer", {type: "string", name: "MonthlyDaten", role: "value", read: true, write: true, } ); }
                                         if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.MonatAuswahl"))) {
                                             await createStateAsync("Wetterstation.MonatAuswahl", 10, {type: "number", name: "MonatAuswahl", role: "value", read: true, write: true, } ); } 
                                         if (!(await existsStateAsync("javascript." + instance + ".Wetterstation.AuswahlJahr"))) {
                                             await createStateAsync("Wetterstation.AuswahlJahr", 0, {type: "number", name: "AuswahlJahr", role: "value", read: true, write: true, } ); } 
                                         lastThree = (await getStateAsync("javascript." + instance + ".Wetterstation.AuswahlJahr")).val //? lastThree=true : lastThree=false;  
                                              
                                         monWahlVIS=((await getStateAsync("javascript." + instance + ".Wetterstation.MonatAuswahl")).val ) 
                                         dataStuff();
                                      
                                      }
                                      
                                      //-----------------------------------------------------------------------------------------------------
                                      main()
                                      
                                      
                                      
                                      on({id: "javascript." + instance + ".Wetterstation.MonatAuswahl", change: "any"}, async function (obj) {
                                      main()
                                      
                                      });
                                      
                                      on({id: "javascript." + instance + ".Wetterstation.AuswahlJahr", change: "any"}, async function (obj) {
                                      main()
                                      
                                      });
                                      
                                      schedule('  */30 * * * *', function() { 
                                         setState("javascript." + instance + ".Wetterstation.MonatAuswahl", parseInt(formatDate(getDateObject((new Date().getTime())), "MM"))) ;
                                         setStateDelayed("javascript." + instance + ".Wetterstation.AuswahlJahr", parseInt(formatDate(getDateObject((new Date().getTime())), "JJJJ")),10000) ;
                                      });
                                      
                                      
                                      
                                      
                                      
                                      
                                      

                                      @Negalein

                                      • mußte den monat wieder horizontal einfügen - wenn ich eine lösung finde, ändere ich das noch
                                      • du kannst die namen hier ändern
                                      • mußt den pfad für die daten eingeben in der ersten"const"

                                      Image 2.png

                                      NegaleinN Offline
                                      NegaleinN Offline
                                      Negalein
                                      Global Moderator
                                      schrieb am zuletzt editiert von
                                      #30

                                      @liv-in-sky sagte in VIS-Tabelle für WLAN Wetterstation:

                                      dieses script dient zur Wetterdaten-Anzeige für die WLAN Wetterstation

                                      Hallo @liv-in-sky

                                      Wo im Script kann ich die Zeilen umsortieren?

                                      derzeit so:
                                      vis.png

                                      möchte es mir so gestalten:
                                      _4  Wetterstation Sachsenberg Wernstein am Inn   Facebook.png

                                      ° Node.js: 20.17.0 NPM: 10.8.2
                                      ° Proxmox, Ubuntu 22.04.3 LTS
                                      ° Fixer ---> iob fix

                                      liv-in-skyL 1 Antwort Letzte Antwort
                                      0
                                      • NegaleinN Negalein

                                        @liv-in-sky sagte in VIS-Tabelle für WLAN Wetterstation:

                                        dieses script dient zur Wetterdaten-Anzeige für die WLAN Wetterstation

                                        Hallo @liv-in-sky

                                        Wo im Script kann ich die Zeilen umsortieren?

                                        derzeit so:
                                        vis.png

                                        möchte es mir so gestalten:
                                        _4  Wetterstation Sachsenberg Wernstein am Inn   Facebook.png

                                        liv-in-skyL Offline
                                        liv-in-skyL Offline
                                        liv-in-sky
                                        schrieb am zuletzt editiert von
                                        #31

                                        @negalein

                                        ich denke, du mußt das array hier sortieren /in die richtige reihenfolge setzen- ist schon eine weile her - pass auf die kommas auf - nach dem letzten eintrag darf kein komma sein

                                        Image 1.png

                                        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                        NegaleinN 1 Antwort Letzte Antwort
                                        0
                                        • liv-in-skyL liv-in-sky

                                          @negalein

                                          ich denke, du mußt das array hier sortieren /in die richtige reihenfolge setzen- ist schon eine weile her - pass auf die kommas auf - nach dem letzten eintrag darf kein komma sein

                                          Image 1.png

                                          NegaleinN Offline
                                          NegaleinN Offline
                                          Negalein
                                          Global Moderator
                                          schrieb am zuletzt editiert von
                                          #32

                                          @liv-in-sky sagte in VIS-Tabelle für WLAN Wetterstation:

                                          ich denke, du mußt das array hier sortieren

                                          Danke, funktioniert

                                          vis (1).png

                                          ° Node.js: 20.17.0 NPM: 10.8.2
                                          ° Proxmox, Ubuntu 22.04.3 LTS
                                          ° Fixer ---> iob fix

                                          1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          549

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe