Výpočet kapacity akumulátora
Souhrn tématu
Výpočet kapacity akumulátora lze provádět pomocí měření proudu a napětí s čipem INA228, který umožňuje přesné sledování průchodu náboje až do 85 V a proudy do 300 A. Data se pravidelně ukládají do paměti ESP32, což zajišťuje zachování hodnot i po výpadku napájení. Pro správný výpočet je důležité zohlednit vliv teploty a proudového zatížení na účinnost článků, přičemž korekce stavu nabití (SOC) může být nutná při výraznějších změnách teploty.
- Kajap
- Příspěvky: 931
- Registrován: pon črc 21, 2025 11:13 am
- Reputace:17
- Lokalita: Okoli
- Lokalita:Okoli
Re: Výpočet kapacity akumulátora
To je dumb reset a ne AI ML (umělá inteligence & strojové učení).
Zkrátka si myslím ale nic o tom nevím upozorňuje, že výrobce dobře ví co dělá když to bere pesimisticky protože to nemůže nikomu uškodit tolik jako kdyby to vzal optimisticky nebo exaktně
Zrovna nedávno když jsem dostal ten boční tak jsem nad tím přemýšlel kolik to může být přesný a jaká může být vzorkovací frekvence že to nikdy nemůže být přesný
Takže teď se to vysvětlilo, při nabití/ vybití se to “resetuje”
)
Pokud v manuálu není uvedeno nic o samo učení, tak tam asi nic vyššího nebude …
A jak je to s tím vzorkováním, přece to nemůže měřit krátkých vzorcích ? Nebo nevím jak ty kulomby fungují
Zkrátka si myslím ale nic o tom nevím upozorňuje, že výrobce dobře ví co dělá když to bere pesimisticky protože to nemůže nikomu uškodit tolik jako kdyby to vzal optimisticky nebo exaktně
Zrovna nedávno když jsem dostal ten boční tak jsem nad tím přemýšlel kolik to může být přesný a jaká může být vzorkovací frekvence že to nikdy nemůže být přesný
Takže teď se to vysvětlilo, při nabití/ vybití se to “resetuje”
Pokud v manuálu není uvedeno nic o samo učení, tak tam asi nic vyššího nebude …
A jak je to s tím vzorkováním, přece to nemůže měřit krátkých vzorcích ? Nebo nevím jak ty kulomby fungují
- Valdano
- Příspěvky: 2691
- Registrován: čtv črc 21, 2022 5:39 pm
- Reputace:337
- Lokalita: Česká Lípa
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Lokalita:Česká Lípa
Re: Výpočet kapacity akumulátora
AI ML v JK-BMS. To jsem bral jen jako vtip. Na něco takového můžete u současných JK-BMS zapomenout. Možná tak za XX let a s jiným HW. 
- Kajap
- Příspěvky: 931
- Registrován: pon črc 21, 2025 11:13 am
- Reputace:17
- Lokalita: Okoli
- Lokalita:Okoli
Re: Výpočet kapacity akumulátora
No nevim, já ji nemám ale ve foťáku v iPhonu (a iOS) to ML bylo snad už před 8 lety kvůli optimalizaci fotografování, věděl jsi to??
Ps: ai ml není chat gpt, aby bylo jasno. Na ml nepotřebuješ kdoví jaký hardware, ale SW.
Bojlery SMART Dražice taky měly učení chování uživatele už před 10 lety
Podle mě to není nic zas tak těžkýho, i 10 let starý škodovce musíš dát informaci - že jsi vyměnil baterku protože se učí
) jistě, spousta lidí to neví a vyměněnou baterku do kurví
Budíček
Ps: ai ml není chat gpt, aby bylo jasno. Na ml nepotřebuješ kdoví jaký hardware, ale SW.
Bojlery SMART Dražice taky měly učení chování uživatele už před 10 lety
Podle mě to není nic zas tak těžkýho, i 10 let starý škodovce musíš dát informaci - že jsi vyměnil baterku protože se učí
Budíček
- Valdano
- Příspěvky: 2691
- Registrován: čtv črc 21, 2022 5:39 pm
- Reputace:337
- Lokalita: Česká Lípa
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Lokalita:Česká Lípa
Re: Výpočet kapacity akumulátora
Podle mého názoru v JK-BMS učení ohledně odhadu SOC není. Nejsou o tom žádné zmínky ani ze strany výrobce ani široké skupiny uživatelů. Pojem AI je obecně dost zprofanovaný a v současné době tzv. cool. Pokud by tam něco takového bylo výrobce by se jistě hrdě chlubil tím, že tam má nějaké AI algoritmy případně strojové učení, které postupně v čase zpřesňuje odhad SOC. Takže výpočet SOC realizovaný ve firmware JK-BMS se dle mého názoru spoléhá výhradně na tradiční deterministické metody a není tam ani Kalmanova filtrace, která zlepšuje výpočet SOC.
- TomHC
- Příspěvky: 4271
- Registrován: pát lis 11, 2022 8:14 am
- Reputace:977
- Lokalita: Hlohovec, SR
- Systémové napětí: 48V
- Výkon panelů [Wp]: 8820
- Kapacita baterie [kWh]: 30
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Bydliště: Hlohovec, SR
- Lokalita:Hlohovec, SRSystémové napětí:48VVýkon panelů [Wp]:8820 Kapacita baterie [kWh]:30
Re: Výpočet kapacity akumulátora
Bože, vy ale okolo toho dokážete rozjímať.
A pritom je to tak jednoduché a sto krát vysvetlené. 
Hlavný spotrebič: VW ID.4 | 2x MUST PH1800 5.5kW + GWL-SUN2000, 9kWp V+J+Z | 600 Ah LiFePO4 s BMS JBD 200A | SW: Home Assistant na Synology DS923+ ku tomu ESPHome, Tasmota, MariaDB, InfluxDB, Telegraf, Grafana, Zigbee2MQTT... | HW: ESPlan (ESP32 + LAN 8720 + RS485).
Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome , BMS UART-TS485 adaptér
Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome , BMS UART-TS485 adaptér
- Kajap
- Příspěvky: 931
- Registrován: pon črc 21, 2025 11:13 am
- Reputace:17
- Lokalita: Okoli
- Lokalita:Okoli
Re: Výpočet kapacity akumulátora
Tak to vysvětlí po stoprvní když to zjevně nechápem
- unicast
- Příspěvky: 3019
- Registrován: sob bře 30, 2019 10:27 am
- Reputace:577
- Lokalita: JV od pekla :)
- Systémové napětí: 48V
- Výkon panelů [Wp]: 5100
- Kapacita baterie [kWh]: 49
- Chci/Mám dotaci: NE
- Lokalita:JV od pekla :)Systémové napětí:48VVýkon panelů [Wp]:5100 Kapacita baterie [kWh]:49
Re: Výpočet kapacity akumulátora
Mám pocit, že Toma nebaví házet hrách na zeď.
- TomHC
- Příspěvky: 4271
- Registrován: pát lis 11, 2022 8:14 am
- Reputace:977
- Lokalita: Hlohovec, SR
- Systémové napětí: 48V
- Výkon panelů [Wp]: 8820
- Kapacita baterie [kWh]: 30
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Bydliště: Hlohovec, SR
- Lokalita:Hlohovec, SRSystémové napětí:48VVýkon panelů [Wp]:8820 Kapacita baterie [kWh]:30
Re: Výpočet kapacity akumulátora
unicast, presne tak, a pritom stačí čítať, Franto to tu popísal úplne presne - viewtopic.php?t=2853#p297472
A ako bonus, prečo JK/JBD/Daly/Pace BMS "zle" merajú? O tom sa tu už tiež niečo popísalo. Jediný dôvod SoC driftu je to, že tie BMS majú "hluchú" zónu (niečo medzi -1A až +1A), kedy hlásia 0A.A prečo to je tak?Lebo neboli vymyslené pre ESS, ale pre elektro vozidlá (skútre, kolobežky, golfové vozíky) a pre jednoduchosť urobili, že ak je to pod +/-1A, tak je to buď nabité, alebo sa to nehýbe, tak sa to po pár minútach vypne. Alebo nebudeme merať "šum". A kde je problém? Problém je v tom, že ak je MPPT vo Float a ak výroba = spotreba, tak z/do batérie tečie minimálny prúd a vtedy BMS "nič" nepočíta. Detto pre menič v bypasse, vtedy berie podľa typu okolo 50W, t.j. 1A pri 16S LFP a vtedy to občas hlási 1A, ale väčšinou 0A. Preto je drift hlavne v zime a v období prebytkov, keď sa iba udržiava batéria.
Riešením je SmartShunt, diyBMS-CurrentShunt alebo čokoľvek podobné. Ten nemá žiadnu hluchú oblasť a SoC počíta úplne postačujúco.
A za druhé, neriadime tokamak ani otáčanie planét v našej slnečnej sústave, takže náreky o nepresnosti, peukertovej konštante a kompenzácie podľa teploty sú čistý bullshit a zbytočnosť, vhodná pre zopár jedincov postihnutých chorobným perfekcionizmom a potrebou vŕtať sa v každom
.
howgh
A ako bonus, prečo JK/JBD/Daly/Pace BMS "zle" merajú? O tom sa tu už tiež niečo popísalo. Jediný dôvod SoC driftu je to, že tie BMS majú "hluchú" zónu (niečo medzi -1A až +1A), kedy hlásia 0A.A prečo to je tak?Lebo neboli vymyslené pre ESS, ale pre elektro vozidlá (skútre, kolobežky, golfové vozíky) a pre jednoduchosť urobili, že ak je to pod +/-1A, tak je to buď nabité, alebo sa to nehýbe, tak sa to po pár minútach vypne. Alebo nebudeme merať "šum". A kde je problém? Problém je v tom, že ak je MPPT vo Float a ak výroba = spotreba, tak z/do batérie tečie minimálny prúd a vtedy BMS "nič" nepočíta. Detto pre menič v bypasse, vtedy berie podľa typu okolo 50W, t.j. 1A pri 16S LFP a vtedy to občas hlási 1A, ale väčšinou 0A. Preto je drift hlavne v zime a v období prebytkov, keď sa iba udržiava batéria.
Riešením je SmartShunt, diyBMS-CurrentShunt alebo čokoľvek podobné. Ten nemá žiadnu hluchú oblasť a SoC počíta úplne postačujúco.
A za druhé, neriadime tokamak ani otáčanie planét v našej slnečnej sústave, takže náreky o nepresnosti, peukertovej konštante a kompenzácie podľa teploty sú čistý bullshit a zbytočnosť, vhodná pre zopár jedincov postihnutých chorobným perfekcionizmom a potrebou vŕtať sa v každom
howgh
Hlavný spotrebič: VW ID.4 | 2x MUST PH1800 5.5kW + GWL-SUN2000, 9kWp V+J+Z | 600 Ah LiFePO4 s BMS JBD 200A | SW: Home Assistant na Synology DS923+ ku tomu ESPHome, Tasmota, MariaDB, InfluxDB, Telegraf, Grafana, Zigbee2MQTT... | HW: ESPlan (ESP32 + LAN 8720 + RS485).
Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome , BMS UART-TS485 adaptér
Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome , BMS UART-TS485 adaptér
- Migel
- Příspěvky: 1997
- Registrován: ned zář 25, 2022 10:47 am
- Reputace:383
- Lokalita: Pod Karpatmi
- Lokalita:Pod Karpatmi
Re: Výpočet kapacity akumulátora
Trosku sa mylis! Peukertov exponent nieje ziadna zbytocnost a je nevyhnutny pre meranie spravneho soc, v zariadeniach kde je v nastaveniach uvedeny.Ako napriklad smartshunt od victronu.
Ak mas zadanu nespravnu hodnotu tak ti to ukazuje nezmysly!
Minuly tyzden sa mi ozval chalan odtialto z fora a ze mu vyplo menic na nizke soc.Zistili sme ze ma zle nastavene hodnoty a prestavil peukertov exponent a soc zacalo zobrazovat spravne.
Nemusime riadit planety ani nic podobne, ale ked je v nastaveniach vyrobku nejaky parameter ktory je potrebny pre meranie, tak ho treba zadat spravne.To nieje puntickarstvo a ani nic podobne.
Ak mas zadanu nespravnu hodnotu tak ti to ukazuje nezmysly!
Minuly tyzden sa mi ozval chalan odtialto z fora a ze mu vyplo menic na nizke soc.Zistili sme ze ma zle nastavene hodnoty a prestavil peukertov exponent a soc zacalo zobrazovat spravne.
Nemusime riadit planety ani nic podobne, ale ked je v nastaveniach vyrobku nejaky parameter ktory je potrebny pre meranie, tak ho treba zadat spravne.To nieje puntickarstvo a ani nic podobne.
JZ-2s5p 3,8kWp >> Epever 8415 AN
JV-2s3p 2,7kWp >> Epever 6415 AN
2x Victron MP2 5000V/A paralelne
3x GWL SUN-2000G paralelne
48V 760Ah/35kWh Li-ion
a stále v štádiu budovania
(rozširovania)
JV-2s3p 2,7kWp >> Epever 6415 AN
2x Victron MP2 5000V/A paralelne
3x GWL SUN-2000G paralelne
48V 760Ah/35kWh Li-ion
a stále v štádiu budovania
- TomHC
- Příspěvky: 4271
- Registrován: pát lis 11, 2022 8:14 am
- Reputace:977
- Lokalita: Hlohovec, SR
- Systémové napětí: 48V
- Výkon panelů [Wp]: 8820
- Kapacita baterie [kWh]: 30
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Bydliště: Hlohovec, SR
- Lokalita:Hlohovec, SRSystémové napětí:48VVýkon panelů [Wp]:8820 Kapacita baterie [kWh]:30
Re: Výpočet kapacity akumulátora
Nerozporujem to, ak tam je nejaká voľba (kapacita batérie, peukertov exponent) ktorá sa vo výpočte používa, treba ju zadať korektne, to dá rozum. Narážal som skôr na to, že diyBMS-CurrentShunt ho nepoužíva, ani teplotný koeficient, ani nejaké promile samovybíjania a predsa to funguje veľmi slušne.
Hlavný spotrebič: VW ID.4 | 2x MUST PH1800 5.5kW + GWL-SUN2000, 9kWp V+J+Z | 600 Ah LiFePO4 s BMS JBD 200A | SW: Home Assistant na Synology DS923+ ku tomu ESPHome, Tasmota, MariaDB, InfluxDB, Telegraf, Grafana, Zigbee2MQTT... | HW: ESPlan (ESP32 + LAN 8720 + RS485).
Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome , BMS UART-TS485 adaptér
Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome , BMS UART-TS485 adaptér
- rva
- Příspěvky: 5181
- Registrován: úte dub 23, 2013 10:21 am
- Reputace:1037
- Lokalita: Kousek od Lysé nad Labem
- Systémové napětí: 48V
- Výkon panelů [Wp]: 46000
- Kapacita baterie [kWh]: 76
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Bydliště: Kousek od Lysé nad Labem
- Lokalita:Kousek od Lysé nad LabemSystémové napětí:48VVýkon panelů [Wp]:46000 Kapacita baterie [kWh]:76
Re: Výpočet kapacity akumulátora
Snad u olova to má význam, ale u lithia platí dost přesně, že kolik Ah dám dovnitř, tolik jich dostanu ven. Aspoň roční data z bočník+INA226+esp to celkem ukazují:
_______________________________________________________________________
FV: 43 kWp,
Baterie: LiFePO4 76 kWh,
Kombinované měniče/regulátory: 3x Isolar SM II (5 kW, 100 A, 450 V) + Isolar SMG II (6.2 kW, 120 A, 500 V)
Mppt regulátory: EPSolar ET6415N (60 A/150 V) + EASun ICharger 48100 (100 A / 150 V)
FV: 43 kWp,
Baterie: LiFePO4 76 kWh,
Kombinované měniče/regulátory: 3x Isolar SM II (5 kW, 100 A, 450 V) + Isolar SMG II (6.2 kW, 120 A, 500 V)
Mppt regulátory: EPSolar ET6415N (60 A/150 V) + EASun ICharger 48100 (100 A / 150 V)
- Valdano
- Příspěvky: 2691
- Registrován: čtv črc 21, 2022 5:39 pm
- Reputace:337
- Lokalita: Česká Lípa
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Lokalita:Česká Lípa
Re: Výpočet kapacity akumulátora
To platí pokud máte bateriové uložiště v prostoru s relativně stabilní teplotou ideálně okolo 20° C. Pokud je však umístěno v prostoru, ve kterém třeba v zimním období klesá teplota až někam k rozmezí mezi 5° až 10° C tak už to může snížit účinnost nabíjení LiFePo4 prizmatických článků o přibližně 5 až 8 %.
- Kajap
- Příspěvky: 931
- Registrován: pon črc 21, 2025 11:13 am
- Reputace:17
- Lokalita: Okoli
- Lokalita:Okoli
Re: Výpočet kapacity akumulátora
A ten bočník aj. snad neměří teplotu?
- Kajap
- Příspěvky: 931
- Registrován: pon črc 21, 2025 11:13 am
- Reputace:17
- Lokalita: Okoli
- Lokalita:Okoli
Re: Výpočet kapacity akumulátora
Tak to jsem nevěděl, takže výrobce vůbec nepočítají s FVE?TomHC píše: sob srp 29, 2026 9:27 pm
prečo JK/JBD/Daly/Pace BMS "zle" merajú? O tom sa tu už tiež niečo popísalo. Jediný dôvod SoC driftu je to, že tie BMS majú "hluchú" zónu (niečo medzi -1A až +1A), kedy hlásia 0A.A prečo to je tak?Lebo neboli vymyslené pre ESS, ale pre elektro vozidlá
howgh
Jo je pravda že jsem si všimnul že to občas konkr JBD uvnitř tohoto https://eu.renogy.com/cdn/shop/files/12 ... ery_UM.pdf ukazuje 0 už mi přišlo jako nesmysl že tam vždycky bude plus nebo mínus, takže tím se to vysvětluje ten proud je pod nějakým limitem je pravda že jsem tam nic jako 0.x A neviděl
- rva
- Příspěvky: 5181
- Registrován: úte dub 23, 2013 10:21 am
- Reputace:1037
- Lokalita: Kousek od Lysé nad Labem
- Systémové napětí: 48V
- Výkon panelů [Wp]: 46000
- Kapacita baterie [kWh]: 76
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Bydliště: Kousek od Lysé nad Labem
- Lokalita:Kousek od Lysé nad LabemSystémové napětí:48VVýkon panelů [Wp]:46000 Kapacita baterie [kWh]:76
Re: Výpočet kapacity akumulátora
Účinnost za nízkých teplot závisí i na proudovém zatížení článků. U mě ty venkovní nepřesáhnou 0.1C, což účinnosti pomůže. A jaká bude teplota, to jsem sám zvědav. Kdyby to mělo větší vliv na určení SOC, tak bych musel zahrnout nějakou korekci. Teploty měřím, ale ne všechny baterie jsou na jednom místě.
Jinak pro měření proudu je už za příznivou cenu k dispozici čip INA228. Výhodou je, že měří napětí až do 85 V a průchod náboje sám počítá. Oproti INA226 (16 bit) je 20 bitový.
Porovnání obou modulů (záznam 3 dnů) ukazuje, že výsledek je (téměř) stejný. Protože INA nemá trvalou paměť, akumulované hodnoty vyčítám do esp každých 30s a čítač v INA vynuluji. esp32 naakumulovaná data jednou za hodinu ukládá do trvalé paměti. Tak ani výpadek napětí nevede k velkým chybám. Nechtěl jsem dělat krabičku na míru, tak jsem jen upravil výřez pro displej u krabičky, kterou častěji používám a upevnil vše tavnou pistolí.
Na daném bočníku mám tedy teď dva snímače a ten s INA226 někdy demontuji.
Jinak pro měření proudu je už za příznivou cenu k dispozici čip INA228. Výhodou je, že měří napětí až do 85 V a průchod náboje sám počítá. Oproti INA226 (16 bit) je 20 bitový.
Porovnání obou modulů (záznam 3 dnů) ukazuje, že výsledek je (téměř) stejný. Protože INA nemá trvalou paměť, akumulované hodnoty vyčítám do esp každých 30s a čítač v INA vynuluji. esp32 naakumulovaná data jednou za hodinu ukládá do trvalé paměti. Tak ani výpadek napětí nevede k velkým chybám. Nechtěl jsem dělat krabičku na míru, tak jsem jen upravil výřez pro displej u krabičky, kterou častěji používám a upevnil vše tavnou pistolí.
Na daném bočníku mám tedy teď dva snímače a ten s INA226 někdy demontuji.
Kód: Vybrat vše
substitutions:
name: bocnik-01
friendly_name: Bočník 01
device_description: "Měření proudu do/z baterií pomocí bočníku 75mV/300A a snímače proudu INA228"
esphome:
name: ${name}
friendly_name: ${friendly_name}
comment: ${device_description}
name_add_mac_suffix: false
project:
name: esphome.web
version: '1.0'
esp32:
board: esp32dev
framework:
type: esp-idf
advanced:
minimum_chip_revision: "3.1"
sram1_as_iram: true
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
min_auth_mode: WPA2
# Optional manual IP
# manual_ip:
# static_ip: 192.168.0.60
# gateway: 192.168.0.1
# subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "bocnik01"
password: bocnik01
# V HA se pak k položkám "edit" a "logs" objeví položka "visit", kde se po kliknutí otevře stránka esphome daného zařízení
web_server:
port: 80
captive_portal:
# Aktivuje bezpečné ukládání stavů do paměti ESP aby se počítaná hodnota Ah po restartu nenulovala
preferences:
flash_write_interval: 1h # Hodnoty s restore: True se do trvalé paměti ukládají každou hodinu
# Hardwarové I2C piny pro klasické ESP32
i2c:
sda: GPIO21
scl: GPIO22
scan: true
font:
- file: "gfonts://Roboto"
id: font_normal
size: 11
glyphsets: GF_Latin_Core
# Základní alfanumerické znaky + specifická česká diakritika (Á, Í, É, Ě, Ý, Ň)
#glyphs: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/&°:. -_ÁÍÉĚÝ'
- file: "gfonts://Roboto"
id: font_large
size: 20
glyphsets: GF_Latin_Core
# Pro velké hodnoty stačí čísla, jednotky a znak stupně
#glyphs: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/&°:. -_ÁÍÉĚÝ'
globals:
# 1. Dočasné paměti pro rozepsané hodnoty
- id: docasna_baterie_dodano
type: float
initial_value: '0.0'
- id: docasna_baterie_odebrano
type: float
initial_value: '0.0'
- id: docasna_baterie_stav
type: float
initial_value: '0.0'
- id: celkovy_stav_ah
type: float
restore_value: true # <--- TOTO ZDE JE VALIDNÍ a přežije restart ESP
initial_value: '0.0' # Výchozí hodnota při úplně prvním flashnutí
- id: ulozena_kapacita
type: float
restore_value: true # Obnoví hodnotu z paměti, při prvním spuštění použije výchozí
initial_value: '1590.0' # Výchozí hodnota v Ah, pokud v paměti ještě nic není
#ina228
#Configuration variables:
# address (Optional, integer): Manually specify the I²C address of the sensor. Defaults to 0x40.
# shunt_resistance (Optional, float): The value of the shunt resistor on the board for current calculation. Defaults to 0.1 ohm.
# max_current (Optional, float): The maximum current you are expecting. ESPHome will use this to configure the sensor optimally. Defaults to 3.2A.
# adc_time (Optional, Time or both of the following nested options): The time in microseconds to perform a single ADC conversion. Defaults to 1100us. Valid values are 140us, 204us, 332us, 588us, 1100us, 2116us, 4156us, 8244us.
# voltage (Required, Time) ADC conversion time for Bus Voltage
# current (Required, Time) ADC conversion time for Shunt Voltage (Current measurement)
# adc_averaging (Optional, integer): Selects ADC sample averaging count. Defaults to 4. Valid values are 1, 4, 16, 64, 128, 256, 512, 1024.
# update_interval (Optional, Time): The interval to check the sensor. Defaults to 60s.
#
#Sensors
#The component offers four sensors. You can configure all or any subset of them. Each configured sensor is reported separately on each update_interval. The name option is required for each sensor configured. All other options from Sensor.
# current (Optional): Calculated current output, Amperes.
# power (Optional): Calculated power output, Watts.
# bus_voltage (Optional): Bus voltage output (voltage of the high side contact), Volts.
# shunt_voltage (Optional): Shunt voltage (voltage across the shunt resistor) value of the sensor, Volts.
sensor:
- platform: ina2xx_i2c
model: INA228
id: baterie_ina
address: 0x40
shunt_resistance: 0.00025 ohm
max_current: 300.0 A
adc_range: 0
adc_time: 1052us # Rychlejší vzorkování
adc_averaging: 1024 # Maximální hardwarové průměrování čipu
update_interval: 30s # Častější vyčítání do ESPHome
reset_on_boot: false # <--- DŮLEŽITÉ: ESP při bootu nesmaže čip!
bus_voltage:
name: "Napětí"
id: napeti
accuracy_decimals: 2
current:
name: "Current"
id: current
filters:
- throttle: 10s # Hodnota se do HA pošle maximálně jednou za 10s
accuracy_decimals: 2
power:
name: "Výkon"
id: vykon
accuracy_decimals: 1
temperature:
name: "Teplota"
id: teplota
accuracy_decimals: 1
# Zde definujeme hardwarový charge senzor (přináší hodnotu v Ah)
charge:
name: "INA228 Delta Ah"
id: ina228_delta_ah
# Jakmile INA vyčte novou hodnotu, spustí se tato akce:
on_value:
then:
- lambda: |-
if (!std::isnan(x)) {
// 1. Přičteme deltu z čipu k naší trvalé globální proměnné
id(celkovy_stav_ah) += x;
// 2. Ošetříme vaše limity baterie (0 až 1590 Ah)
if (id(celkovy_stav_ah) > id(ulozena_kapacita)) {
id(celkovy_stav_ah) = id(ulozena_kapacita);
}
if (id(celkovy_stav_ah) < 0.0) {
id(celkovy_stav_ah) = 0.0;
}
// 3. Propíšeme novou hodnotu do senzoru pro Home Assistanta
id(baterie_ah_stav).publish_state(id(celkovy_stav_ah));
// 4. Vynulujeme registry v INA228 pro další 30s cyklus
id(baterie_ina).reset_energy_counters();
}
#- platform: integration - pro výpočet z proudu
# name: "Baterie - Ah stav"
# id: baterie_ah_stav
# sensor: current
# time_unit: h # Výsledkem budou Ampérhodiny (Ah)
# integration_method: trapezoid # Metoda integrace (stejná jako máte v HA)
# restore: true # <--- DŮLEŽITÉ: Po restartu začne tam, kde skončil
# # Filtry kontrolují hodnotu při každé změně:
# filters:
# - lambda: |-
# if (x > 1590.0) {
# return 1590.0; // Pokud je hodnota vyšší než 1590, vrátí 1590
# } else if (x < 0.0) {
# return 0.0; // Pojistka: Pokud klesne pod 0, vrátí 0
# } else {
# return x; // Jinak vrátí skutečně naměřenou hodnotu
# }
# filters:
# - throttle: 60s # Hodnota se do HA pošle maximálně jednou za minutu
# 3. Výsledný senzor pro Home Assistanta (zobrazuje hodnotu z globální proměnné)
- platform: template
name: "Baterie - Ah stav"
id: baterie_ah_stav
unit_of_measurement: "Ah"
accuracy_decimals: 2
# Při startu ESP okamžitě načte uloženou hodnotu z globální proměnné
lambda: |-
return id(celkovy_stav_ah);
# --- AKTUÁLNÍ MĚSÍC (Běžící počítadla) ---
- platform: integration
name: "Baterie - dodáno Ah"
id: baterie_dodano_ah
sensor: proud_nabijeni
time_unit: h
integration_method: trapezoid
restore: true
accuracy_decimals: 2
icon: "mdi:battery-arrow-up" # Vizualizace nabíjení na webu
filters:
- throttle: 60s # Hodnota se do HA pošle maximálně jednou za minutu
- platform: integration
name: "Baterie - odebráno Ah"
id: baterie_odebrano_ah
sensor: proud_vybijeni
time_unit: h
integration_method: trapezoid
restore: true
accuracy_decimals: 2
icon: "mdi:battery-arrow-down" # Vizualizace vybíjení na webu
filters:
- throttle: 60s # Hodnota se do HA pošle maximálně jednou za minutu
# =================================================================
# Rozdělení kladného a záporného proudu
# =================================================================
# 1. Pouze nabíjecí proud (pokud je proud > 0)
- platform: template
id: proud_nabijeni
accuracy_decimals: 3
unit_of_measurement: "A"
lambda: |-
if (id(current).state > 0) {
return id(current).state;
} else {
return 0.0;
}
update_interval: 1s
# 2. Pouze vybíjecí proud (pokud je proud < 0, otočíme ho na kladnou hodnotu)
- platform: template
id: proud_vybijeni
accuracy_decimals: 3
unit_of_measurement: "A"
lambda: |-
if (id(current).state < 0) {
return -id(current).state;
} else {
return 0.0;
}
update_interval: 1s
# 1. Definice senzorů (Wi-Fi signál a textové informace o síti)
- platform: wifi_signal
name: "WiFi Síla Signálu"
update_interval: 60s
id: wifi_dbm
- platform: copy
source_id: wifi_dbm
name: "WiFi Síla Signálu v %"
unit_of_measurement: "%"
accuracy_decimals: 0
id: wifi_procenta
filters:
- lambda: return min(max(2 * (x + 100.0f), 0.0f), 100.0f);
# 2. Textová zadávací pole (Boxy)
number:
- platform: template
name: "Příprava - Baterie Dodáno Ah"
id: priprava_baterie_dodano
mode: box
optimistic: true
min_value: 0
max_value: 1000000
step: 1
icon: "mdi:battery-arrow-up"
set_action:
- globals.set:
id: docasna_baterie_dodano
value: !lambda "return x;"
- platform: template
name: "Příprava - Baterie Odebráno Ah"
id: priprava_baterie_odebrano
mode: box
optimistic: true
min_value: 0
max_value: 1000000
step: 1
icon: "mdi:battery-arrow-down"
set_action:
- globals.set:
id: docasna_baterie_odebrano
value: !lambda "return x;"
- platform: template
name: "Příprava - Baterie Stav Ah"
id: priprava_baterie_stav
mode: box
optimistic: true
min_value: 0
max_value: 1000000
step: 1
icon: "mdi:battery-heart-variant"
set_action:
- globals.set:
id: docasna_baterie_stav
value: !lambda "return x;"
# 2. Zadávací pole pro kapacitu baterie
- platform: template
name: "Kapacita baterie"
id: kapacita_baterie
min_value: 10
max_value: 5000
step: 1
unit_of_measurement: "Ah"
icon: "mdi:battery-arrow-up"
# Při startu nebo obnovení načte aktuální stav z proměnné
lambda: |-
return id(ulozena_kapacita);
# Při změně v HA zapíše novou hodnotu do trvalé paměti
set_action:
then:
- globals.set:
id: ulozena_kapacita
value: !lambda return x;
# 3. Potvrzovací tlačítka
button:
# Baterie mají 1590 Ah. Tímto tlačítkem se ručně údaj stavu baterie nastaví na tuto hodnotu
- platform: template
name: "Baterie - Ah - reset na 100%"
id: baterie_ah_reset
icon: "mdi:battery-refresh"
on_press:
then:
- lambda: |-
// 1. Nastavíme trvalou globální proměnnou na plnou kapacitu
id(celkovy_stav_ah) = id(ulozena_kapacita);
// 2. Okamžitě aktualizujeme stav senzoru pro Home Assistanta
id(baterie_ah_stav).publish_state(id(ulozena_kapacita));
- platform: template
name: "Zapsat - Baterie Dodáno Ah"
icon: "mdi:check-bold"
on_press:
- sensor.integration.set_value:
id: baterie_dodano_ah
value: !lambda "return id(docasna_baterie_dodano);"
- platform: template
name: "Zapsat - Baterie Odebráno Ah"
icon: "mdi:check-bold"
on_press:
- sensor.integration.set_value:
id: baterie_odebrano_ah
value: !lambda "return id(docasna_baterie_odebrano);"
- platform: template
name: "Zapsat - Baterie Stav Ah"
icon: "mdi:check-bold"
on_press:
then:
- lambda: |-
// 1. Přečteme zadanou hodnotu přímo z globální proměnné (bez .state)
float nova_hodnota = id(docasna_baterie_stav);
// Pojistka: pokud by hodnota byla neplatná, nic neprovádíme
if (!std::isnan(nova_hodnota)) {
// 2. Ošetříme limity (0 až ulozena_kapacita(1590 Ah))
if (nova_hodnota > id(ulozena_kapacita)) {
nova_hodnota = id(ulozena_kapacita);
}
if (nova_hodnota < 0.0) {
nova_hodnota = 0.0;
}
// 3. Uložíme hodnotu do trvalé globální proměnné celkového stavu
id(celkovy_stav_ah) = nova_hodnota;
// 4. Okamžitě aktualizujeme senzor pro Home Assistanta
id(baterie_ah_stav).publish_state(nova_hodnota);
}
text_sensor:
- platform: wifi_info
ip_address:
name: "IP Adresa"
id: wifi_ip
display:
- platform: ssd1306_i2c
model: "SH1106 128x64" # Změna na ovladač pro 1.3" displej
address: 0x3C # Standardní I2C adresa těchto displejů
id: oled_displej
pages:
- id: strana_1
lambda: |-
it.printf(0, 5, id(font_normal), "NAPETI & PROUD");
it.printf(0, 20, id(font_large), "%.2f V", id(napeti).state);
it.printf(0, 43, id(font_large), "%.2f A", id(current).state);
- id: strana_2
lambda: |-
it.printf(0, 5, id(font_normal), "VYKON & TEPLOTA");
it.printf(0, 20, id(font_large), "%.1f W", id(vykon).state);
it.printf(0, 43, id(font_large), "%.1f °C", id(teplota).state);
- id: strana_3
lambda: |-
it.printf(0, 5, id(font_normal), "Ah stav");
it.printf(0, 32, id(font_large), "%.2f Ah", id(baterie_ah_stav).state);
- id: strana_4
lambda: |-
it.printf(0, 5, id(font_normal), "SIT & PRIPOJENI");
// Zobrazení IP adresy (.c_str() je nutné pro textové senzory)
it.printf(0, 22, id(font_normal), "IP: %s", id(wifi_ip).state.c_str());
// Zobrazení signálu v % i dBm pod sebou
it.printf(0, 39, id(font_normal), "Signal: %.0f %%", id(wifi_procenta).state);
it.printf(0, 52, id(font_normal), "RSSI: %.0f dBm", id(wifi_dbm).state);
interval:
- interval: 5s
then:
- display.page.show_next: oled_displej
_______________________________________________________________________
FV: 43 kWp,
Baterie: LiFePO4 76 kWh,
Kombinované měniče/regulátory: 3x Isolar SM II (5 kW, 100 A, 450 V) + Isolar SMG II (6.2 kW, 120 A, 500 V)
Mppt regulátory: EPSolar ET6415N (60 A/150 V) + EASun ICharger 48100 (100 A / 150 V)
FV: 43 kWp,
Baterie: LiFePO4 76 kWh,
Kombinované měniče/regulátory: 3x Isolar SM II (5 kW, 100 A, 450 V) + Isolar SMG II (6.2 kW, 120 A, 500 V)
Mppt regulátory: EPSolar ET6415N (60 A/150 V) + EASun ICharger 48100 (100 A / 150 V)
Kdo je online
Uživatelé procházející toto fórum: Claudebot [Bot]
