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 21 forks source link

HA a Energie #14

Closed mitchmb closed 3 months ago

mitchmb commented 1 year ago

Zdravím, Integrace je super. Jen jsem si všiml jedné věci. V když v HA používám kartu energie a dob záložky spotřeba že sítě si přidám aktuální cenu v dané hodině, tak to ale počítá o hodinu jinak. Protože HA tam tu energii za poslední hodinu přidává na začátku další hodiny, ale mezitím už se v senzoru aktuální ceny právě změnila cena na tu další hodinu. Zatím jsem to vyřešil pomocným sensorem, který se aktualizuje o minutu zpožděně oproti vašemu, aby HA měl ještě tu cenu minulé hodiny. Jen takový poznatek .

Martin

rnovacek commented 1 year ago

Díky za nahlášení. Moc mě nenapadá, jak to řešit. Připadá mi hloupé posunout změnu ceny o minutu, protože pak by to nesedělo pro automatizace (nechceme zapínat a vypínat spotřebiče o minutu později).

Mohl bych poprosit o screenshot, jak máte nastavené?

mitchmb commented 1 year ago

Chápu, ale zase na druhou stranu pokud použiju sensor.current_spot_electricity_price pro určení cenu pro danou hodinu v energetickém panelu HA, tak HA zapisuje uplynulou hodinu až v celou následující hodinu. Tedy např. rozmezí 10-11h zapíše v 11:00, ale v sensor.current_spot_electricity_price už je aktuální cena pro 11h. Ale já v ten okamžik potřebuji mít cenu předchozí hodiny tedy 10h. Vyřešil jsem to tedy tak, že jsem si v nastavení HA vytvořil pomocnou entitu input_number do které pomocí noderedu zapisuji novou cenu s minutovým zpožděním. Docílím tak toho, že v 11:00 tam mám ještě cenu 10h. Zpožděný zápis by šel udělat i pomocí normální automatizace, ale já osobně spíš používám NodeRed, protože mi nabízí víc možností.

Takže by možná bylo řešením vytvořit entitu např. sensor.current_spot_electricity_price_delayed do které by se hodnota zapisovala zpožděně. A tato entita by se používala pro energetický panel HA.

Poznámka 2023-03-20 183610

zejdajan commented 1 year ago

@mitchmb Zdravím, řeším podobný problém a Vaše řešení je asi nejlepší. Mohl bych Vás poprosit o screen nastavení 1. a 3. bloku z NodeRED? Zatím jsem NodeRED nepoužíval, takže spíš zkouším. Díky

mitchmb commented 1 year ago

@zejdajan nic na tom není :-) 1 3

zejdajan commented 1 year ago

@mitchmb Díky, měl jsem špatně "data" pro zpožděnou cenu.

Brectan commented 1 year ago

Dobrý den, integrace je super věc, klobouk dolu. Chci se jen zeptat jak mám chápat dodatečné náklady na energii. Je to za kWh nebo jednotná částka? Děkuji image

rnovacek commented 1 year ago

Dodatečné náklady ještě nefungují, omlouvám se.

Zpožděnou cenu přidám.

rnovacek commented 1 year ago

Můžete mi prosím někdo vysvětlit (třeba @mitchmb), jak jste přišli na to, že se ty ceny zpožďují? Trochu jsem se v tom vrtal a přijde mi, že to ty statistiky pro energie v Energy Dashboardu dělá plynule, nikoli skokově jednou za hodinu, takže by to problém být neměl.

Tohle je graf exportu do sítě, ceny za dodávku a hodinové ceny: image

mitchmb commented 1 year ago

Aktuální graf je něco jiného. Energy monitor funguje tak, že máte entitu kde je aktuální spotřeba. Vždy v celou hodinu si vezme aktuální hodnotu té entity a uloží si jí. Další celou hodinu zase vezme aktuální hodnotu a jen vypočítá rozdíl mezi poslední a předposlední. Tím získá spotřebu za uplynulou hodinu. A tady nastává problém s cenou, protože to dělá v celou novou hodinu, ale při použití aktuální ceny z integrace už je to cena za aktuální hodinu. Ale já tu spotřebu za uplynulou hodinu potřebuji vynásobit cenou za minulou hodinu. Proto jsem šel cestou zpožděné aktuální ceny, aby energy monitor měl v nějaké entitě cenu té minulé hodiny. Stačí si to ověřit tak že si to vypočítáte na kalkulačce sám. Vemte nějakou hodinu kde bude větší cenový rozdíl za kWh. A uvidíte že při použití ceny z integrace to nebude sedět.

rnovacek commented 1 year ago

Asi mi něco uniká, kde najdu ten energy monitor? Jediné místo, kde vidím cenu, je Energy Dashboard, ale tam je cena za aktuální období (den, týden, měsíc, rok), cenu po hodinách nikde nevidím.

image

mitchmb commented 1 year ago

Energy monitor myslím samozřejmě energy dashboard. Ve vašem obrázku je sice cena za den, ale ta se samozřejmě v daném dni každou hodinu zvýší o spotřebu za uplynulou hodinu. A sledování po hodině lze zjistit že to počítá špatně.

mitchmb commented 1 year ago

V podstatě by stačilo vytvořit senzor s názvem např. "Cena minulé hodiny pro Energy Dashboard" ve které se bude ukládat cena minulé hodiny a tento sensor se použije pro Energy Dashboard

radoslavius commented 1 year ago

A to nemluve o tom, kdyz nejakou dobu HA nejede, pak to po nasledujici cele hodine vezme vsechno sakumprask za aktualni cenu v nastavene entite. Ukazka kdyz jsem v nedeli prenasel HA na nove zelezo: image Toto sice bezne nenastava, ale je krasne videt jak funguje nacitani dat do dashboardu. A tak funguje i vypocitavani ceny. Po uplynuti kazde cele hodiny se spusti nejaky trigger, ktery to spocita a nastavi, ale entita uz tou dobou vraci cenu za dalsi hodinu a tak je vypocet spatne.

rnovacek commented 1 year ago

Ta vstupní entita (spotřeba energie) se mění jen jednou za hodinu? Neměla by se měnit kontinuálně a při každé změně se vynásobit cenou pro danou hodinu? Co kdyby nebyly na spotu ceny za hodinu ale za půlhodinu (či jiný interval)? Pak by to taky nefungovalo, ne? (nevědělo by se, kolik se spotřebovalo za první půlhodinu a kolik za druhou)

Já to mám takhle: image

a vstupní entita stoupá lineárně (žádné skoky): image

@radoslavius tohle asi řešení nemá, vstupní entita má skok v datech, je tam pořád hodnota, kdy se to vypnulo a pak najednou je ta nová. Nejsou tam data v kterou hodinu se kolik spotřebovalo, takže až se objeví nová hodnota, vezme se aktuální hodinová cena a ta se použije. Z hlediska HA všechna spotřeba proběhla v momentě nového startu.

radoslavius commented 1 year ago

Neznam presne postup jak to HA dela, ale mam vysledovano, ze v energy dashboardu se vzdy hodnoty naplni po uplynuti kazde cele hodiny. Z toho se da soudit, ze informace o cenach teda pocita taky v tu dobu. Udaje se tam zapisou a uz se pak nikdy neprepocitavaji. Takze se vezme aktualne nastavena hodnota v entite v tu chvili.

Pokud by se cena menila v mensim casovem useku nez hodina, tak by se to pomoci energy dashboardu v HA resilo dost blbe. To by sis asi musel nejak pocitat prubezne a do te entity s cenou pak vlozit nejaky vypocteny prumer.

To co jsem posilal urcite nema reseni, jen jsem na tom chtel demonstrovat jak ten dashboard funguje. A tak jak zapise spotrebu a vyrobu, tak v tu stejnou chvili i cenu a tim padem cenu za aktualni hodinu a ne za tu predeslou, kdy ta spotreba/vyroba vznikla.

rnovacek commented 1 year ago

To, že se to v energy dashboardu objeví až v celou hodinu nic neříká o tom, jak se to počítá. Očekával bych, že se to bude počítat průběžně, protože energy dashboard neví, kdy se mění hodinová cena. Je to jen další vstupní entita.

rnovacek commented 1 year ago

@mitchmb Můžete mi sem prosím hodit screenshot grafu té vstupní entity, kterou máte v energy dashboardu? Podobně, jak jsem postoval v tomhle komentáři?

radoslavius commented 1 year ago

Momentalne jsem v ocekavani na prechod na spotove ceny, takze ted tam mam nejakou moji entitu s fixni cenou, ale prubezne studuju jak a co kde nastavit, abych mohl naskocit. Zvazuju, ze bych si nahodil nejaky testovaci HA, kde bych si to uz nastavil na spotove ceny, takze jak to bude, tak muzu testovat.

Co se tyka te vstupni hodnoty, tak to sice stoupa linearne, ale ten dashboard to pocita podle me z rozdilu kazdou hodinu. Takze pokud je ma uvaha spravna, tak kdyz bude skoro celou hodinu nastavena cena na 0 a pak to pred uplynutim hodiny nastavite, tak se to vypocita s tou nastavenou cenou. Naopak kdyz cenu na prelomu hodiny nastavite na 0, tak to spocita 0. Nicmene v tom cenovem prehledu to je za cely den, takze to uvidite jen v pripade velkeho cenoveho skoku.

mitchmb commented 1 year ago

@mitchmb Můžete mi sem prosím hodit screenshot grafu té vstupní entity, kterou máte v energy dashboardu? Podobně, jak jsem postoval v tomhle komentáři?

Tak nějak úplně nechápu co přesně teď řešíte? Pokud chcete, aby se spotové ceny počítaly správně. Je potřeba mít entitu, kde bude uložená cena předchozí hodiny a tu používat v energy dasboardu. Ale to už jsem všechno tady vysvětloval. Screenshot_2023-09-07-10-44-12-133_io homeassistant companion android

mitchmb commented 1 year ago

Co se tyka te vstupni hodnoty, tak to sice stoupa linearne, ale ten dashboard to pocita podle me z rozdilu kazdou hodinu. Takze pokud je ma uvaha spravna, tak kdyz bude skoro celou hodinu nastavena cena na 0 a pak to pred uplynutim hodiny nastavite, tak se to vypocita s tou nastavenou cenou. Naopak kdyz cenu na prelomu hodiny nastavite na 0, tak to spocita 0. Nicmene v tom cenovem prehledu to je za cely den, takze to uvidite jen v pripade velkeho cenoveho skoku.

Ano HA spočítá rozdíl odběru v předešlé hodině (protože to počítá na začátku nové hodiny). A tento rozdíl je potřeba vynásobit s cenou právě v té minulé hodině. Takže jak už jsem tady vysvětloval, udělal jsem si entitu, která je oproti originální entitě s aktuální cenou o minutu zpožděná. Tedy aktuální cena se do ní uloží v celou hodinu a 1 minutu. Nicméně to stačí protože přesně v celou hodinu se provede výpočet a ještě tam je vlastně cena předchozí hodiny, takže vše sedí. A v Energy dashboardu se ukazuje pouze cena za celý den, takže pokud chcete zjistit jestli to počítá správně musíte si to sledovat po hodině. Ale takhle jak jsem to udělal já je to správně.

radoslavius commented 1 year ago

@mitchmb Jen jsem doplnoval info pro @rnovacek , protoze mam pocit, ze tuto realitu "nechce prijmout" ;) @rnovacek nic ve zlem

mitchmb commented 1 year ago

@radoslavius aha, jinak ano HA funguje na rozdílu stavů před a po. Ale pokud mezitím vypadne třeba elektřina nebo nefunguje HA, tak se výpočet provede pro další hodině, kdy už to nemusí souhlasit. Prostě tak to je.

rnovacek commented 1 year ago

Pokud to HA počítá jednou za hodinu a to až v následující hodině, tak to podle mě dělá špatně. Co když se bude cena za energii měnit častěji než jednou za hodinu? Možná by stálo za to na to založit issue v repozitáři HomeAssistantu.

mitchmb commented 1 year ago

@rnovacek tak spotové ceny jsou také po hodině. Takže bych to teď vůbec neřešil, protože to teď je správně.

radoslavius commented 1 year ago

ale asi se to bude muset resit ... https://ekonomickydenik.cz/trh-s-elektrinou-se-vyrazne-zmeni-co-prinese-v-praxi-obchodovani-po-15-minutach/ 😄 pokud to neni vtip

davidrapan commented 3 months ago

Zdravím, sice je to rok a půl starý téma, ale zaujalo mě to. Nevím teda jestli HA tehdy nedělal něco jinak. Ale teď určitě nic skokově nepočítá, jen to skokově po hodině ukazuje. ;) Na sensor, který řeší ten cost co Energy Dashboard ukazuje se i dá v Developer Tools mrknout a jde na něm vidět, že nabíhá postupně.

Kdyby to vážně HA dělal tak jak popisujete tak by to bylo šílený a hlavně špatně. Takhle mrvit statistiku a myslet si, že k něčemu pak bude je dost naivní.

Páčko 😆

rnovacek commented 3 months ago

Díky @davidrapan. Myslím, že tohle issue můžem zavřít.