Ako prepojiť Raspberry Pi a Apple HomeKit

Ak používate nejaké Apple zariadenie, určite ste o Apple HomeKit aspoň počuli. Jedná sa o aplikáciu, ktorá predstavuje akýsi domáci hub pre vaše “smart” zariadenia. Ak teda máte doma rôzne smart termostaty, teplomery alebo svetlá, všetky ich pripojíte do HomeKitu a môžete ich ovládať z jedného centrálneho miesta bez nutnosti používať na každé zariadenie aplikáciu od jeho výrobcu.

Výhodou je, že všetky zariadenia pripojené do HomeKitu fungujú aj so Siri, a to nielen z telefónu alebo tabletu ale aj z hodiniek. Nevýhodou je, že dané “smart” zariadenie musí mať podporu HomeKitu od výrobcu.

Ak rovnako ako ja nemáte žiadne “smart” zariadenie ale máte Raspberry Pi, môžete si ho prepojiť s HomeKitom a ovládať tak akékoľvek zariadenie, s ktorým viete z Raspberry Pi komunikovať. Rozhodol som sa teda prepojiť môj teplotný senzor pripojený k Raspberry Pi s HomeKitom.

Homebridge

Základom celého riešenia je Homebridge. Je to Apple HomeKit accessory server bežiaci na NodeJS, ktorý po inštalácii beží nepretržite na Raspberry Pi a HomeKitu sprístupňuje rôzne zariadenia, ktoré natívne HomeKit nepodporujú.

Po spustení vám ukáže QR kód, pomocou ktorého ho spárujete s HomeKitom v iPhone alebo iPade.

Všetky zariadenia, ktoré následne pridáte do Homebridge sa automaticky objavia v HomeKite.

Homebridge pluginy

Zariadenia sa do Homebridge pridávajú ako pluginy, môžete si vybrať z existujúcich alebo napísať nejaký vlastný. Tvorba vlastného pluginu nie je až taký problém, ak zvládate JavaScript a Node.js.

Teplotný senzor DS18b20

Ja som mal štastie a pre môj teplotný senzor priamo existoval plugin homebridge-ds18b20. Stačilo len nainštalovať a nastaviť správne id zariadenia v HomeBridge configu v ~/.homebridge/config.json. Potreboval som však spraviť malý zásah do zdrojákov, pretože môj senzor ukazuje asi o 2 stupne vyššiu teplotu, ako reálna teplota v miestnosti, takže som to skorigoval.

Po pridaní a nastavení pluginu sa mi v HomeKite objavila možnosť sledovať teplotu v obývačke

a fungovala aj cez Siri

dokonca aj na hodinkách Apple Watch.

TV s WebOS

Hľadal som ďalšie zaujímavé pluginy a našiel som plugin na TV s WebOS 3, ktorý funguje s mojou LG TV. V aktuálnej verzii síce podporuje len zapnutie a vypnutie, ale aj to poteší. Nastavenie je trochu zložitejšie ako v prípade pluginu pre teplotný senzor, je potrebné vyplniť IP adresu a MAC adresu, tie som ale získal zo zoznamu zariadení v routeri z DHCP tabuľky. V samotnej TV je ešte nutné povoliť ovládanie z externých aplikácií, ako je popísané v repe pluginu.

Po pridaní pluginu do Homebridge a nastavení sa TV objavila v HomeKite a korektne zobrazovala aktuálny stav

a pokyn na vypnutie a zapnutie fungoval bez problémov cez Siri z iPhone aj z hodiniek.

Autor

Igor Kulman

Autor je absolventom softvérového inžinierstva na Univerzite Karlovej v Prahe, dlhoročný .NET a C# vývojár aktuálne objavujúci iOS a Swift, občas publikuje a prednáša.

Blog o programovaní

Hľadáte môj anglický blog o programovaní? Nájdete ho na adrese blog.kulman.sk.