Closed HiDiHo01 closed 2 years ago
Volgens mij ligt het aan Frankenergie: op de website en de app zijn ook geen energieprijzen zichtbaar. Neem aan dat ze hard aan het werk zijn om het op te lossen bij Frank...
Volgens mij ligt het aan Frankenergie: op de website en de app zijn ook geen energieprijzen zichtbaar. Neem aan dat ze hard aan het werk zijn om het op te lossen bij Frank...
Ja klopt. Ik weet alleen niet hoe Home Assistant hier nu mee om gaat...zal wel opnieuw opstarten worden als er weer gegevens zijn. Misschien kan dit component aangepast worden zodat er overal "unavailable" komt bij sensoren. Dit kan natuurlijk vaker voorkomen en gooit roet in het eten bij automatisering. edit: en/of een binary_sensor die aangeeft of er data aanwezig is.
De api werkt ondertussen weer. De prijsentiteiten stonden in mijn installatie nog op onbeschikbaar, na een herstart werkte het weer naar behoren. Het kan zijn dat dit komt doordat de informatie nog pas net beschikbaar is en dat de integratie deze data nog niet had opgehaald, of er blijft iets hangen waardoor een herstart nodig is.
Bij mij is het automatisch hersteld. Ik had dus geen herstart nodig. Wel een gat in de history nu.
Bij mij bleef hij op de laatste prijs staan in de statistieken, sensor zelf gaf unavailable aan omdat ik overal de default "unavailable" ingesteld heb. Herstart was nodig. Het vreemde is dat prijzen voor "upcoming" en "morgen" wel automagisch terug kwam. Het aantal uur geladen staat nu ook op 73 dus misschien moet ik nog iets aanpassen omdat ik nu delen door "24" uur ingesteld had.
Om 2 uur vannacht ging het aantal uren geladen naar 24, daarna om 14 uur naar 49 en om 15 uur naar 73 Er gebeuren rare dingen met dat extra uur
De api werkt ondertussen weer. De prijsentiteiten stonden in mijn installatie nog op onbeschikbaar, na een herstart werkte het weer naar behoren. Het kan zijn dat dit komt doordat de informatie nog pas net beschikbaar is en dat de integratie deze data nog niet had opgehaald, of er blijft iets hangen waardoor een herstart nodig is.
Mijn ervaring is dat als de component een fout geeft er een herstart nodig is. Als je "unavailable" terug laat komen als waarde voor de sensor gaat het meestal wel goed (dit doe ik voor sensors "morgen" omdat er na 0:00 uur geen data voor morgen aanwezig is. Om 15 uur komt dan vanzelf de nieuwe data in de sensors, zonder fout in de component.
def get_tomorrow_prices(self, hourprices) -> List:
tomorrow_prices = []
i=0
for hour in hourprices:
if 47 < i < 72:
tomorrow_prices.append(
(hour['marketPrice'] + hour['marketPriceTax'] + hour['sourcingMarkupPrice'] + hour['energyTaxPrice'])
)
i=i+1
if -1 < datetime.now().hour < 15:
return 'unavailable'
if len(hourprices) == 48:
return 'unavailable'
return tomorrow_prices
Dit werkt op zich perfect alleen gooit dat uur extra roet in het eten.
Ik heb het volgende toegevoegd aan get_hourprices om een fout in het component te voorkomen Dit werkt alleen als je 72 uur inlaadt, laadt je 48 uur in moet len(hourprices) == 0 zijn.
if len(hourprices) == 24: #fix for when no data for today is available
return 'unavailable'
In de huidige vorm kun je dit toevoegen aan de eerste regel
def get_hourprices(self, hourprices) -> Dict:
if len(hourprices) == 0: #fix when no data for today is available
return 'unavailable'
today_prices = dict()
....etc
Even wat wijzigingen doorgevoerd, alles werkt weer prima extrahour_prices toegevoegd voor 1 dag per jaar....wanneer dag een extra uur heeft (dit zal over een half jaar wel weer een probleem vormen maar dat pas ik dan wel aan) Gemiddelde van vandaag klopt weer.
def get_hourprices(self, hourprices) -> Dict:
if len(hourprices) == 24: #fix when no data for today is available
return 'unavailable'
extrahour_prices = dict()
today_prices = dict()
tomorrow_prices = dict()
i=0
for hour in hourprices:
# Calling astimezone(None) automagically gets local timezone
fromtime = dt.parse_datetime(hour['from']).astimezone()
if 23 < i < 48:
today_prices[fromtime] = hour['marketPrice'] + hour['marketPriceTax'] + hour['sourcingMarkupPrice'] + hour['energyTaxPrice']
if 24 < i < 49:
extrahour_prices[fromtime] = hour['marketPrice'] + hour['marketPriceTax'] + hour['sourcingMarkupPrice'] + hour['energyTaxPrice']
if 47 < i < 72:
tomorrow_prices[fromtime] = hour['marketPrice'] + hour['marketPriceTax'] + hour['sourcingMarkupPrice'] + hour['energyTaxPrice']
i=i+1
if len(hourprices) == 49:
return extrahour_prices
if 3 < datetime.now().hour < 24:
return today_prices
if -1 < datetime.now().hour < 3:
if tomorrow_prices:
return tomorrow_prices
return today_prices
Dit is dus als je 72 uur inlaadt
En weer zijn er geen gegevens... Als Frank het zo slecht doet, begin ik echt te twijfelen of de rekening wel klopt
Logger: custom_components.frank_energie.coordinator Source: C:\Program Files\HassWP_2022.8.6\python-3.9.10.amd64\lib\site-packages\homeassistant\helpers\update_coordinator.py:263 Integration: frank_energie First occurred: 03:15:06 (11 occurrences) Last logged: 03:19:21
Unexpected error fetching Frank Energie coordinator data: can only concatenate list (not "NoneType") to list Traceback (most recent call last): File "C:\Program Files\HassWP_2022.8.6\python-3.9.10.amd64\lib\site-packages\homeassistant\helpers\update_coordinator.py", line 205, in _async_refresh self.data = await self._async_update_data() File "C:\Program Files\HassWP_2022.8.6\config\custom_components\frank_energie\coordinator.py", line 48, in _async_update_data 'marketPricesElectricity': data_today['marketPricesElectricity'] + data_tomorrow['marketPricesElectricity'], TypeError: can only concatenate list (not "NoneType") to list
Hij werkt weer.
En weer geen gegevens
Ik had nog geen tijd gehad om te kijken wat er gebeurde en dacht dat er bij Frank Energie gewoon iets hobbelde als gevolg van de wintertijd, maar het lijkt erop dat de API alleen nog maar data voor een enkele dag terug wil geven. Ik zal eens kijken of ik iets kan ombouwen.
Dit gaat een goedkoop maandje worden zo :P
Maar serieus; de enige reden dat mensen Frank Energie gebruiken is omdat ze het kunnen automatiseren, niemand gaat zijn wekker zetten voor 3 uur 's nachts om de was te draaien en de warmtepomp aan te zeten (en wakker blijven om hem weer uit te zetten als de prijs omhoog gaat). Niet zo best van Frank dit, geeft mij weinig vertrouwen in hun kunde.
Ik hoop wel dat prijzen voor morgen nog terugkomen
Data van de volgende dag wordt nu weer opgehaald, als het goed is ook zonder stuk te gaan wanneer de data er niet is.
De api geeft geen data meer, misschien door het uur verschil (wintertijd) correctie: er is wel data alleen niet van elektra vandaag/morgen, gas geeft wel voor 2 dagen data De site Frank Energie en mobiele app geven ook niets meer aan.
Alle sensoren geven deze melding: Deze entiteit is niet meer beschikbaar vanuit de frank_energie integratie. Wanneer de entiteit niet meer in gebruik is, kan deze vanuit de instellingen verwijderd worden.