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

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    155

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    12
    1
    566

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

VIS-Tabelle für WLAN Wetterstation

Geplant Angeheftet Gesperrt Verschoben Visualisierung
vis
101 Beiträge 11 Kommentatoren 16.5k 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.
  • SBorgS SBorg

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

    Kein Fehler mehr, aber ist das ok mit der Ausgabe

    Sieht gut aus. Wenn auch deine Tabelle in der VIS funktioniert warten wir mal bis zum nächsten Monatswechsel :)
    Die "console.log..." kannst du nun alle entfernen oder per "//" auskommentieren, sonst wird dein Log über kurz oder lang recht voll ;)

    NashraN Offline
    NashraN Offline
    Nashra
    Most Active Forum Testing
    schrieb am zuletzt editiert von
    #92

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

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

    Kein Fehler mehr, aber ist das ok mit der Ausgabe

    Sieht gut aus. Wenn auch deine Tabelle in der VIS funktioniert warten wir mal bis zum nächsten Monatswechsel :)
    Die "console.log..." kannst du nun alle entfernen oder per "//" auskommentieren, sonst wird dein Log über kurz oder lang recht voll ;)

    Ja, hatte ich schon gemacht mit //
    Ok, dann warten wir mal bis Ende des Monats was dann passiert.
    Vielen Dank erstmal :+1:

    Gruß Ralf
    Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    1 Antwort Letzte Antwort
    0
    • SBorgS Offline
      SBorgS Offline
      SBorg
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #93

      Noch eine kleine Änderung wer denn möchte. Wenn man es jetzt in der VIS öffnet, springt er ja automatisch zum Januar 2023. Die Daten gibt es aber erst am 01. Februar. Wäre doch schön wenn er immer einen Monat weniger als den aktuellen springen würde (und für den Januar zzgl. noch -1 Jahr :) ).

      Einfach den kpl. Scheduler im Skript ersetzen:

      schedule('*/30 * * * *', function() { 
        //Patch -1 Monat bzw. Jahr, damit immer etwas angezeigt wird (aktuelle Monatsdaten gibt es ja hier noch keine)
          let MonatTmp = parseInt(formatDate(getDateObject((new Date().getTime())), "MM"));
          let JahrTmp = 0;
          if (MonatTmp>1) { MonatTmp--; } else { MonatTmp = 12; JahrTmp = -1; }  
        setState("javascript." + instance + ".Wetterstation.MonatAuswahl", MonatTmp) ;
        setStateDelayed("javascript." + instance + ".Wetterstation.AuswahlJahr", parseInt(formatDate(getDateObject((new Date().getTime())), "JJJJ"))+JahrTmp ,10000);
      });
      

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

      1 Antwort Letzte Antwort
      1
      • SBorgS SBorg

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

        Kein Fehler mehr, aber ist das ok mit der Ausgabe

        Sieht gut aus. Wenn auch deine Tabelle in der VIS funktioniert warten wir mal bis zum nächsten Monatswechsel :)
        Die "console.log..." kannst du nun alle entfernen oder per "//" auskommentieren, sonst wird dein Log über kurz oder lang recht voll ;)

        NashraN Offline
        NashraN Offline
        Nashra
        Most Active Forum Testing
        schrieb am zuletzt editiert von
        #94

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

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

        Kein Fehler mehr, aber ist das ok mit der Ausgabe

        Sieht gut aus. Wenn auch deine Tabelle in der VIS funktioniert warten wir mal bis zum nächsten Monatswechsel :)
        Die "console.log..." kannst du nun alle entfernen oder per "//" auskommentieren, sonst wird dein Log über kurz oder lang recht voll ;)

        Hallo @SBorg
        es hat funktioniert, Tabelle zeigt Werte richtig an :+1: :+1: :+1:

        Gruß Ralf
        Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        SBorgS 1 Antwort Letzte Antwort
        0
        • NashraN Nashra

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

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

          Kein Fehler mehr, aber ist das ok mit der Ausgabe

          Sieht gut aus. Wenn auch deine Tabelle in der VIS funktioniert warten wir mal bis zum nächsten Monatswechsel :)
          Die "console.log..." kannst du nun alle entfernen oder per "//" auskommentieren, sonst wird dein Log über kurz oder lang recht voll ;)

          Hallo @SBorg
          es hat funktioniert, Tabelle zeigt Werte richtig an :+1: :+1: :+1:

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

          @nashra :grinning: :sunglasses: :+1: Trotzdem merkwürdig das ist...

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

          NashraN 1 Antwort Letzte Antwort
          0
          • SBorgS SBorg

            @nashra :grinning: :sunglasses: :+1: Trotzdem merkwürdig das ist...

            NashraN Offline
            NashraN Offline
            Nashra
            Most Active Forum Testing
            schrieb am zuletzt editiert von
            #96

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

            @nashra :grinning: :sunglasses: :+1: Trotzdem merkwürdig das ist...

            jep, da hast du Recht aber ganz ehrlich, ist mir egal, hauptsache läuft jetzt :grin:

            Gruß Ralf
            Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            1 Antwort Letzte Antwort
            0
            • SBorgS SBorg

              @nashra

              Das Design wird dir bekannt vorkommen, "deine" Version des Skriptes bei mir:
              Bild 002.png

              Läuft dein ioB unter Windows oder Linux?
              Der Datensatz stimmt, der Typ, das Skript funktioniert... eigentlich sollte das laufen.

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

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

              Das Design wird dir bekannt vorkommen, "deine" Version des Skriptes bei mir:

              Hallo

              Hast du eine aktuelle View davon?

              Bei mir kommt in der View undefinied.

              30f02c6c-ea06-46d5-abfd-3bc25d91525e-image.png

              ° Node.js Update ---> iob nodejs-update
              ° Fixer ---> iob fix

              SBorgS 1 Antwort Letzte Antwort
              0
              • NegaleinN Negalein

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

                Das Design wird dir bekannt vorkommen, "deine" Version des Skriptes bei mir:

                Hallo

                Hast du eine aktuelle View davon?

                Bei mir kommt in der View undefinied.

                30f02c6c-ea06-46d5-abfd-3bc25d91525e-image.png

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

                @negalein
                Ich glaube eher du hast da ein rudimentäres Problem (ich antworte gleich im WLAN-Skript Thread).
                Da hat sich seit Uhrzeiten nichts dran geändert:
                Bild 002.png

                // @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.Statistik.Wetter.Data";  //SEHR WICHTIG !!!!!!!!!
                const inhaltFarbe="black";
                const inhaltHintergrund="lightgray";
                const monatFarbe="white";
                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="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_Windboee:     { einheit:'km/h', name:"Max Windböe"},
                             Max_Regenmenge:   { einheit:'l/m²', name:"Max. Regen/Tag"},
                             Regenmenge_Monat: { einheit:'l/m²', name:"Regen"},
                             Regentage:        { einheit:"",     name:"Regentage"},
                             sehr_kalte_Tage:  { einheit:"",     name:"Sehr kalte Tage (Min. unter -10°C)"},
                             Eistage:          { einheit:"",     name:"Eistage (Max. unter 0°C)"},
                             Frost_Tage:       { einheit:"",     name:"Frosttage (Min. unter 0°C)"},
                             kalte_Tage:       { einheit:"",     name:"Kalte Tage (Max. unter 10°C)"},
                             warme_Tage:       { einheit:"",     name:"Warme Tage (über 20°C)"},
                             Sommertage:       { einheit:"",     name:"Sommertage (über 25°C)"},
                             Tropennaechte:    { einheit:"",     name:"Tropennächte (Min. über 20°C)"},
                             heisse_Tage:      { einheit:"",     name:"Heiße Tage (über 30°C)"},
                             Wuestentage:      { einheit:"",     name:"Wüstentage (über 35°C)"}
                };  
                const table_rowspan = Object.keys(varData).length + 1;
                
                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) {
                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 if (typeof(formathelp)=="string") { helper=String(getState(id).val);
                                                          if (helper.indexOf("[")>=0) { helper=JSON.parse(helper.substring(1, helper.length-1)); }
                                                            else { helper=JSON.parse(helper); }  
                                                          }
                 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=\"17\"\">'+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='+table_rowspan+'\">'+test+'</td><td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\>Jahreswerte</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=\"17\"\">'+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='+table_rowspan+'\">'+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("0_userdata." + instance + ".Wetterstation.MonthlyDaten",tableContent)
                }
                
                //--------------------------------------------------------------------------------------------------
                async function main() {
                 if (!(await existsStateAsync("0_userdata." + instance + ".Wetterstation.MonthlyDaten"))) {
                     await createStateAsync("0_userdata." + instance + ".Wetterstation.MonthlyDaten", "leer", {type: "string", name: "MonthlyDaten", role: "value", read: true, write: true, } ); }
                 if (!(await existsStateAsync("0_userdata." + instance + "..Wetterstation.MonatAuswahl"))) {
                     await createStateAsync("0_userdata." + instance + ".Wetterstation.MonatAuswahl", 10, {type: "number", name: "MonatAuswahl", role: "value", read: true, write: true, } ); } 
                 if (!(await existsStateAsync("0_userdata." + instance + ".Wetterstation.AuswahlJahr"))) {
                     await createStateAsync("0_userdata." + instance + ".Wetterstation.AuswahlJahr", 0, {type: "number", name: "AuswahlJahr", role: "value", read: true, write: true, } ); } 
                 lastThree = (await getStateAsync("0_userdata." + instance + ".Wetterstation.AuswahlJahr")).val //? lastThree=true : lastThree=false;  
                 monWahlVIS=((await getStateAsync("0_userdata." + instance + ".Wetterstation.MonatAuswahl")).val ) 
                 dataStuff(); 
                }
                
                //-----------------------------------------------------------------------------------------------------
                main()
                
                on({id: "0_userdata." + instance + ".Wetterstation.MonatAuswahl", change: "any"}, async function (obj) {
                 main()
                });
                
                on({id: "0_userdata." + instance + ".Wetterstation.AuswahlJahr", change: "any"}, async function (obj) {
                 main()
                });
                
                schedule('*/30 * * * *', function() { 
                 //Patch -1 Monat bzw. Jahr, damit immer etwas angezeigt wird (aktuelle Monatsdaten gibt es ja hier noch keine)
                   let MonatTmp = parseInt(formatDate(getDateObject((new Date().getTime())), "MM"));
                   let JahrTmp = 0;
                   if (MonatTmp>1) { MonatTmp--; } else { MonatTmp = 12; JahrTmp = -1; }  
                 setState("0_userdata." + instance + ".Wetterstation.MonatAuswahl", MonatTmp) ;
                 setStateDelayed("0_userdata." + instance + ".Wetterstation.AuswahlJahr", parseInt(formatDate(getDateObject((new Date().getTime())), "JJJJ"))+JahrTmp ,10000);
                });
                
                


                Springt immer zu aktuellem Monat minus 1 (also gerade heute dann automatisch auf Mai), im Januar dann auf Dezember und minus 1 Jahr.

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

                NegaleinN 1 Antwort Letzte Antwort
                0
                • SBorgS SBorg

                  @negalein
                  Ich glaube eher du hast da ein rudimentäres Problem (ich antworte gleich im WLAN-Skript Thread).
                  Da hat sich seit Uhrzeiten nichts dran geändert:
                  Bild 002.png

                  // @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.Statistik.Wetter.Data";  //SEHR WICHTIG !!!!!!!!!
                  const inhaltFarbe="black";
                  const inhaltHintergrund="lightgray";
                  const monatFarbe="white";
                  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="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_Windboee:     { einheit:'km/h', name:"Max Windböe"},
                               Max_Regenmenge:   { einheit:'l/m²', name:"Max. Regen/Tag"},
                               Regenmenge_Monat: { einheit:'l/m²', name:"Regen"},
                               Regentage:        { einheit:"",     name:"Regentage"},
                               sehr_kalte_Tage:  { einheit:"",     name:"Sehr kalte Tage (Min. unter -10°C)"},
                               Eistage:          { einheit:"",     name:"Eistage (Max. unter 0°C)"},
                               Frost_Tage:       { einheit:"",     name:"Frosttage (Min. unter 0°C)"},
                               kalte_Tage:       { einheit:"",     name:"Kalte Tage (Max. unter 10°C)"},
                               warme_Tage:       { einheit:"",     name:"Warme Tage (über 20°C)"},
                               Sommertage:       { einheit:"",     name:"Sommertage (über 25°C)"},
                               Tropennaechte:    { einheit:"",     name:"Tropennächte (Min. über 20°C)"},
                               heisse_Tage:      { einheit:"",     name:"Heiße Tage (über 30°C)"},
                               Wuestentage:      { einheit:"",     name:"Wüstentage (über 35°C)"}
                  };  
                  const table_rowspan = Object.keys(varData).length + 1;
                  
                  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) {
                  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 if (typeof(formathelp)=="string") { helper=String(getState(id).val);
                                                            if (helper.indexOf("[")>=0) { helper=JSON.parse(helper.substring(1, helper.length-1)); }
                                                              else { helper=JSON.parse(helper); }  
                                                            }
                   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=\"17\"\">'+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='+table_rowspan+'\">'+test+'</td><td style=\"color:'+monatFarbe+'; background-color:'+hintergrund+'"\>Jahreswerte</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=\"17\"\">'+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='+table_rowspan+'\">'+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("0_userdata." + instance + ".Wetterstation.MonthlyDaten",tableContent)
                  }
                  
                  //--------------------------------------------------------------------------------------------------
                  async function main() {
                   if (!(await existsStateAsync("0_userdata." + instance + ".Wetterstation.MonthlyDaten"))) {
                       await createStateAsync("0_userdata." + instance + ".Wetterstation.MonthlyDaten", "leer", {type: "string", name: "MonthlyDaten", role: "value", read: true, write: true, } ); }
                   if (!(await existsStateAsync("0_userdata." + instance + "..Wetterstation.MonatAuswahl"))) {
                       await createStateAsync("0_userdata." + instance + ".Wetterstation.MonatAuswahl", 10, {type: "number", name: "MonatAuswahl", role: "value", read: true, write: true, } ); } 
                   if (!(await existsStateAsync("0_userdata." + instance + ".Wetterstation.AuswahlJahr"))) {
                       await createStateAsync("0_userdata." + instance + ".Wetterstation.AuswahlJahr", 0, {type: "number", name: "AuswahlJahr", role: "value", read: true, write: true, } ); } 
                   lastThree = (await getStateAsync("0_userdata." + instance + ".Wetterstation.AuswahlJahr")).val //? lastThree=true : lastThree=false;  
                   monWahlVIS=((await getStateAsync("0_userdata." + instance + ".Wetterstation.MonatAuswahl")).val ) 
                   dataStuff(); 
                  }
                  
                  //-----------------------------------------------------------------------------------------------------
                  main()
                  
                  on({id: "0_userdata." + instance + ".Wetterstation.MonatAuswahl", change: "any"}, async function (obj) {
                   main()
                  });
                  
                  on({id: "0_userdata." + instance + ".Wetterstation.AuswahlJahr", change: "any"}, async function (obj) {
                   main()
                  });
                  
                  schedule('*/30 * * * *', function() { 
                   //Patch -1 Monat bzw. Jahr, damit immer etwas angezeigt wird (aktuelle Monatsdaten gibt es ja hier noch keine)
                     let MonatTmp = parseInt(formatDate(getDateObject((new Date().getTime())), "MM"));
                     let JahrTmp = 0;
                     if (MonatTmp>1) { MonatTmp--; } else { MonatTmp = 12; JahrTmp = -1; }  
                   setState("0_userdata." + instance + ".Wetterstation.MonatAuswahl", MonatTmp) ;
                   setStateDelayed("0_userdata." + instance + ".Wetterstation.AuswahlJahr", parseInt(formatDate(getDateObject((new Date().getTime())), "JJJJ"))+JahrTmp ,10000);
                  });
                  
                  


                  Springt immer zu aktuellem Monat minus 1 (also gerade heute dann automatisch auf Mai), im Januar dann auf Dezember und minus 1 Jahr.

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

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

                  Da hat sich seit Uhrzeiten nichts dran geändert:

                  Hast du auch einen VIS-Export für mich?

                  ° Node.js Update ---> iob nodejs-update
                  ° Fixer ---> iob fix

                  SBorgS 1 Antwort Letzte Antwort
                  0
                  • NegaleinN Negalein

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

                    Da hat sich seit Uhrzeiten nichts dran geändert:

                    Hast du auch einen VIS-Export für mich?

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

                    @negalein
                    Ist wahrscheinlich gleich mit deinem

                    [{"tpl":"tplJquiSelectList","data":{"oid":"0_userdata.0.Wetterstation.AuswahlJahr","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":true,"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;2020;2021;2022;2023;2024","texts":"All Years;2020;2021;2022;2023;2024","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":"160px","top":"375px","box-shadow":"8px 8px 8px rgba(20, 20, 20, 50)"},"widgetSet":"jqui"},{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":true,"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":"{0_userdata.0.Wetterstation.MonthlyDaten}"},"style":{"left":"160px","top":"405px","width":"auto","height":"auto","font-family":"","color":"#f7f51d","z-index":"1","box-shadow":"8px 8px 8px rgba(20, 20, 20, 50)"},"widgetSet":"basic"},{"tpl":"tplJquiSelectList","data":{"oid":"0_userdata.0.Wetterstation.MonatAuswahl","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":true,"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":"260px","top":"375px","width":"100px","height":"","box-shadow":"8px 8px 8px rgba(20, 20, 20, 50)","z-index":"1"},"widgetSet":"jqui"}]
                    

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

                    T 1 Antwort Letzte Antwort
                    1
                    • SBorgS SBorg

                      @negalein
                      Ist wahrscheinlich gleich mit deinem

                      [{"tpl":"tplJquiSelectList","data":{"oid":"0_userdata.0.Wetterstation.AuswahlJahr","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":true,"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;2020;2021;2022;2023;2024","texts":"All Years;2020;2021;2022;2023;2024","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":"160px","top":"375px","box-shadow":"8px 8px 8px rgba(20, 20, 20, 50)"},"widgetSet":"jqui"},{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":true,"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":"{0_userdata.0.Wetterstation.MonthlyDaten}"},"style":{"left":"160px","top":"405px","width":"auto","height":"auto","font-family":"","color":"#f7f51d","z-index":"1","box-shadow":"8px 8px 8px rgba(20, 20, 20, 50)"},"widgetSet":"basic"},{"tpl":"tplJquiSelectList","data":{"oid":"0_userdata.0.Wetterstation.MonatAuswahl","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":true,"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":"260px","top":"375px","width":"100px","height":"","box-shadow":"8px 8px 8px rgba(20, 20, 20, 50)","z-index":"1"},"widgetSet":"jqui"}]
                      
                      T Offline
                      T Offline
                      tritor
                      schrieb am zuletzt editiert von
                      #101

                      @sborg

                      habe heute mal die Vis aktiviert und muß sagen, bin begeistert.

                      Gernot

                      Host: i9 server Proxmox , Debian 13.2 for ioBroker
                      ioBroker: 7.7.20, Node.js: 22.21.1, NPM: 10.9.3, JS-controller: 7.1.0
                      Wetterstation: HP1000SEPro V1.9.0 Easeweather V1.7.0
                      Grafana 12.0.2 / InfluxDB 2.7.11

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


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      323

                      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