Integrace Home Assistant se Solax X3 Hybrid G4

Solax má integraci přímo v Home Assistant. Tato integrace ale s novějšími zařízeními nebo novějším firmware nefunguje, protože předpokládá připojení na lokální IP adresu Solaxu, ze které si bude stahovat data. Toto lokální spojení je ale s novějšími verzemi firmware blokované.
Řešením je buď použití modbus převodníku s LAN nebo přímo cloudové API. Nevýhodou cloudového API je stahování dat pouze jednou za 5 minut. Nepotřebujete k tomu ale zase žádný jiný extra hardware.
Aktivace cloudového API Solax Cloud
Rozhodl jsem se jít cestou cloudového API. Aby bylo možné se na API z Home Assistant připojit, je nejprve nutné API povolit v Solax Cloud. To můžeme udělat jedním kliknutím v Service – API. Objeví se TokenID a API Address.
Přidání senzoru Solax do Home Assistant
Pro integraci Solax X3 Hybrid G4 jsem procházel komunitní diskuze, abych zjistil možnosti propojení. Nejvíc se mi líbilo řešení od uživatele 74Quickie74. Převzal jsem toto řešení a lehce upravil pro své potřeby.
Tento kód stačí vložit do souboru se senzory Home Assistant. Jen musíte doplnit do resource: https://www.solaxcloud.com/proxyApp/proxy/api/getRealtimeInfo.do?tokenId=VasTokenID&sn=SNVasehoInverteru
vaše TokenID a registrační číslo inverteru.
Tím je integrace hotová a v Home Assistant máte několik nových senzorů poskytujících data ze Solaxu.
Nevíte si rady s integrací Solax s Home Assistant? Ozvěte se nám!
Já jsem si ale vytvořil ještě jednu šablonu pro počítání celkově vyrobené energie ze slunce. Tento senzor následně používám i v energy dashboard, viz níže. Do souboru templates.yaml jsem vložil následující.
Kvůli měření nabíjení a vybíjení baterií je potřeba přidat následující do souboru customize.yaml.
V Home Assistant mám díky tomu následující data ze Solaxu.

Integrace Solax do Energy dashboard
Pokud sledujete energie v Home Assistant pomocí Energy dashboard, je dobré tam přidat i Solax, abyste viděli, kolik elektřiny vyrobíte a spotřebujete a jak se to podílí na celkovém energetickém mixu.

V nastavení Energy dashboard stačí přidat do části solárních panelů senzor měřící celkovou výrobu energie.

Solax bohužel v době psaní článku neposkytuje data o využití bateriového systému, takže tuto informace není možné do Home Assistant přímo integrovat. Pokud by někdo věděl o způsobu, jak data z využití baterie do Home Assistant dostat, dejte prosím vědět v komentářích 🙂
EDIT: Přes rozšíření původního kódu se mi podařilo měřit i využití bateriového systému. Viz ukázky kódu výše.

Chcete pomoct s integrací Home Assistant se Solax? Ozvěte se nám a můžeme se domluvit na individuální konzultaci.
Martin
Dobrý den,
zeptám se, počítáte také čas do vybití a čas do nastaveného SOC z lokálních entit systému?
Jelikož vlastním střídašč, Solax X3 hybrid G1/2, který toto sám nemá, snažím se o výpočet již delší dobu.
Avšak vždy něco funguje špatně.
Pokud ano, byl by jste ochoten sdílet kód?
Děkuji Martin
Lukáš Beran
Dobrý den Martine.
Ne, tohle nepočítám a neřeším. Co Vás k tomu vede, že byste chtěl znát čas do vybití?
Luděk
Dobrý den, prosím, odpusťe mi hloupou otázku.
Co to je Home Asistant? Netuším, jestli nějaká krabička, aplikace v mobilu nebo PC…
Líbilo by se mi vidět to, co je na obrázku. Díky za info
Lukáš Beran
Dobrý den Luďku.
Viz https://www.home-assistant.io/. Nebo se podívejte na další naše články o Home Assistant https://www.selfiehome.cz/tag/home-assistant/
Luděk
Zdravím Vás Lukáši,
tak se přiznám, už to sice chápu, ale je to nad mé schopnosti. Měl jsem za to, že jednoduše přes převodník – Rs232, RS485, ETH… připojím počítač a budu číst data lépe a rychleji než po 5minutách přes Cloud. A Rapsberry znám pouze PICO 🙂
Takže díky a zde bastlící obdivuji.
Lukáš Beran
Dobrý den, Luďku.
Pokud byste s tím chtěl pomoct, dejte vědět a můžeme se domluvit na nějaké konzultaci, viz Možnosti spolupráce.
Jakub Š.
Zdravím, narazil jsme na tento článek a celkem mi pomohl v pochopení HA a integraci Solaxu do něj. Soubor se senzorama jsem si vytvořil a dal do něj kód. Na hlavní stránce se mi to ukázalo i s datama. Poté jsem jsi vytvořil soubor templates.yaml a vložil do něho kód s celkovou výrobou. To už mi HA nezkousne a píše mi to ‚Property name is not allowed“Bad identation of mapping entry‘ atd. NA každém řádku chyba. Říkal jsem si, že by mohl být problém v syntaxi. Ale nedokážu to vyřešit. Jak to implementovat správně? Děkuji za odpověď.
Lukáš Beran
Dobrý den.
Takhle na dálku těžko soudit. Doporučuji konzultovat přímo s autorem na odkazovaném Home Assistant fóru https://community.home-assistant.io/t/pv-solax-inverter-cloud-sensors-via-api/277874/103
Jakub Š.
No a nechybí zde něco?
– name: „Celková výroba energie“
state: „{{ states(‚sensor.solax_garage_total‘) }}“
availability: „{{ states(‚sensor.solax_garage_total‘) | float > 0 }}“
unit_of_measurement: „kWh“
state_class: total_increasing
device_class: energy
attributes:
last_reset: „1970-01-01T00:00:00+00:00“
Je toto celý kód?
Lukáš Beran
Ano, pro potřeby tohoto senzoru je to kompletní kód.
Jakub Š.
Dobře, moc děkuji za Vaši pomoc a odpověď. |Zkusím si s tím nějak pohrát. Je někde k nalazení příklady kódu, jak zobrazt senzory v Energy panelu , když je mám, od Vás, zobrazený v dashboardu? Na něco jsem koukal, ale většinou jsem našel, jaké atrbuty by taková entita měla, ale nenašel jsme žádný konkrétní případ tak, abych ho dokázal propojit s Vaším projektem.
Děkuji 🙂
Lukáš Beran
Senzory na energy dashboard přidáte přímo z nastavení toho energy dashboard. Viz https://www.selfiehome.cz/2022/03/mereni-spotreby-elektricke-energie-rodinneho-domu/
Tomáš
Ahoj,
moc díky za návod. Vše se mi podařilo přidat jen jsem si všiml, že noční spotřeba z baterie se reportuje také jako solární výroba. Takže třeba v energy dashboardu mám tu spotřebu 2x. Jednou jako spotřebu z baterie a jednou jako solární výrobu. Oficiální Solax aplikace to bohužel reportuje stejně. Noční spotřeba z baterie se bere jako solární výroba. V noci se mi nahřívá bojler a proto to je jednoduché poznat. Ráno totiž vstanu a mám hned „vyrobeno“ 5 kwh.
Na přiložených screenech vidím, že tobě se to neděje. Respektive nevidím, že by si v noci měl solární výrobu. Řešil si podobný problém?
Lukáš Beran
Ahoj Tomáši,
spotřebu v noci mám zobrazenou jako consumed solar a consumed battery.
David
Prosím o radu, první část mi funguje a střídač a parametry v HA vidím, jen se mi asi správně nedaří udělat ten zbytek (templates a customize.yaml), v panelu energií mám baterie a nelze mi tam dát entita celkové spotřeby. Templates a customize.yaml jsem vytvořil jako nové soubory a dal jsem je do složky ke configuration.yaml, můžete mi prosím poradit? Díky
Lukáš Beran
Dobrý den, Davide.
Máte ty další soubory přidané do configuration.yaml? Viz oficiální dokumentace https://www.home-assistant.io/docs/configuration/splitting_configuration/
David
Dle mého to mám správně, ale HA mi stejně hlásí „integration error templates – integration ‚templates‘ not found“. YAML mám ve stejné složce jako configuration.yaml, a v něm mám toto:
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
templates: !include templates.yaml
Lukáš Beran
A jmenují se ty soubory skutečně jako script.yaml, scenes.yaml apod.? Na co vůbec používáte script.yaml a scenes.yaml? Pro tuto integraci nejsou k ničemu potřeba.
Zkuste se případně obrátit přímo do diskuze v rámci odkazovaného diskuzního fóra.
Jan Pavelka
Dobrý den,
je možné střídač i řídit jinak, než přes aplikaci Solaxu či cloud ( měnit min. SOC, …)?
Lukáš Beran
Dobrý den, Honzo.
Pokud vím, tak API umožňuje pouze číst hodnoty, nikoliv měnit nastavení. Detailněji jsem to ale nezjišťoval, protože jsem to zatím k ničemu nepotřeboval. Můžete se zkusit obrátit s dotazem přímo na podporu Solax.
Michal
Zdravím, chodí někomu ovládání vybíjení baterie přes REST API? Mělo by to jít přes parametr optType=ReadSetData – viz https://docs.google.com/spreadsheets/d/1oGyKNfWlnITlZqLPHhwn08_T6jStLcCWGZFltYz7Tyw/edit#gid=600872566. Mě tento parametr jen vypíše data stejně jako optType=ReadRealTimeData. Díky.
Lukáš Beran
Hezký den, Michale.
Voláte to přes lokální API nebo cloud API? Osobně jsem to nezkoušel, protože to nepotřebuji, ale podle toho, co jsem našel na internetu, to vypadá, že
optType=ReadSetData
funguje jen pro lokální API, nikoliv přes Solax cloud.LukasH
Ahoj,
za sebe mohu doporučit do HA integraci
https://github.com/wills106/homeassistant-solax-modbus/wiki
Mám rozchozeno, je sice třeba pořízení Hardware, ale je to pár korun proti celé FV. Data vidím LIVE, respektive frekvenci čtení z MODBUS lze nastavit. Data to bere z konektoru COM, který je ovšem společný i pro EVC. Které zatím nemám rozchozeno, od určité verze FW ovšem má umět inverter a EVC komunikovat přes modbus a tak doufám, že až zjistím jak aktualizovat FW EVC tak data bude možné přes tuto integraci také číst.
Lukáš Beran
Díky moc Lukáši za zkušenosti. Budeme rádi, když se případně podělíte o zkušenosti.
Karel
Ahoj. Dnes jsem s tímto válčil. Jsem čerstvý uživatel Rapsberry bez zkušeností a dosti s tím bojuji. Celé odpoledne mi zabralo než jsem zprovoznil v HA HACS a z toho pak přidal solax modbus. Mám rozjeto sledování mimo HA a to prostřednictvím SunnyHome, ale chtěl bych to právě přes HA. Jenže když jsem to zprovoznil tak mi energy dashboard vcelku kecá oproti realitě ze SunnyHome. Některé položky jsou shodné a některé naprosto mimo realitu a nevím čím to. Chtěl bych požádat o pomoc, když se vám to povedlo. Jestli můžete poskytnou třeba konfigurační soubory pro celkový správný chod integrace a nastavení dashboard panelu. A vůbec jak si s tím poradit.
Lukáš Beran
Hezké dopoledne Karle.
Solax modbus nepoužívám, takže s tím nemám zkušenosti, a tudíž nejsem schopný poradit. My máme Home Assistant se Solaxem propojený prostřednictvím Solax Cloud. Celý zdrojový kód je přímo v tomto článku v sekci Přidání senzoru Solax do Home Assistant, stačí jen v adrese API nahradit Token ID a vaše registrační číslo Solax střídače. Kousek pod tím je v článku uveden i postup včetně zdrojového kódu pro vytvoření senzoru vyrobené energie ze slunce a také postup včetně zdrojového kódu pro měření množství energie zaslané do baterie a odebrané z baterie. Informace o energii odebrané ze sítě a poslané do sítě nepoužívám data ze Solax, ale z Shelly, viz článek Měření spotřeby elektrické energie rodinného domu.
Luboš
Dobré odpoledne Lukáši, podařilo se Vám prosím intergrovat do HA i Solax wall box ? Pokud ano, můžete prosím nasdílet script ? Rovněž případný tip na automatizaci z pohledu předpovědi slunečního svitu – upravení hodnoty SOC baterie střídače vs. dobití ze sítě ? Mockrát děkuji. LB
Lukáš Beran
Dobrý den Luboši.
Wallbox jsem zatím neřešil, protože ještě není připojený. Budeme ho připojovat někdy v létě nebo na podzim v rámci úprav zahrady.
Pokud vím, Solax nelze ovládat přes API SolaxCloud. API slouží pouze ke čtení hodnot, takže změna konfigurace střídače z Home Assistant není dle mého možná. Ale pokud se mýlím, tak mne prosím opravte 🙂
Jinak ze sítě jsem zatím dobíjel pouze jednou, a i to se nakonec ukázalo zbytečné, protože další den už svítilo slunce dost na to, aby dobilo baterii. Takže úprava SOC asi nebude potřeba. To spíš pak spouštění některých spotřebičů jako bojler nebo tepelné čerpadlo (klimatizace) v době přebytků energie, ale na to máme wattrouter, takže ani tam by asi zásah Home Assistant nebyl potřeba.
Lukáš
Dobrý den, hezký návod jen není úplně pro lamu 🙂 Myšleno detailní.
Mohu prosím pár otázek ?
1. Kde vytváříte nový yaml ? Je to jedno ?
2. Po vložení, je třeba něco udělat ? Protože to nikde nevidím – možná chyba v první otázce 🙂
Díky moc Lukáš
Lukáš Beran
Dobrý den Lukáši.
YAML je textový soubor, takže prakticky v jakékoliv textovém editoru. Já například používám Notepad++ a Visual Studio Code. Pozor, Word není textový editor. Poznámkový blok by šel klidně také použít, jen je docela „hloupý“, takže se s ním moc dobře nepracuje.
Při jakékoliv editaci konfiguračních YAML souborů je potřeba Home Assistant restartovat, aby si načetl novou konfiguraci.
Doporučuji podívat se na další mé články o Home Assistant, protože v některých ty postupy popisuji víc do detailu.
Lukáš
Děkuji za odpověď,
to čemu nerozumím a omlouvám se možná za hloupé otázky:
1. Kde je uloženo za mě uloženo: confif/solax_homeassistant.yaml
2. Pokud to tam mám a restartuji – tak bych ěl automaticky vidět kde ?
nastavení / Zařízení a služby ?
Velké díky Lukáš
Lukáš Beran
Uloženo to může být kdekoliv. Musí to být ale nalinkované jako senzor do hlavního souboru configuration.yaml, pokud to není přímo v něm uložené. Jednotlivé senzory se pak objeví jako entity ve webovém rozhraní (config/entities).
Renek
Ahoj. Když chci integrovat, tak v entitách mám červené vykřičníky. Čím to může být?
Lukáš Beran
To netuším, tento problém jsem neměl. Možná nějaká chyba v připojení k API SolaxCloud.
Lukáš
Dobrý den,
velké díky povedlo se – prostě jsem to nahrál do configuration.yaml
Nicméně, stejný problém jako zde Renek. Vy Lukáši uvádíte seriové číslo, ale v návodu community se píše:
https://community.home-assistant.io/t/pv-solax-inverter-cloud-sensors-via-api/277874
Note down the Inverter registration No. : SWXXXXXXX
Což je ale jiné, nicméně to dělají obě jak toH34XXXXXXXXXXXX tak SRXXXXXXX.
Přesná hláška chyby je: Tato entita („sensro.solax_garage_now“) nemá jedinečné ID, proto její nastavení nelze spravovat z uživatelského rozhraní.
Netušíte ? Díky Lukáš
Lukáš
Tak je to opravdu: Registrační číslo (v ČJ)
Dá se jednoduše ověřit, zadáním linku do prohlížeče. A funguje to registrační číslo. Nicméně i s ním to ty vykřičníky hází 🙁
Lukáš Beran
Mít vše v configuratation.yaml není úplně nejšťastnější řešení, ale pokud vám to vyhovuje, tak technicky je to v pořádku.
Ano, máte pravdu, má tam být registrační číslo střídače. V článku jsem chybu opravil.
Nastavení entit vytvořených z konfiguračního souboru bez unikátního ID musíte spravovat jen v konfiguračním souboru. Což by ale neměl být problém, protože ve webovém rozhraní už žádné úpravy té entity dělat nemusíte.
Lukáš
Renek řešení je následující:
Ke každému senzoru musíte přidat, například:
solax_house_cons:
friendly_name: „House Power“
unique_id: housepower1 #Přesně toto, malá písmenka a bez mezer a samozřejmě unikátní – toto je příklad co zafungoval u mě#
unit_of_mea . . . . . .
Lukáš
Pavel
V json_attributes vidím soc. tak snad je přístupné i nabití baterie?
Lukáš Beran
Hezký večer Pavle. Ano, soc tam jako atribut je, ale tento údaj značí pouze procentuální nabití baterie. Šlo by teoreticky využít atribut batPower, jedná se ale o výkon [W], nikoliv energii [Wh]. Šlo by to sice přepočítat přímo v Home Assistant, ale to zase nebude přesné, protože data z API Solax Cloud se stahují jednou za 5 minut pouze, takže takový výpočet by byl pouze orientační. Ale hlavně bych musel nějak zohlednit kladné a záporné hodnoty výkonu baterie = nabíjení versus vybíjení baterie, což ani nevím, jestli by šlo nějak udělat. Pokud ale máte nápad, jak na to, budu moc rád, když se podělíte 🙂