Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. VIS-Tabelle für WLAN Wetterstation

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

VIS-Tabelle für WLAN Wetterstation

Geplant Angeheftet Gesperrt Verschoben Visualisierung
vis
101 Beiträge 11 Kommentatoren 15.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.
  • liv-in-skyL Offline
    liv-in-skyL Offline
    liv-in-sky
    schrieb am zuletzt editiert von liv-in-sky
    #1

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

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

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

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

    [{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Wetterstation.AuswahlJahr","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","values":"0;2019;2020;2021;2022","texts":"All Years;2019;2020;2021;2022","height":"100","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"no_style":true},"style":{"left":"1142px","top":"70px"},"widgetSet":"jqui"},{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Wetterstation.MonatAuswahl","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","values":"1;2;3;4;5;6;7;8;9;10;11;12","texts":"JANUAR;FEBRUAR;MÄRZ;APRIL;MAI;JUNI;JULI;AUGUST;SEPTEMBER;OKTOBER;NOVEMBER;DEZEMBER","height":"100","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"no_style":true},"style":{"left":"1258px","top":"70px"},"widgetSet":"jqui"},{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"{javascript.0.Wetterstation.MonthlyDaten}"},"style":{"left":"1095px","top":"133px","width":"634px","height":"589px","font-family":"","color":"#f7f51d"},"widgetSet":"basic"}]
    

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

    @Negalein

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

    Image 2.png

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

    NegaleinN da_WoodyD 4 Antworten Letzte Antwort
    1
    • liv-in-skyL liv-in-sky

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

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

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

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

      [{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Wetterstation.AuswahlJahr","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","values":"0;2019;2020;2021;2022","texts":"All Years;2019;2020;2021;2022","height":"100","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"no_style":true},"style":{"left":"1142px","top":"70px"},"widgetSet":"jqui"},{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Wetterstation.MonatAuswahl","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","values":"1;2;3;4;5;6;7;8;9;10;11;12","texts":"JANUAR;FEBRUAR;MÄRZ;APRIL;MAI;JUNI;JULI;AUGUST;SEPTEMBER;OKTOBER;NOVEMBER;DEZEMBER","height":"100","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"no_style":true},"style":{"left":"1258px","top":"70px"},"widgetSet":"jqui"},{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"{javascript.0.Wetterstation.MonthlyDaten}"},"style":{"left":"1095px","top":"133px","width":"634px","height":"589px","font-family":"","color":"#f7f51d"},"widgetSet":"basic"}]
      

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

      @Negalein

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

      Image 2.png

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

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

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

      Wow, perfekt

      Werde es später gleich testen
      🙂

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

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

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

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

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

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

        [{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Wetterstation.AuswahlJahr","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","values":"0;2019;2020;2021;2022","texts":"All Years;2019;2020;2021;2022","height":"100","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"no_style":true},"style":{"left":"1142px","top":"70px"},"widgetSet":"jqui"},{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Wetterstation.MonatAuswahl","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","values":"1;2;3;4;5;6;7;8;9;10;11;12","texts":"JANUAR;FEBRUAR;MÄRZ;APRIL;MAI;JUNI;JULI;AUGUST;SEPTEMBER;OKTOBER;NOVEMBER;DEZEMBER","height":"100","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"no_style":true},"style":{"left":"1258px","top":"70px"},"widgetSet":"jqui"},{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"{javascript.0.Wetterstation.MonthlyDaten}"},"style":{"left":"1095px","top":"133px","width":"634px","height":"589px","font-family":"","color":"#f7f51d"},"widgetSet":"basic"}]
        

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

        @Negalein

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

        Image 2.png

        da_WoodyD Offline
        da_WoodyD Offline
        da_Woody
        schrieb am zuletzt editiert von
        #3

        @liv-in-sky tipitopi! und wieder eine spielerei mehr... 😉

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

        liv-in-skyL 1 Antwort Letzte Antwort
        0
        • da_WoodyD da_Woody

          @liv-in-sky tipitopi! und wieder eine spielerei mehr... 😉

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

          @da_Woody zum spielen sind wir doch hier 🙂

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

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

            @da_Woody zum spielen sind wir doch hier 🙂

            da_WoodyD Offline
            da_WoodyD Offline
            da_Woody
            schrieb am zuletzt editiert von
            #5

            @liv-in-sky ja, eh... wenn nicht soviel anderes zu tun wäre...
            die werkbank sollte endlich fertig werden
            20201031_154007-s.jpg 20201103_124026-s.jpg
            der papierrollen halter ist gerade am trocknen...
            20201103_114710-s.jpg

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

            liv-in-skyL 1 Antwort Letzte Antwort
            1
            • da_WoodyD da_Woody

              @liv-in-sky ja, eh... wenn nicht soviel anderes zu tun wäre...
              die werkbank sollte endlich fertig werden
              20201031_154007-s.jpg 20201103_124026-s.jpg
              der papierrollen halter ist gerade am trocknen...
              20201103_114710-s.jpg

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

              @da_Woody gut das du die bilder zeigst - hat mich daran erinnert, das ich auch noch was streichen muss 🙂 wenn ich erstmal in einem script bin, vergesse ich gerne alles um mich herum

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

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

                @da_Woody gut das du die bilder zeigst - hat mich daran erinnert, das ich auch noch was streichen muss 🙂 wenn ich erstmal in einem script bin, vergesse ich gerne alles um mich herum

                da_WoodyD Offline
                da_WoodyD Offline
                da_Woody
                schrieb am zuletzt editiert von
                #7

                @liv-in-sky heut ist bei uns das richtige wetter dazu. fast 20°
                0d249012-ee45-44a3-8a58-dd42b0463771-grafik.png
                auch noch nicht fertig umgebaut...
                dafür is die rolle an der wand!
                20201103_134454-s.jpg

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

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

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

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

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

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

                  [{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Wetterstation.AuswahlJahr","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","values":"0;2019;2020;2021;2022","texts":"All Years;2019;2020;2021;2022","height":"100","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"no_style":true},"style":{"left":"1142px","top":"70px"},"widgetSet":"jqui"},{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.Wetterstation.MonatAuswahl","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","values":"1;2;3;4;5;6;7;8;9;10;11;12","texts":"JANUAR;FEBRUAR;MÄRZ;APRIL;MAI;JUNI;JULI;AUGUST;SEPTEMBER;OKTOBER;NOVEMBER;DEZEMBER","height":"100","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"no_style":true},"style":{"left":"1258px","top":"70px"},"widgetSet":"jqui"},{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"{javascript.0.Wetterstation.MonthlyDaten}"},"style":{"left":"1095px","top":"133px","width":"634px","height":"589px","font-family":"","color":"#f7f51d"},"widgetSet":"basic"}]
                  

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

                  @Negalein

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

                  Image 2.png

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

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

                  @Negalein

                  Ich hab 2 Javascriptinstanzen.
                  Möchte .0 benutzen.
                  Wo im Script muss ich die Instanz eingeben?

                  Oder reicht es, Instanz einfach durch 0 zu ersetzen?

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

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

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

                    @Negalein

                    Ich hab 2 Javascriptinstanzen.
                    Möchte .0 benutzen.
                    Wo im Script muss ich die Instanz eingeben?

                    Oder reicht es, Instanz einfach durch 0 zu ersetzen?

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

                    @Negalein die instanz wird vom script selbst gefunden - es nimmt die instanz, in der das script installiert/angelegt wurde

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

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

                      @Negalein die instanz wird vom script selbst gefunden - es nimmt die instanz, in der das script installiert/angelegt wurde

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

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

                      die instanz wird vom script selbst gefunden - es nimmt die instanz, in der das script installiert/angelegt wurde

                      Danke, läuft 😁

                      Screenshot_2020-11-03 vis.png

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

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

                        mir ist gerade eingefallen, dass ich keinen trigger gesetzt habe - man muss immer einen monat auswählen zum triggern

                        im ersten post ist ein update

                        wer schon installert hat und seine eigenen settings eingegeben hat, kann den folgenden code einfach am ende des schon laufenden scriptes anhängen

                        schedule('  */30 * * * *', function() { 
                            setState("javascript." + instance + ".Wetterstation.MonatAuswahl", parseInt(formatDate(getDateObject((new Date().getTime())), "MM"))) 
                        });
                        

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

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

                          mir ist gerade eingefallen, dass ich keinen trigger gesetzt habe - man muss immer einen monat auswählen zum triggern

                          im ersten post ist ein update

                          wer schon installert hat und seine eigenen settings eingegeben hat, kann den folgenden code einfach am ende des schon laufenden scriptes anhängen

                          schedule('  */30 * * * *', function() { 
                              setState("javascript." + instance + ".Wetterstation.MonatAuswahl", parseInt(formatDate(getDateObject((new Date().getTime())), "MM"))) 
                          });
                          
                          NegaleinN Offline
                          NegaleinN Offline
                          Negalein
                          Global Moderator
                          schrieb am zuletzt editiert von
                          #12

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

                          im ersten post ist ein update

                          es sieht jetzt so aus.

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

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

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

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

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

                            im ersten post ist ein update

                            es sieht jetzt so aus.

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

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

                            @Negalein

                            was hast du für einen browser ?

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

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

                              @Negalein

                              was hast du für einen browser ?

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

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

                              was hast du für einen browser ?

                              Chrome und FF

                              bei beiden dieses Bild

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

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

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

                                was hast du für einen browser ?

                                Chrome und FF

                                bei beiden dieses Bild

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

                                @Negalein

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

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

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

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

                                  @Negalein

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

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

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

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

                                  ich schau mir das morgen nochmal an

                                  keine Eile

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

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

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

                                    ich schau mir das morgen nochmal an

                                    keine Eile

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

                                    @Negalein

                                    fehler entdeckt und oben upgedatet

                                    hier dein script mit all deinen einstellungen zum import

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

                                    Image 1.png

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

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

                                      @Negalein

                                      fehler entdeckt und oben upgedatet

                                      hier dein script mit all deinen einstellungen zum import

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

                                      Image 1.png

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

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

                                      fehler entdeckt und oben upgedatet

                                      Super, funktioniert
                                      Merci

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

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

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

                                        fehler entdeckt und oben upgedatet

                                        Super, funktioniert
                                        Merci

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

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

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

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

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

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

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

                                          habe keine wetterstation

                                          dann wird es Zeit 😉

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

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          725

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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