Hej er ved at kigge på hvordan jeg får HOMEY til at vise hvor meget grøn energi der er i stikkontakten…
Derfor har jeg lavet nedenstående HOMEYSCRIPT ( det er kun et MOCKUP SÅ MEGET GRIM KODE)
Den kaldes så via et flow of så kan man bruge variablen GreenEnergyPercent…
Tænker at enten skal det bruges i LED RING eller LOGIC ZDB kontakt
// ENERGINET
/*
- This script fetchs JSON data from ENERGINET
- Calculates the Renewable Energy AMount In Percent
- NOTE ONLY FOR DK1 else change pricearea to DK2
*/
log(‘Så starter vi’)
// Create the request
// On purpose 10 records is loaded as the latest hours might be nulll
const res = await fetch(‘https://www.energidataservice.dk/proxy/api/datastore_search_sql?sql=SELECT%20"HourUTC",%20"HourDK",%20"PriceArea",%20"TotalLoad",%20"OtherRenewable",%20"SolarPower",%20"OnshoreWindPower",%20"OffshoreWindPower"%20FROM%20"electricitybalancenonv"%20ORDER%20BY%20"HourUTC"%20DESC%20LIMIT%2010’);
var GreenEnergyPercent=0;
var TimeSlot =0
var DateSlot=0;
if (!res.ok) {
throw new Error(res.statusText);
}
// Get the body JSON
const body = await res.json();
//log(${body.result.records[1].PriceArea}
);
//log(${body.result.records[1].HourDK}
);
//log(${body.result.records[1].OnshoreWindPower}
);
// Log the services
body.result.records.forEach(records => {
if(records.PriceArea==‘DK1’){// ONLY WEST DK ELSE USE DK2
if(records.OnshoreWindPower!=null){ //ONLY use where data
//log(${records.HourDK}: ${(records.OnshoreWindPower +records.SolarPower + records.OffshoreWindPower)/records.TotalLoad*100}
);
if(records.HourDK.substring(11,13)>TimeSlot || records.HourDK.substring(8,10)<DateSlot ){ //make sure newest timeslot ( also at day shift)
//log(‘NEWEST’)
GreenEnergyPercent= (records.OnshoreWindPower +records.SolarPower + records.OffshoreWindPower)/records.TotalLoad*100;
}
//log(records.HourDK.substring(11,13));
TimeSlot=records.HourDK.substring(11,13);
DateSlot=records.HourDK.substring(8,10);
}}
});
global.set(‘GreenEnergyPercent’, GreenEnergyPercent);
//Log(global.get(‘LysStue’));
//set tag
await setTagValue(‘GreenEnergyPercent’, {type:‘number’, title: ‘GreenEnergyPercent’}, GreenEnergyPercent );
return(true);