const ZEITPLAN = '40 1 * * *'; let DP = "0_userdata.0.vis.Wetter."; let smonat = '0'; let jahr = 0; const WET_DP='javascript.0.Wetterstation.Info'; let zeitstempel = new Date(); const monatsname = ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember']; const monatnummer = ['01', '02', '03', '04', '05','06','07','08','09','10','11','12']; schedule(ZEITPLAN, erstelleJSON); function erstelleJSON() { let start = new Date(zeitstempel.getFullYear(),zeitstempel.getMonth(),zeitstempel.getDate()-1,0,0,0); start = new Date(start.getTime()); smonat = monatnummer[start.getMonth()]; jahr = start.getFullYear(); //ist Datum = 31.12 if (zeitstempel.getDate() == 31) { if (zeitstempel.getMonth() == 11) { createDP(); }; } else if(zeitstempel.getDate() == 1) { createDPMonat(zeitstempel); }; aktTage(); }; //JSON Tage async function aktTage() { let jsonTag = getState('0_userdata.0.vis.Wetter.Daten.' + jahr + '.TageMonat.' + smonat).val; let regen = getState('0_userdata.0.Statistik.Wetter.VorTag.Regenmenge').val; if (regen == null) {regen = 0}; let SonneTag = getState('javascript.0.Wetterstation.Info.Sonnenschein_VorTag').val; SonneTag = SonneTag / 60; if (jsonTag.length == 0) {jsonTag = '['}; jsonTag = jsonTag.replace("]",', '); jsonTag += JSON.stringify({ "Tiefstwert": getState('0_userdata.0.Statistik.Wetter.VorTag.Temperatur_Tiefstwert').val, "Hoechstwert": getState('0_userdata.0.Statistik.Wetter.VorTag.Temperatur_Hoechstwert').val, "Durchschnitt" : getState('0_userdata.0.Statistik.Wetter.VorTag.Temperatur_Durchschnitt').val, "Max_Windboe": getState('0_userdata.0.Statistik.Wetter.VorTag.Windboe_max').val, "Regenmenge_Tag": regen, "Sonnenscheindauer": parseInt(SonneTag), "SonnenEnergie": getState('javascript.0.Wetterstation.Info.Solarenergie_VorTag').val, "Schneehoehe": 0}) + "]"; setState('0_userdata.0.vis.Wetter.Daten.' + jahr + '.TageMonat.' + smonat, jsonTag, true); }; async function createDP() { let tempJahr = jahr + 1; let dp = '0_userdata.0.vis.Wetter.Daten.' + tempJahr; createState(dp, { name: tempJahr, type: "folder" }); createState(dp + ".Monate", { name: 'Werte pro Monat', type: "folder" }); createState(dp + ".TageMonat", { name: 'Werte für jeden Tag im Monat', type: "folder" }); createState(dp +'.Monate.01', { name: "Januar", type: "json", role: "state"}); createState(dp +'.TageMonat.01', { name: "Januar", type: "json", role: "state"}); dp = '0_userdata.0.vis.Wetter.Daten.Jahre.' + tempJahr; createState(dp, { name: tempJahr, type: "json", role: "state"}); let text = tempJahr.toString() + ';' + getState('0_userdata.0.vis.Wetter.Auswahl_Jahre').val; setState('0_userdata.0.vis.Wetter.Auswahl_Jahre', text, true); await sleep(5000); }; async function createDPMonat(zeitstempel) { let dp = '0_userdata.0.vis.Wetter.Daten.' + jahr; let monat = zeitstempel.getMonth() + 1; let monatText = monatnummer[monat]; createState(dp +'.Monate.' + monatText, { name: monatsname[monat], type: "json", role: "state"}); createState(dp +'.TageMonat.' + monatText, { name: monatsname[monat], type: "json", role: "state"}); };