pondělí 22. března 2021

TinyHA: základní koncepce

Před několika lety jsme dokončovali stavbu rodinného domu, kde máme mimo jiné nainstalovány venkovní žaluzie Climax s pohonem Somfy J4 WT. A to byl první impuls ke zvažování vlastního bastl řešení. Originální ovládání mi přišlo předražené, mechanické řešení spínače s aretací pak příliš primitivní. Rozhodl jsem se, že ovládání žaluzií vyřeším vlastním systémem, který bude zapojený paralelně k ABB žaluziovým tlačítkům a stane se základem budoucí domácí automatizace. Každá žaluzie má tedy vlastní ovládací tlačítko v hluboké podomítkové krabici. A při tahání elektroinstalace jsme všechny krabice kromě 230V rozvodu prosmyčkovali Cat5e kabelem.

Tím byl dán základní stavební prvek TinyHA - drátová sběrnice, fyzicky realizovaná "venkovním" Cat5e kabelem - jeden pár pro rozvod napájení 24V, druhý pro RS485 sběrnici, zbývající dva volné. Napětí 24V bylo zvoleno jako kompromis mezi co nejnižšími úbytky na nezanedbatelně dlouhém vedení a snadnou dostupností DC/DC spínaných zdrojů. Sběrnice RS485 byla jasná volba, je to jediné široce rozšířené rozhraní, které zvládne divokou kombinaci hvězdicové a stromové topologie bez impedančních zakončení, s rozumnou spolehlivostí a přijatelnou cenou.

Pro komunikaci jsem si navrhl jednoduchý vlastní protokol s adresací, který popíšu později. Celková koncepce je nepříliš striktní master-slave, který prakticky umožňuje multi-master s využitím náhodného přístupu na sběrnici (Aloha). Prakticky to funguje tak, že celé TinyHA má jeden centrální bod, postavený na Raspberry Pi Zero W na desce s rozhraními, který je umístěný v místě vyústění všech kabelů (moje miniserverovna kombinovaná se špajzkou). Jednotlivé nódy jsou pak slave zařízení, které pouze odpovídají na dotazy. Výjimkou je ovládací tlačítko pro sdružené řízení žaluzií v obýváku, které při stisku povel vysílá samo, stává se z něj tedy na okamžik další master.

Elektronika zařízení je postavená na AVR a obvykle zabudovaná v podomítkové krabici, není tedy přístupná pro přeprogramování. Pro tento účel jsem si upravil jednoduchý bootloader, který umožňuje aktualizovat firmware a přitom využívat adresu nódu uloženou v EEPROM paměti. Mohu tedy bez rozpojení sběrnice selektivně aktualizovat pouze vybraná zařízení.

Ovládání žaluzií, o kterém budu podrobněji psát příště, bylo první realizovanou částí. To proto, že stát u tlačítka a držet ho dvě minuty než žaluzie sjede až dolů, je fakt otrava, takže mě to donutilo dokončit ovládání poměrně rychle :-) Postupně ale přibývaly další části systému TinyHA: výstupní relé (pro otevírání garáže, spínání topných žebříků, venkovní osvětlení, pokles TUV apod.), vstupy (teplotní čidla na 1-wire sběrnici, senzor otevření vrat garáže, indikace domovního zvonku atd.), centrální jednotka s Raspberry Pi (sběr dat, webové rozhraní pro ovládání, grafy), ePaper panel (grafické zobrazení aktuálních teplot, grafy historie, měření kvality ovzduší CO2, předpověď počasí), měření objemu vody v retenční nádrži pomocí ultrazvukového dálkoměru, průtokoměr vody na zalévání, reimplementace Lidl zvonku, jednotka zálohovaného napájení miniserverovny a pár dalších kousků, které se teprve tvoří.

Žádné komentáře: