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.1k

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

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

Darstellung die 4.te

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
vis
37 Beiträge 8 Kommentatoren 6.2k 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

    Bin gerade dabei einen neuen Rechner zu installieren, melde mich sobald ich fertig bin. Bitte etwas Geduld.

    MfG
    Wastl

    Chris76eC Offline
    Chris76eC Offline
    Chris76e
    schrieb am zuletzt editiert von
    #25

    @langer

    Kein Problem :+1:

    L 1 Antwort Letzte Antwort
    0
    • Chris76eC Chris76e

      @langer

      Kein Problem :+1:

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

      @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 2 Antworten 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 Offline
        Chris76eC Offline
        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 Offline
          Chris76eC Offline
          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 Offline
              Chris76eC Offline
              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 Offline
                  Chris76eC Offline
                  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 Offline
                      Chris76eC Offline
                      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 Offline
                          Chris76eC Offline
                          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

                            446

                            Online

                            32.5k

                            Benutzer

                            81.6k

                            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