Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if(existsState('javascript.0.vis.pv_hours') === false) {
- createState('vis.pv_hours', 0, {name: 'HTML-Daten der Stundenvorhersagen', unit: '', type: 'string', role: 'text'});
- }
- schedule('* * * * *', function() {
- let vishtml = '';
- let state_id = 'plenticore.0.forecast.day1.power'
- let hour_state_id;
- let power;
- let generated;
- let time;
- let gen_percentage;
- for(let h = 1; h <= 24; h++) {
- hour_state_id = state_id + '.' + h + 'h';
- if(!existsState(hour_state_id + '.power')) {
- //log(hour_state_id + '.power not existing', 'info');
- continue;
- }
- power = getState(hour_state_id + '.power').val;
- if(existsState(hour_state_id + '.generated')) {
- generated = getState(hour_state_id + '.generated').val;
- } else {
- generated = 0;
- }
- //log('Gen for h ' + h + ' is ' + generated);
- gen_percentage = Math.round(100 * generated / power);
- if(existsState(hour_state_id + '.time')) {
- time = new Date(getState(hour_state_id + '.time').val);
- time.toGermanTime();
- time = ('0' + time.getHours()).slice(-2) + ':' + ('0' + time.getMinutes()).slice(-2);
- } else {
- time = '';
- }
- vishtml += '<div class="fc-hour-entry">';
- vishtml += '<div class="fc-hour-time">' + time + '</div>';
- vishtml += '<div class="fc-hour-forecast">' + Math.round(power).toLocaleString().replace(',', '.') + ' Wh</div>';
- vishtml += '<div class="fc-hour-real"><span class="progress-bar"><span class="progress" style="width:' + (gen_percentage > 100 ? 100 : gen_percentage) + '%"></span></span><span class="progress-label">' + Math.round(generated).toLocaleString().replace(',', '.') + ' Wh (' + gen_percentage + '%)</span></div>';
- vishtml += '</div>';
- }
- setState('vis.pv_hours', vishtml, true);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement