home-assistant-frank_energie icon indicating copy to clipboard operation
home-assistant-frank_energie copied to clipboard

Current electricity market price 1 hour offset

Open bart-roos opened this issue 2 years ago • 10 comments

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):

image

image

bart-roos avatar Mar 28 '22 08:03 bart-roos

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

bart-roos avatar Mar 28 '22 08:03 bart-roos

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.

bajansen avatar Mar 28 '22 10:03 bajansen

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?

Screenshot Frank Energie App

bajansen avatar Mar 28 '22 10:03 bajansen

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:

image

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.

bart-roos avatar Mar 28 '22 10:03 bart-roos

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.

Screenshot Frank Energie app

bajansen avatar Mar 28 '22 16:03 bajansen

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.

bajansen avatar Mar 30 '22 07:03 bajansen

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 :

image

Als de tijd in de Frank API als UTC geïnterpreteerd wordt komen beide overeen.

Yveaux avatar Apr 02 '22 06:04 Yveaux

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

Tazzios avatar May 09 '22 08:05 Tazzios

Ik heb de tijdhack weer teruggedraaid in 9e14ea7 aangezien de Frank API nu wel daadwerkelijk data in UTC tijd lijkt te rapporteren.

bajansen avatar May 09 '22 09:05 bajansen

Dankje voor de snelle fix. Update via HACS, herstart en het klopt zo inderdaad weer. :)

Tazzios avatar May 09 '22 09:05 Tazzios

I think we can close this one as fixed :)

DCSBL avatar Mar 26 '23 09:03 DCSBL

🧹

bajansen avatar Mar 27 '23 13:03 bajansen