Cesta k chytré domácnosti
Přiznám se, že do světa chytré domácnosti jsem vstupoval s velmi naivní představou, a to že vše bude tak nějak samo od sebe a hlavně dohromady fungovat.
Ono to tak teda víceméně je, jen s jistými podmínkami...
Co pro mě znamená chytrá domácnost?
Především automatizace opakujících se činností, například:
- Kryštof jde spát: zapni stolní lampu na 10% svítivosti, zapni chůvičku (zásuvku) a pusť uklidňující playlist na sonosu s 6% hlasitostí
- Se západem slunce zapni lampu v obýváku
- V 10:30 zapni v chodbě orientační světlo a s východem slunce ho vypni
Adaptivní osvětlení
Tahle myšlenka mě napadla hned, jak jsem si domů přinesl první chytrou žárovku, na které jde nastavovat teplota jejího světla. Jde o to, že se žárovka postupně mění ze studené - bílé, do teplé (žluté až oranžové).
Pro následujících 24 hodin vygeneruju nelineární plán - pár čas/teplota - s tím, že do 6 nebo do západu slunce žárovka svítí studeně - bíle, a s postupujícím časem se otepluje. Délka této změny závisí na dni v roce, teď je to třeba cca 3,5 hodiny.
Dneska tuhle funkci (jejíž název jsem si vypůjčil pro tu svoji), najdete přímo v homekitu a z koncových zařízení ji aktuálně podporuje jen Philips HUE. Samozřejmě k tomu potřebujete hub (ipod, homepod, homepod mini, apple tv).
Fáze 1: Seznamování
Začal jsem tedy studovat, co a jak funguje, co a kdo a za kolik nabízí. Postupně jsem se v pojmech jako zigbee, alexa, homekit, node-red, home assistant, z-wave, sonoff nebo aqara zorientoval a rozhodl se pro chytré žárovky a zásuvky od IKEA.
Z lenosti jsem vstoupil jako běžný civilista, takže jsem do košíku hodil pár žárovek na zkoušku a samozřejmě bránu, přes kterou ta koncová zařízení můžete z telefonu (iphone) ovládat. Párování bylo jednoduché a aplikace pár dní fungovala na výbornou. Nicméně postupem času se aplikace od brány neustále odhlašovala, odpojovala - to znamená, že musíte bránu vzít do ruky a naskenovat bezpečnostní qr kód... jen abyste zapnuli světlo!
Druhá iterace čítala objevení aplikace přímo od Applu - home. Ta funguje tak, že do ní přidáváte tzv. accessories. Integrace s IKEA bránou byla práce na pár vteřin a fungovala velmi dobře. Občas nicméně jakoby se ztratilo spojení s bránou a docela dlouho trvalo, než šlo vůbec vydat povel k zapnutí světla... A třeba repráky od sonosu do home aplikace nejdou přidat vůbec - sice je vidíte, ale při pokusu o přidání skončíte chybou o nepodporovaném zařízení...
Fáze 2: RPi
Dorazilo Raspberry Pi 4 a já tak mohl začít experimentovat s vlastním řešením.
HAP-nodejs
Základem je HAP-NodeJS, což je nodejs implementace HomeKit Accessory Protocol (HAP). Přes to vytvářím a servíruju "accessories" pro home aplikaci.
Výhody HAP-nodejs
- Při výměně zařízení (třeba když žárovka doslouží) se "neztratí" z existujících scén a akcí.
- Není potřeba se omezovat jen na zařízení s podporou pro homekit, která jsou drahá jen proto, že jsou pro Apple.
- Možnost vytvořit zcela virtuální zařízení, třeba switch (nebo reprák).
Integrace koncových zařízení
V této fázi jsem potřeboval integrovat věci od IKEA a dva repráky od sonosu. Použil jsem node-tradfri-client a node-sonos.
Na pár malých detailů tahle kombinace fungovala výborně. Co pomohlo s častým odpojováním brány popisovaným v úvodu, tak byl pravidelný (co 30 vteřin) ping. Samozřejmě jak RPi, tak brána byly připojeny k routeru kabelem a měly nastavenou statickou IP adresu.
Nakonec jsem přidal i zapínání/vypínání televize - právě přes virtuální vypínač.
Lepidlo
Jako lepidlo mezi těmito dvěma světy jsem použil reaktivní rxjs. Díky bohu za tuhle knihovnu, protože si dokážu představit programovat to bez ní...
Fáze 3: CC2531
IKEA žárovky jsem nevybral náhodou. Zajímala mě taky technologie, kterou se žárovky domlouvají. Tou je zigbee, což je ve zkratce něco jako wifi. Šíří se vzduchem na frekvenci 2.4 GHz, ale narozdíl od wifi je designovaná pro IoT (low-energy) zařízení. Síť musí mít vždy jeden a pouze jeden koordinátor (bránu) a mezi jednotlivými prvky se automaticky vytváří mesh, takže omezený dosah jednoho zařízení lze rozšířit pomocí tzv. routerů. Routerem bývá typicky zařízení, které je trvale připojené k elektrické síti - může jím být právě IKEA žárovka nebo zásuvka:
Zigbee2MQTT:info 2020-12-08 20:01:34: 0x588e81fffe8f2c87 (0x588e81fffe8f2c87): E1603/E1702 - IKEA TRADFRI control outlet (Router)
Zigbee2MQTT:info 2020-12-08 20:01:34: 0x680ae2fffe110abf (0x680ae2fffe110abf): LED1836G9 - IKEA TRADFRI LED bulb E26/E27 806 lumen, dimmable, warm white (Router)
Důležitá je ta vlastnost "síť musí mít vždy jeden a pouze jeden koordinátor (bránu)", což v reálném životě vede k tomu, že se buď omezíte na jednoho výrobce (ten ale nemá nikdy všechno), nebo provozujete několik bran a tedy několik oddělených zigbee sítí. Najdou se i dobrodruzi, kteří provozují Phillips výrobky na IKEA bráně apod...
SONOFF Zigbee CC2531 USB Dongle
Mnohem dobrodružnější cestou je totiž "vytvořit" si bránu vlastní. Výhoda je, že taková věc podporuje možná stovky koncových zařízení napříč mnoha výrobci. Pro představu: IKEA brána stojí 800 korun, ta od Philips dokonce 1600. V případě, že se vydáte vlastní cestou, tak z Číny lze objednat SONOFF Zigbee CC2531 USB Dongle, který vyjde i s dopravou do 200 korun.
Jasně, potřebujete k tomu RPi, ale: 1) už ho doma stejně máte, 2) můžete na něm provozovat mnohem víc věcí, třeba TimeMachine nebo mediální server a celkově je dobré mít doma linux server.
Zprovoznění je otázka minut. Stačí zigbee2mqtt dongle zasunout, rozjet mqtt server a navěsit se na něj ze své ovládací aplikace.
V mé DYI nodejs aplikaci to znamenalo vyhodit node-tradfri-client knihovnu a naprogramovat si náhradu. Věděli jste, že barvu lze reprezentoval jako { x: float, y: float }
?
Fáze 4: CC2652?
Přestože jsem s aktuálním setupem velmi spokojený, přemýšlím o přechodu na zigbee 3.0 a robustnějším koordinátoru. Však to znáte...
Alternativa přímo od Apple?
Samozřejmě řešení automatizace chytré domácnosti nabízí přímo Apple. Potřebujete k tomu buď:
- iPad, který máte stále doma (online a v nabíječce), ideálně na zdi sloužící k dotykovému ovládání
- Apple TV
- HomePod
- HomePod mini
Potom se vám v aplikaci home zpřístupní záložka automatizace, kde můžete flows popsané v úvodu programovat. V čase, kdy já jsem vstupoval do chytré domácnosti byly dostupné pouze tři první možnosti, které byly mimo zájem nebo finanční ochotu. Navíc dva chytré repráky doma už mám.
V mezičase ovšem Apple uvedl na trh zmenšeninu svého chytrého repráku - HomePod mini. Ten se v Německu prodává za cenu 96,50 €, což je najednou možnost hodná zvážení. Respektive by bylo super provozovat jak moje DIY řešení, tak homepod mini dohromady, proč?
Ovládání mimo domov
Máte-li doma hub, pak můžete ovládat svoji domácnost odkudkoliv - aplikace home funguje i mimo vaši domácí wifi síť.
Já reálně zvažuju jestli se mi víc vyplatí investovat 100 euro nebo se programovat s nějakou aplikací duplikující funkcionalitu nativní home aplikace. Navíc je v sázce i bezpečnost.
Odchod/příchod domů
"Když odejdou všichni lidé z domu, tak zhasni všechna světla."
Funguje to tak, že se hub dívá, jestli je iphone (představuje člověka) přítomný na stejné wifi a/nebo blízko okolo určité GPS souřadnice.
Já to mám naprogramované taky, ale jen tu část se stejnou wifi a můžu říct, že funguje bez problémů.
Kamera
K RPi lze připojit kamera a záznam z ní lze přes HAP-nodejs posílat do home aplikace. Problém je, že bez hubu obraz, co se děje doma, vidíte jen doma, na lokální wifi síti.
Navíc Apple vyžaduje iCloud předplatné pro alespoň 200 GB/ měsíc pro první kameru. Máte-li v plánu provozovat 2 a více kamer, pak si musíte platit 2 TB/ měsíc.
Co ale zaslouží pochvalu, tak šifrování probíhá už v kameře, takže Apple nemá k datům v záznamu přístup. Narážím na levné kamery od čínských výrobců posílající přenos z vaší domácnosti komunistický bůh ví kam.
Hlubší integrace s ios a ovládání hlasem
"S budíkem rozsviť a/nebo roztáhni žaluzie..."
Tohle v mém DIY řešení prostě nejde.
"Hey Siri, dim the lights in the living room."
Pověsil jsem starý iPhone na zeď, takže v radiusu do pár desítek centimetrů lze se siri komunikovat. Navíc lze ovládat všechny prvky centrálně a bez nutnosti hledání vlastního telefonu. To je dobré především pro návštěvy.