home-assistant-frank_energie
home-assistant-frank_energie copied to clipboard
Current electricity market price 1 hour offset
First of all, thanks for creating this integration, it really helps in getting the most out of Frank's day ahead pricing :)
After daylight saving time went into effect yesterday here in NL, there now seems to be a one hour offset in the frank pricing information. I noticed that yesterday (the day the DST went into effect) there even was a two hour offset.
The 'Current electricity market price' actually is the price from an hour ago (screenshots created around 9.55):
After taking a quick peek at the source code, it seems that using one of the timezone helper functions that HA offers might help in solving the issue: https://github.com/home-assistant/core/blob/dev/homeassistant/util/dt.py
De code neemt de tijd van Home Assistant als UTC-tijd precies om dit soort dingen te voorkomen. Volgens het tijdstempelformat van Frank Energie zou hun prijsinformatie ook in UTC moeten zijn (Zulutijd), maar wanneer ik de gegevens met de app vergelijk lijkt hun data gewoon in lokale Nederlandse tijd te zijn.
Linksom of rechtsom zal een en ander inderdaad het best gefixt kunnen worden met een hulpfunctie zoals je beschrijft. Voor nu heb ik even wat bij elkaar gehackt dat op mijn machine werkt (™️). Voel je vooral vrij om het zelf op een nettere manier te fixen.
Het lijkt er trouwens op dat de grafiek in de app ook niet helemaal klopt. Zou de geselecteerde balk nu gelden van 11:00-12:00 of van 12:00-13:00 zoals de achterliggende uurstrepen aangeven?
Het lijkt er trouwens op dat de grafiek in de app ook niet helemaal klopt. Zou de geselecteerde balk nu gelden van 11:00-12:00 of van 12:00-13:00 zoals de achterliggende uurstrepen aangeven?
Scherp gezien, het lijkt er inderdaad op dat het aan de kant van Frank ook niet helemaal klopt, kijk maar naar de eerste balk van 'vandaag' die een tarief van gisteren bevat:
Bedankt in ieder geval voor de snelle (tijdelijke) fix. De kans is natuurlijk vrij groot dat Frank een issue aan hun kant gaat fixen en dat daardoor de code weer aangepast moet worden.
Het lijkt er inderdaad op dat Frank Energie aan hun kant weer wat heeft verschoven. Ik heb de code daarom opnieuw aangepast zodat de prijs weer overeenkomt met de informatie uit de app. Ik zal deze issue nog even open laten staan tot ik of iemand anders een wat nettere en meer definitieve oplossing kan schrijven.
Omdat de afwijking hier niet zozeer aan de kant van deze integratie zit maar aan de kant van Frank Energie vraag ik me af of de huidige hacky offset wel direct vervangen kan worden door een kant-en-klare hulpfunctie. Er moet namelijk niet gekeken worden of de zomertijd van toepassing is op de Home Assistant installatie, maar sec op de tijdzone Europe/Amsterdam waar Frank Energie zich in bevindt. Niet alle tijdzones gaan tegelijk over naar zomertijd (als ze het überhaupt al doen), dus er kan ook niet op een specifieke datum worden getriggerd.
Nu is Frank Energie volgens mij alleen actief in Nederland, maar wanneer iemand Home Assistant in UTC tijd draait zal het dus niet werken als gekeken wordt naar de tijdzone van Home Assistant zelf.
Mijn bevindingen: Ik gebruik een andere API ingang en krijg daarmee de volgende resultaten voor 1 april, 00:00-01:00 lokale tijd (31 maart 23:00-1 april 00:00 UTC Zulu):
curl -g -X POST -H "Content-Type: application/json" -d '{"query":"query MarketPrices { marketPricesElectricity(startDate: \"'2022-04-01'\" endDate: \"'2022-04-02'\") { till from marketPrice marketPriceTax sourcingMarkupPrice energyTaxPrice priceMarkup priceIncludingMarkup } }"}' https://frank-api.nl/graphql
{
"data":{
"marketPricesElectricity":[
{
"till":"2022-04-01T00:00:00.000Z",
"from":"2022-03-31T23:00:00.000Z",
"marketPrice":0.1733,
"marketPriceTax":0.0363846,
"sourcingMarkupPrice":0.0169,
"energyTaxPrice":0.0814,
"priceMarkup":0.0169, // depricated
"priceIncludingMarkup":0.2266 // depricated
},
/* Etc */
]
}
}
marketPrice is hier dus de Inkoopprijs. Dit komt overeen met de website; 1 april, 00:00-01:00 lokale tijd :
Als de tijd in de Frank API als UTC geïnterpreteerd wordt komen beide overeen.
Is er al een oplossing?
uur/prijs 10 0.34 11 0.33
huidige tijd 10:42 getoonde waarde 0.33 i.p.v. 0.34
Tijdzone in home assistant heb ik nu ingevuld maar en herstart maar geen verschil
Ik heb de tijdhack weer teruggedraaid in 9e14ea7 aangezien de Frank API nu wel daadwerkelijk data in UTC tijd lijkt te rapporteren.
Dankje voor de snelle fix. Update via HACS, herstart en het klopt zo inderdaad weer. :)
I think we can close this one as fixed :)
🧹