Konsolidácia monitoringu 1. etapa
Aktuálny stav
Aktuálna štruktúra monitoringu je na nasledovnom obrázku,
jej vznik je daný historicky, keď každý nový nárok na monitorovanie som realizoval ako prototyp na windows platforme v C#. C# bola pre mna logická voľba, nakoľko danú platformu používam pracovne a je pre mňa najefektívnejšia čo sa týka námahy na vývoj. V C-C++ som len realizoval program do balancerov s Attiny 85 a nejake testy/prototypy s SAMD21.
Prvá non windows aplikácia bol PIPForwarder – v Mono napísaná aplikácia pre preposielanie údajov z PIP4048 (axpert) na vzdialený web server, ktorú som mal nasadenú na Orane Pi PC+ (ARM pocitac s 1GB RAM a 8GB EMMC flash, nepotrebuje SD kartu, cena cca 24€, s debianom – armbian).
Neskôr ked prišlo .NET core 3.5, som aplikáciu upravil, s tým, že ten istý kód mi beží aj na windows aj na ARM – konečne!!!
S nákupom studer meničov XTM4048, vyvstala potreba napísania podobného programu na vyčítanie údajov zo studer platformy (vyčítam údaje z meniča XTM a z BSP500). Údaje si opäť posielam na externý web server.
Začal som používať PIP už len ako MPPT regulátor, ale kedže sa blížila zima a vtedy PIP po zobudení často žerie viac ako vyrobí z panelov, dokúpil som na skúšku MPPT regulátor od Fangpusungu (victron klon). Kedže som dostal varovanie o updatovní a znefunkčnení regulátoru origo Victron SW (ani sa nečudujem), napísal som si vlastný program pre windows na konfiguraciu
https://forum.mypower.cz/viewtopic.php? ... pt#p136769.
Odtiaľ bol len krok napisať program na vyčítanie údajov a ich preposielanie na web server, s výhľadom nastavovania nabíjacieho napätia v ESS móde – ochrana článkov batérií ak už nestíhajú balancéry.
Monitoring balancérov s logovaním mi zatiaľ stále beží na win 10, ale chystám sa ho upraviť a presunúť na Orange PI.
Cieľový stav
1. presunuť všetko na 1 Orange PI, s tým že mi to umožní mať „cold“ zálohu na rovnakom Orange PI, ak by sa niečo pokazilo len sa prepoja káble a ide sa dalej.
2. ukladať dáta aj lokálne, s tým že by lokálne pribudol aj jednoduchý web server a nejaké úložisko, predsa len už sa stalo že niekoľko krát vypadol internet (Slovak telekom) a potom nebol jednoduchý prístup k aktuálnym údajom (niežeby to bolo nutné, ale zvedavosť...). Samozrejme to predpokladá aj nejaké lokálne úložisko, binárny súbory alebo SQLLite?
Pohrával som sa aj s myšlienkou rozbehat MQTT, Grafanu, a pod, len sa mi to zdá priliš zložité a náročné na resourcy na to čo potrebujem. Napríklad web rozhranie sú vo svojej podstate statické stránky s dynamickými údajmi, na vykreslovanie grafov používam napríklad Charts.js.
Jednotlivé monitoringy viem hodit do jednej spoločnej aplikácie a komunikáciu medzi nimi riešit na úrovni komunikácie medzi threadmi, bez zbytočnej réžie. Áno je to menej fexibilné, ale hodne flexibility sa dá vyriešiť cez konfiguračné súbory.
Zostáva mi ešte vyriešiť replikáciu údajov na web server (ten ukladá prijaté údaje do SQL databázy) v prípade výpadku internetu. Niečo podobné som už riešil, takže idea existuje.
Ďalším krokom by bolo nasadenie vlastného shieldu s galvanicky oddelenými seriovými portami, je škoda nevyužit 3 sériové porty na Orange Pi headeri (mám otestované) a zbytočne nahánať USB-TTL serial prevodníky (každý berie minimálne 20mA, kdežto galvanicky odelený port s SN6501,MAX12931 cca 1mA na kanál), najmä keď viem že daľší port budem potrebovat pre komunikáciu s druhou bankou batérií (balancéry).
Takže plán je, prototypy otestované, už "len" chuť a čas.