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.
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.

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.
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 🙂