let thermostat_Schedule = [ 'bshb.0.roomClimateControl_hz_1.RoomClimateControl.schedule', 'bshb.0.roomClimateControl_hz_2.RoomClimateControl.schedule', 'bshb.0.roomClimateControl_hz_3.RoomClimateControl.schedule', 'bshb.0.roomClimateControl_hz_4.RoomClimateControl.schedule', 'bshb.0.roomClimateControl_hz_5.RoomClimateControl.schedule', 'bshb.0.roomClimateControl_hz_6.RoomClimateControl.schedule', 'bshb.0.roomClimateControl_hz_7.RoomClimateControl.schedule', 'bshb.0.roomClimateControl_hz_8.RoomClimateControl.schedule', 'bshb.0.roomClimateControl_hz_10.RoomClimateControl.schedule', 'bshb.0.roomClimateControl_hz_14.RoomClimateControl.schedule' ]; let thermostat_ECO = [ 'bshb.0.roomClimateControl_hz_1.RoomClimateControl.setpointTemperatureForLevelEco', 'bshb.0.roomClimateControl_hz_2.RoomClimateControl.setpointTemperatureForLevelEco', 'bshb.0.roomClimateControl_hz_3.RoomClimateControl.setpointTemperatureForLevelEco', 'bshb.0.roomClimateControl_hz_4.RoomClimateControl.setpointTemperatureForLevelEco', 'bshb.0.roomClimateControl_hz_5.RoomClimateControl.setpointTemperatureForLevelEco', 'bshb.0.roomClimateControl_hz_6.RoomClimateControl.setpointTemperatureForLevelEco', 'bshb.0.roomClimateControl_hz_7.RoomClimateControl.setpointTemperatureForLevelEco', 'bshb.0.roomClimateControl_hz_8.RoomClimateControl.setpointTemperatureForLevelEco', 'bshb.0.roomClimateControl_hz_10.RoomClimateControl.setpointTemperatureForLevelEco', 'bshb.0.roomClimateControl_hz_14.RoomClimateControl.setpointTemperatureForLevelEco' ]; let thermostat_Comfort = [ 'bshb.0.roomClimateControl_hz_1.RoomClimateControl.setpointTemperatureForLevelComfort', 'bshb.0.roomClimateControl_hz_2.RoomClimateControl.setpointTemperatureForLevelComfort', 'bshb.0.roomClimateControl_hz_3.RoomClimateControl.setpointTemperatureForLevelComfort', 'bshb.0.roomClimateControl_hz_4.RoomClimateControl.setpointTemperatureForLevelComfort', 'bshb.0.roomClimateControl_hz_5.RoomClimateControl.setpointTemperatureForLevelComfort', 'bshb.0.roomClimateControl_hz_6.RoomClimateControl.setpointTemperatureForLevelComfort', 'bshb.0.roomClimateControl_hz_7.RoomClimateControl.setpointTemperatureForLevelComfort', 'bshb.0.roomClimateControl_hz_8.RoomClimateControl.setpointTemperatureForLevelComfort', 'bshb.0.roomClimateControl_hz_10.RoomClimateControl.setpointTemperatureForLevelComfort', 'bshb.0.roomClimateControl_hz_14.RoomClimateControl.setpointTemperatureForLevelComfort' ]; let thermostat_Raum = [ 'Toilette', 'Büro', 'Badezimmer', 'Schlafzimmer', 'Küche', 'Wohnzimmer', 'Kino_Sitze', 'Flur_Unten', 'Flur_Oben', 'Kino_Leinwand' ]; const tage = ['Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag']; let heizplanPath = '0_userdata.0.vis.Status.Thermostate.Heizplan.' on(/^bshb\.0\.roomClimateControl_hz_.*\.RoomClimateControl\.setpointTemperatureForLevel.*/, function() { heizplan(); }); function heizplan() { for (let i = 0; i < thermostat_Schedule.length; i ++) { let eco = getState(thermostat_ECO[i]).val; let tag1 = [,,,]; let comfort = getState(thermostat_Comfort[i]).val; let idJson = JSON.stringify(getState(thermostat_Schedule[i]).val); let profile = JSON.parse(idJson).profiles; // Array mit 7 Wochentagen, Mo = 0 let json; json = '['; for(let wd = 0; wd < 7; wd++) { let switchpoints = profile[wd].switchPoints; // Array mit Schaltpunkten eines Tages let y = 0; let tag = tage[wd]; json = json + '{"Tag":' + '" ' + tag + '", ' ; let w = 0; for(let z = 0; z < switchpoints.length; z++) { // enthält switchpoints[i].startTimeMinutes und switchpoints[i].value.temperatureLevel let min = switchpoints[z].startTimeMinutes % 60; let std = (switchpoints[z].startTimeMinutes - min) / 60; let smin = min.toString(); let sstd = std.toString(); if (min < 10) { smin = "0" + min.toString(); }; if (std < 10) { sstd = "0" + std.toString(); }; let zeit = sstd + ':' + smin; let temp; if (switchpoints[z].value.temperatureLevel === 'ECO') { temp = eco; } else if (switchpoints[z].value.temperatureLevel === 'COMFORT') { temp = comfort; }; if (i==0) { tag1[y] = tag; }; tag1[y+1] = zeit; tag1[y+2] = switchpoints[z].value.temperatureLevel; tag1[y+3] = temp.toFixed(z) + "°C"; json = json + '"Ab' + w + '": ' + '"' + zeit + '"' + ", " + '"Temp' + w + '": ' + '"' + temp + ' °C", '; y = y + 3; w ++; } json = json.substring(0,json.length-2); json = json + '},'; } json = json.substring(0,json.length-2); json = json + '}]' setState(heizplanPath + thermostat_Raum[i], json, true); }; }; heizplan();