rnovacek / homeassistant_cz_energy_spot_prices

Home Assistant integration that provides current Czech electricity spot prices based on OTE.
Apache License 2.0
91 stars 22 forks source link

All sensors Unavailable since ~ July 23, 2024 at 5:00:00 PM #56

Open davidrapan opened 4 months ago

davidrapan commented 4 months ago

Hi, is it only me or?

2024-07-24 01:49:33.126 DEBUG (MainThread) [custom_components.cz_energy_spot_prices] async_setup_entry None data: [{'currency': 'CZK', 'unit_of_measurement': 'kWh'}]; options: [{}]
2024-07-24 01:49:33.127 DEBUG (MainThread) [custom_components.cz_energy_spot_prices.coordinator] SpotRateCoordinator.__init__
2024-07-24 01:49:33.129 INFO (MainThread) [custom_components.cz_energy_spot_prices.sensor] async_setup_entry None, data: [{'currency': 'CZK', 'unit_of_measurement': 'kWh'}] options: [{}]
2024-07-24 01:49:33.152 DEBUG (MainThread) [custom_components.cz_energy_spot_prices.coordinator] SpotRateCoordinator._async_update_data
2024-07-24 01:49:33.152 DEBUG (MainThread) [custom_components.cz_energy_spot_prices.coordinator] SpotRateCoordinator.fetch_data
2024-07-24 01:49:33.382 ERROR (MainThread) [custom_components.cz_energy_spot_prices.coordinator] OTE request failed unexpectedly during intial load
Traceback (most recent call last):
  File "/config/custom_components/cz_energy_spot_prices/coordinator.py", line 262, in _async_update_data
    self._spot_rate_data = await self.fetch_data()
                           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/cz_energy_spot_prices/coordinator.py", line 210, in fetch_data
    electricity_rates, gas_rates = await asyncio.gather(
                                   ^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/cz_energy_spot_prices/spot_rate.py", line 118, in get_gas_rates
    rates, currency_rates = await asyncio.gather(
                            ^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/cz_energy_spot_prices/spot_rate.py", line 134, in _get_rates
    root = ET.fromstring(text)
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/xml/etree/ElementTree.py", line 1335, in XML
    parser.feed(text)
xml.etree.ElementTree.ParseError: mismatched tag: line 66, column 4
2024-07-24 01:49:33.384 DEBUG (MainThread) [custom_components.cz_energy_spot_prices.coordinator] Finished fetching Czech Energy Spot Prices data in 0.233 seconds (success: True)
2024-07-24 01:49:33.385 INFO (MainThread) [custom_components.cz_energy_spot_prices.sensor] No value found for Spot Cheapest Electricity Today
2024-07-24 01:49:33.385 INFO (MainThread) [custom_components.cz_energy_spot_prices.sensor] No value found for Spot Cheapest Electricity Tomorrow
2024-07-24 01:49:33.385 INFO (MainThread) [custom_components.cz_energy_spot_prices.sensor] No value found for Spot Most Expensive Electricity Today
2024-07-24 01:49:33.385 INFO (MainThread) [custom_components.cz_energy_spot_prices.sensor] No value found for Spot Most Expensive Electricity Tomorrow

Also what can we do to have data in sensors more reliable? Cause I noticed that sometimes they do appear Unavailable for some short periods...

Thanks!

davidrapan commented 4 months ago

57 Ah I see, It looks like ote-cr.cz is down.

klubalo commented 4 months ago

obrazek

romankysely commented 4 months ago

Hmm to jsem zvědav jak se budou řešit přetoky se zápornou cenou, když není podle čeho se řídit. Nebo existuje nějaká jiná varianta jak načíst data z burzy a alespoň ručně nastavit/zastavit přetoky? díky za případný tip OTE je nyní 24.7.2024 16:28hod. DOWN! 502 Bad Gateway.

zlymeda commented 4 months ago

OTE uz je zpatky: https://www.ote-cr.cz/cs/kratkodobe-trhy/elektrina/denni-trh?date=2024-07-24

davidrapan commented 4 months ago

No to jo ale bych čekal, že to budou mít řešený tak, aby výpadky nebyly ani z důvodu údržby. Celkem lame toto.

Unlik commented 4 months ago

Hmm to jsem zvědav jak se budou řešit přetoky se zápornou cenou, když není podle čeho se řídit. Nebo existuje nějaká jiná varianta jak načíst data z burzy a alespoň ručně nastavit/zastavit přetoky? díky za případný tip OTE je nyní 24.7.2024 16:28hod. DOWN! 502 Bad Gateway.

Jednoduchý - jakmile "nejsou" data, tak přetoky zakázat - jistota je jistota.

JanPova commented 4 months ago

Opět nefunkční, ale důležité je, že ty data zpětně doplňujou a že to je vlastně bezvadná cesta jak s náma pěkně vy..dat :D když tam data budou za předešlý den tak to celé OTE dává smysl :D, lépe bych to nevymyslel... Nevím jak máte nastavené automatizace ale já mám nastaveno "když cena klesne pod, když cena vzroste nad", háček je ale v tom, že pokud jsou data nedostupná k žádné změně ceny nedošlo a systém dále spokojeně tlačí přetoky. Jak máte nastavenou hoši automatizaci která tyhle "ojedinělé" výpadky řeší?

zlymeda commented 4 months ago

myslim, ze entita by mela byt unavailable pokud nejsou data pro danou hodinu. pak muzeme mit automatizaci co delat kdyz je unavailable, napr vypnout pretoky/nabijet auto, ....

11marvin commented 4 months ago

to jsem trochu ocekaval taky, ze treba sensor.current_spot_electricity_price bude N/A. Bohuzel, alespon v mem pripade, tam zustala posledni znama hodnota, takze to nejak moc nemuzu detekovat. Pretoky a automatizaci jsem v noci vypnul rucne, kdyz jsem si nahodou vsiml, ze nejsou dostupna data.

rnovacek commented 3 months ago

Díky za nahlášení. Nevíte někdo, jaký HTTP status OTE vracelo během toho výpadku? Ideální by bylo, kdyby to bylo něco >= 400, aby se to dalo detekovat.

Zkusím se podívat na ten kód pro stahování dat z OTE, ale jsem na tom teď dost špatně s časem :(

davidrapan commented 3 months ago

Nevracelo žadnej HTTP kód, jen na webu psali viz můj PR. To byl jediný způsob jak to detekovat. Ddpověď byla normálně 200 s popisem v obsahu. Proto tvoje integrace házela chybu že neumí parsovat tu odpověď.

😉