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. Praktische Anwendungen (Showcase)
  4. Darstellung die 4.te

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Darstellung die 4.te

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
vis
37 Beiträge 8 Kommentatoren 6.3k Aufrufe 26 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.
  • L Langer

    @chris76e

    Guten Morgen, bin gerade mit dem PC fertig geworden und jetzt geht's an Deine Probleme.

    Da ich seid 2010 alle Wetterdaten gespeichert habe und die Anzahl der Datenpunkte in "userdata " immer mehr wurden, habe ich das Statistikprogramm komplett umgeschrieben. Alle Daten außer dem Aktuellen Jahr sind als Jsondateien auf dem Rechner gespeichert und werden bei Bedarf geladen.

    Wenn Du möchtest kannst Du die neuen Statistik Scripts und Datenpunkte gerne haben.
    Habe auch die Views noch etwas geändert, auch die kannst Du gerne bekommen.

    Melde Dich.

    MfG
    Wastl

    Chris76eC Online
    Chris76eC Online
    Chris76e
    schrieb am zuletzt editiert von
    #27

    @langer

    kannst du mir gerne geben. Melde mich heute abend wieder. Muss jetzt Arbeiten.

    1 Antwort Letzte Antwort
    0
    • L Langer

      @chris76e

      Guten Morgen, bin gerade mit dem PC fertig geworden und jetzt geht's an Deine Probleme.

      Da ich seid 2010 alle Wetterdaten gespeichert habe und die Anzahl der Datenpunkte in "userdata " immer mehr wurden, habe ich das Statistikprogramm komplett umgeschrieben. Alle Daten außer dem Aktuellen Jahr sind als Jsondateien auf dem Rechner gespeichert und werden bei Bedarf geladen.

      Wenn Du möchtest kannst Du die neuen Statistik Scripts und Datenpunkte gerne haben.
      Habe auch die Views noch etwas geändert, auch die kannst Du gerne bekommen.

      Melde Dich.

      MfG
      Wastl

      Chris76eC Online
      Chris76eC Online
      Chris76e
      schrieb am zuletzt editiert von
      #28

      @langer sagte in Darstellung die 4.te:

      Wenn Du möchtest kannst Du die neuen Statistik Scripts und Datenpunkte gerne haben.
      Habe auch die Views noch etwas geändert, auch die kannst Du gerne bekommen.

      Melde Dich.

      MfG
      Wastl

      Melde mich jetzt :grinning:

      L 1 Antwort Letzte Antwort
      0
      • Chris76eC Chris76e

        @langer sagte in Darstellung die 4.te:

        Wenn Du möchtest kannst Du die neuen Statistik Scripts und Datenpunkte gerne haben.
        Habe auch die Views noch etwas geändert, auch die kannst Du gerne bekommen.

        Melde Dich.

        MfG
        Wastl

        Melde mich jetzt :grinning:

        L Offline
        L Offline
        Langer
        schrieb am zuletzt editiert von
        #29

        @chris76e

        Anbei Views, Datenpunkte und Skripte als zip.File.

        Bei Fragen melde Dich.
        WetterStatistik.zip

        MfG
        Wastl

        Chris76eC 1 Antwort Letzte Antwort
        0
        • L Langer

          @chris76e

          Anbei Views, Datenpunkte und Skripte als zip.File.

          Bei Fragen melde Dich.
          WetterStatistik.zip

          MfG
          Wastl

          Chris76eC Online
          Chris76eC Online
          Chris76e
          schrieb am zuletzt editiert von
          #30

          @langer

          Danke, aber ich blicke da noch nicht richtigt durch.... :thinking_face:

          Kannst du bitte mal screenshots machen und da bei schreiben welche scripte und tabellen dazugehören? Vieleicht komme ich dann dahinter :grinning:

          1 Antwort Letzte Antwort
          0
          • L Offline
            L Offline
            Langer
            schrieb am zuletzt editiert von Langer
            #31

            @chris76e

            Hier die Views:
            Jahr-Monat.png
            Statistik Jahr Monate

            Rekord.png
            Statistik Rekord

            JahreMonat.png
            Statistik Jahr mit Monate

            Hier eine kleine Text-Datei mit Erklärung:
            Erklärung.txt

            Hoffe es hilft, ansonsten melden.

            MfG
            Wastl

            P.s.
            Hier noch das neue Min_Max Skript
            Min_Max.txt

            Chris76eC Enrico FischerE 3 Antworten Letzte Antwort
            0
            • L Langer

              @chris76e

              Hier die Views:
              Jahr-Monat.png
              Statistik Jahr Monate

              Rekord.png
              Statistik Rekord

              JahreMonat.png
              Statistik Jahr mit Monate

              Hier eine kleine Text-Datei mit Erklärung:
              Erklärung.txt

              Hoffe es hilft, ansonsten melden.

              MfG
              Wastl

              P.s.
              Hier noch das neue Min_Max Skript
              Min_Max.txt

              Chris76eC Online
              Chris76eC Online
              Chris76e
              schrieb am zuletzt editiert von
              #32

              @langer

              Danke, werd ich mir anschauen.

              1 Antwort Letzte Antwort
              0
              • L Langer

                @chris76e

                Hier die Views:
                Jahr-Monat.png
                Statistik Jahr Monate

                Rekord.png
                Statistik Rekord

                JahreMonat.png
                Statistik Jahr mit Monate

                Hier eine kleine Text-Datei mit Erklärung:
                Erklärung.txt

                Hoffe es hilft, ansonsten melden.

                MfG
                Wastl

                P.s.
                Hier noch das neue Min_Max Skript
                Min_Max.txt

                Enrico FischerE Offline
                Enrico FischerE Offline
                Enrico Fischer
                schrieb am zuletzt editiert von
                #33

                @langer kleiner Optischer Tip. wenn du die Hintergrund farbe gleich machst mit der Hintergrundfarbe der Schalter hast du nicht mehr so gebroche Kanten am Schatten der Schalter

                1 Antwort Letzte Antwort
                0
                • L Langer

                  @chris76e

                  Hier die Views:
                  Jahr-Monat.png
                  Statistik Jahr Monate

                  Rekord.png
                  Statistik Rekord

                  JahreMonat.png
                  Statistik Jahr mit Monate

                  Hier eine kleine Text-Datei mit Erklärung:
                  Erklärung.txt

                  Hoffe es hilft, ansonsten melden.

                  MfG
                  Wastl

                  P.s.
                  Hier noch das neue Min_Max Skript
                  Min_Max.txt

                  Chris76eC Online
                  Chris76eC Online
                  Chris76e
                  schrieb am zuletzt editiert von Chris76e
                  #34

                  @langer

                  Bekomme es leider nicht alleine hin, möchte eigentlich nur diese Anzeige erstellen.

                  Screenshot 2023-02-12 202634.png

                  Deine Scripte sind doch sehr individuell angepasst. Kannst du mir helfen das Script für die Jahresanzeige von @liv-in-sky anzupassen?

                  Hier das script was bei mir funktioniert

                  // @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="white";
                  const inhaltHintergrund="transparent";
                  const monatFarbe="#20ff1a";
                  const hintergrund="transparent";
                  const htmlFarbTableBorderColor="white";
                  const abstandZelle=6;
                  const htmlRahmenLinien="all";
                  const htmlSchriftgroessehtmlSchriftart=""; //nicht verwendbar!
                  const htmlFarbFelderschrift="red";         //nicht verwendbar!
                  const htmlSchriftgroesse="20px";
                  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"},
                               Regentage:        { einheit:"", name:"Regentage"}, 
                               Max_Regenmenge:   { einheit:'l/m2', name:"Max. Regen/Tag"},
                               Regenmenge_Monat: { einheit:'l/m2', name:"Regen"},
                               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)"},
                               Tropennaechte:    { einheit:"",     name:"Tropennächte (Min. über 20°C)"},
                               Sommertage:       { einheit:"",     name:"Sommertage (über 25°C)"},
                               heisse_Tage:      { einheit:"",     name:'Heiße Tage (über 30°C)'},
                               Wuestentage:      { einheit:"",     name:"Wüstentage (über 35°C"}
                  }  
                  const monate =["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"];
                  
                  //--------------------------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=getState(id).val;
                                                            helper=JSON.parse(helper.substring(1, (getState(id).val).length-1)); 
                                                            }
                   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=\"16\"\">'+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=\"17\"\">'+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=\"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=\"17\"\">'+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() { 
                   let MonatTmp = parseInt(formatDate(getDateObject((new Date().getTime())), "MM"));
                   if (MonatTmp>1) { MonatTmp--; } //Patch 
                   setState("javascript." + instance + ".Wetterstation.MonatAuswahl", MonatTmp) ;
                   setStateDelayed("javascript." + instance + ".Wetterstation.AuswahlJahr", parseInt(formatDate(getDateObject((new Date().getTime())), "JJJJ")),10000) ;
                  });
                  
                  

                  Die "Rekordwerte" bekomme mit dem statistic Adapter

                  Screenshot 2023-02-12 203349.png

                  L 1 Antwort Letzte Antwort
                  0
                  • Chris76eC Chris76e

                    @langer

                    Bekomme es leider nicht alleine hin, möchte eigentlich nur diese Anzeige erstellen.

                    Screenshot 2023-02-12 202634.png

                    Deine Scripte sind doch sehr individuell angepasst. Kannst du mir helfen das Script für die Jahresanzeige von @liv-in-sky anzupassen?

                    Hier das script was bei mir funktioniert

                    // @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="white";
                    const inhaltHintergrund="transparent";
                    const monatFarbe="#20ff1a";
                    const hintergrund="transparent";
                    const htmlFarbTableBorderColor="white";
                    const abstandZelle=6;
                    const htmlRahmenLinien="all";
                    const htmlSchriftgroessehtmlSchriftart=""; //nicht verwendbar!
                    const htmlFarbFelderschrift="red";         //nicht verwendbar!
                    const htmlSchriftgroesse="20px";
                    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"},
                                 Regentage:        { einheit:"", name:"Regentage"}, 
                                 Max_Regenmenge:   { einheit:'l/m2', name:"Max. Regen/Tag"},
                                 Regenmenge_Monat: { einheit:'l/m2', name:"Regen"},
                                 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)"},
                                 Tropennaechte:    { einheit:"",     name:"Tropennächte (Min. über 20°C)"},
                                 Sommertage:       { einheit:"",     name:"Sommertage (über 25°C)"},
                                 heisse_Tage:      { einheit:"",     name:'Heiße Tage (über 30°C)'},
                                 Wuestentage:      { einheit:"",     name:"Wüstentage (über 35°C"}
                    }  
                    const monate =["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"];
                    
                    //--------------------------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=getState(id).val;
                                                              helper=JSON.parse(helper.substring(1, (getState(id).val).length-1)); 
                                                              }
                     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=\"16\"\">'+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=\"17\"\">'+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=\"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=\"17\"\">'+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() { 
                     let MonatTmp = parseInt(formatDate(getDateObject((new Date().getTime())), "MM"));
                     if (MonatTmp>1) { MonatTmp--; } //Patch 
                     setState("javascript." + instance + ".Wetterstation.MonatAuswahl", MonatTmp) ;
                     setStateDelayed("javascript." + instance + ".Wetterstation.AuswahlJahr", parseInt(formatDate(getDateObject((new Date().getTime())), "JJJJ")),10000) ;
                    });
                    
                    

                    Die "Rekordwerte" bekomme mit dem statistic Adapter

                    Screenshot 2023-02-12 203349.png

                    L Offline
                    L Offline
                    Langer
                    schrieb am zuletzt editiert von
                    #35

                    @chris76e

                    Wie und wo hast Du Deine Daten abgelegt?
                    Liste doch bitte mal Deine Struktur auf.

                    MfG
                    Wastl

                    Chris76eC 1 Antwort Letzte Antwort
                    0
                    • L Langer

                      @chris76e

                      Wie und wo hast Du Deine Daten abgelegt?
                      Liste doch bitte mal Deine Struktur auf.

                      MfG
                      Wastl

                      Chris76eC Online
                      Chris76eC Online
                      Chris76e
                      schrieb am zuletzt editiert von Chris76e
                      #36

                      @langer

                      0_userdata.0.Statistik.Wetter.Data
                      

                      Sind die Jahres Ordner, bei mir jetzt nur 2022 und 2023.

                       0_userdata.0.Statistik.Wetter.Data.2022
                       0_userdata.0.Statistik.Wetter.Data.2023
                      

                      In den Ordner Steht dann für Jeden Monat ein DP mi einem JSON.

                      Beisspiel :
                      Datenpunkt

                       0_userdata.0.Statistik.Wetter.Data.2022.01
                       0_userdata.0.Statistik.Wetter.Data.2022.02
                      usw.
                      

                      JSON:

                       [
                        {
                          "Tiefstwert": -3.8,
                          "Hoechstwert": 22.1,
                          "Temp_Durchschnitt": 4.9,
                          "Max_Windboe": 38.8,
                          "Max_Regenmenge": 0,
                          "Regenmenge_Monat": 22.34,
                          "warme_Tage": 1,
                          "Sommertage": 0,
                          "heisse_Tage": 0,
                          "Frost_Tage": 5,
                          "kalte_Tage": 15,
                          "Eistage": 0,
                          "sehr_kalte_Tage": 0,
                          "Tropennaechte": 0,
                          "Wuestentage": 0,
                          "Regentage": 0
                        }
                      ]
                      

                      Screenshot 2023-02-14 164721.png
                      Brauchst du sonst nochwas?

                      L 1 Antwort Letzte Antwort
                      0
                      • Chris76eC Chris76e

                        @langer

                        0_userdata.0.Statistik.Wetter.Data
                        

                        Sind die Jahres Ordner, bei mir jetzt nur 2022 und 2023.

                         0_userdata.0.Statistik.Wetter.Data.2022
                         0_userdata.0.Statistik.Wetter.Data.2023
                        

                        In den Ordner Steht dann für Jeden Monat ein DP mi einem JSON.

                        Beisspiel :
                        Datenpunkt

                         0_userdata.0.Statistik.Wetter.Data.2022.01
                         0_userdata.0.Statistik.Wetter.Data.2022.02
                        usw.
                        

                        JSON:

                         [
                          {
                            "Tiefstwert": -3.8,
                            "Hoechstwert": 22.1,
                            "Temp_Durchschnitt": 4.9,
                            "Max_Windboe": 38.8,
                            "Max_Regenmenge": 0,
                            "Regenmenge_Monat": 22.34,
                            "warme_Tage": 1,
                            "Sommertage": 0,
                            "heisse_Tage": 0,
                            "Frost_Tage": 5,
                            "kalte_Tage": 15,
                            "Eistage": 0,
                            "sehr_kalte_Tage": 0,
                            "Tropennaechte": 0,
                            "Wuestentage": 0,
                            "Regentage": 0
                          }
                        ]
                        

                        Screenshot 2023-02-14 164721.png
                        Brauchst du sonst nochwas?

                        L Offline
                        L Offline
                        Langer
                        schrieb am zuletzt editiert von
                        #37

                        @chris76e

                        Nö, werde mal schauen.
                        MfG
                        Wastl

                        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

                        456

                        Online

                        32.5k

                        Benutzer

                        81.7k

                        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