Mnoho moderních elektronických zařízení bohužel postrádá nativní podporu platformy Apple HomeKit, a proto se integrují pouze s konkurenčními systémy, jako jsou Alexa nebo Google. Naštěstí existuje elegantní řešení. Pomocí tohoto triku s Raspberry Pi a open-source softwaru Homebridge můžete do HomeKitu zapojit prakticky libovolné chytré zařízení.
Integrace jakéhokoli chytrého zařízení s HomeKit
Pokud jste oddanými uživateli ekosystému HomeKit, pravděpodobně vás trápí omezený výběr podporovaných zařízení. Vezměme si například levné chytré žárovky – jediným důvodem, proč je nelze používat s HomeKitem, je nedostatečná podpora této platformy. Jako příklad lze uvést sadu čtyř žárovek od společnosti TECKIN, která v době psaní tohoto článku stála okolo 40 dolarů – což je méně než cena jedné žárovky značky LIFX.
Je pravda, že kvalitou se nemohou s LIFX rovnat. Jejich barvy nejsou tak živé a v koupelně mohou vydávat mírné bzučení. Nicméně za cenu kolem 10 dolarů za kus se jedná o bezkonkurenční nabídku.
Hlavní problém je, že tyto žárovky nejsou kompatibilní s HomeKitem. Nejsou úplně „hloupé“ – spolupracují s Google Home, Alexou, IFTTT a firemní aplikací výrobce. Pokud máte jen žárovky od TECKIN, tak by to stačilo.
Protože však nejsou dostupné v HomeKitu, nemůžete je ovládat prostřednictvím aplikace Domácnost, widgetu v Ovládacím centru nebo Siri. Nelze je ani zapojit do scén s žárovkami jiných značek či je používat v automatizacích. Pokud jste již investovali do ekosystému HomeKit, je to pro vás zásadní problém.
Představujeme Homebridge
Naštěstí existuje řešení, které výrazně zvyšuje použitelnost těchto žárovek. API HomeKit umožňuje vytvářet tzv. „mosty“, jako je například most Philips Hue, které propojují zařízení pracující s jinými protokoly. Jednoduše přidáte most do HomeKitu jako další zařízení a ten následně zaregistruje všechna připojená světla do systému. Když zadáte příkaz k aktualizaci světla, váš telefon komunikuje s mostem, který pak kontaktuje samotné světlo.
Most tedy pouze překládá informace mezi různými API. Protože žárovky TECKIN lze ovládat přes internet, je zcela reálné je propojit s HomeKitem čistě softwarově – bez potřeby speciálního hardwaru.
Pokud máte po ruce Raspberry Pi (i levné Pi Zero za 5 dolarů je dostačující), můžete jej pomocí frameworku Homebridge nastavit jako takový most. Tato nenáročná aplikace NodeJS simuluje HomeKit API a přeposílá vaše požadavky do vašich „ne-HomeKit“ chytrých zařízení.
Zjednodušeně řečeno, spustíte ji na Pi a každé „hloupé“ zařízení se objeví v aplikaci Domácnost. Když se pokusíte ovládat žárovku prostřednictvím aplikace Domácnost nebo Siri, Homebridge komunikuje se zařízeními za vás. Po nastavení budete mít pocit, jako by dané zařízení nativně podporovalo HomeKit.
Je ovšem nutné, aby Homebridge neustále běžel, takže není vhodné jej instalovat na notebook. Raspberry Pi je v tomto případě ideální volbou, ale můžete použít i starší zařízení, které můžete použít jako trvalý server.
Homebridge funguje na principu frameworku, který je dále rozšiřitelný pomocí pluginů. Díky velké komunitní podpoře je velmi pravděpodobné, že pro vaše chytré zařízení už existuje plugin, který do Homebridge přidává podporu. Pokud plugin pro vaše zařízení nenajdete, ale vaše zařízení má API a jste technicky zdatní, můžete si jej napsat sami.
Pro většinu uživatelů je však instalace Homebridge a značkového pluginu pro dané zařízení spolu s drobnou konfigurací dostatečná. Pokud se umíte orientovat v příkazovém řádku a máte trochu času, je to poměrně snadné.
Instalace a konfigurace Homebridge
Homebridge je aplikace NodeJS, takže pro její provoz budete potřebovat nainstalovat Node a npm. Pokud používáte Linux, pravděpodobně je získáte prostřednictvím správce balíčků.
V systému Ubuntu musíte zadat následující příkazy, abyste manuálně nastavili repozitář Node a následně nainstalovali nodejs:
curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash - sudo apt-get install -y nodejs
Alternativně můžete na stránce pro stahování Node najít návod, jak nainstalovat Node pro váš konkrétní operační systém.
Pokud používáte Linux, je také nutné doinstalovat některé závislosti:
sudo apt-get install libavahi-compat-libdnssd-dev
Následně můžete Homebridge nainstalovat globálně přes npm:
sudo npm install -g --unsafe-perm homebridge
Dále je nutné nainstalovat pluginy pro vaše zařízení, protože Homebridge je pouze rámec. Například pro žárovky TECKIN je plugin homebridge-tuya-web, který se také instaluje globálně.
Zadáte tedy příkaz:
npm i homebridge-tuya-web -g
Jakmile je vše nainstalováno, můžete začít! Pro jednorázové spuštění a inicializaci Homebridge zadejte:
homebridge
Systém vás bude informovat o chybějící konfiguraci, kterou musíte vytvořit. Výchozí adresář je ~/.homebridge/, ale můžete jej změnit pomocí parametru -U.
Pro vytvoření nového konfiguračního souboru JSON v tomto adresáři zadejte příkaz:
nano ~/.homebridge/config.json
Bez ohledu na používané pluginy potřebujete následující základní konfiguraci:
{ "bridge": { "name": "Homebridge", "username": "CC:22:3D:E3:CE:30", "port": 51826, "pin": "031-45-154" }, "description": "Vlastní HomeBridge server", "ports": { "start": 52100, "end": 52150 }, "platforms": [ ] }
Tímto nastavíte Homebridge s výchozím portem, názvem, PIN kódem a rozsahem portů, které mohou být přiděleny dalším zařízením.
Do prázdného pole „platforms“ pak přidáte konfiguraci pro každý plugin. Návody a příklady najdete na stránce GitHubu každého pluginu.
Například plugin homebridge-tuya pro žárovky TECKIN potřebuje znát vaše uživatelské jméno a heslo pro připojení k API aplikace žárovek, a další nastavení:
"platforms": [ { "platform": "TuyaWebPlatform", "name": "TuyaWebPlatform", "options": { "username": "username", "password": "password", "countryCode": "1", "platform": "smart_life", "pollingInterval": 10 } } ]
Jakmile je vše nakonfigurováno, Homebridge by měl být připraven. Spusťte jej znovu a na terminálu by se měl zobrazit velký QR kód. Naskenujte ho pomocí aplikace Domácnost a přidejte Homebridge i všechna připojená zařízení do HomeKitu.
Homebridge načte vaše pluginy a měl by zobrazit hlášení o každém nalezeném zařízení. Po přidání byste je měli vidět v HomeKitu a měly by být plně funkční.
Všiml jsem si drobného zpoždění v porovnání s mými žárovkami LIFX. Pravděpodobně je to tím, že žárovky jsou ovládány přes API, a ne přímo. Zpočátku také žárovky nezobrazovaly některé odstíny bílé správně, ale po menších úpravách se mi podařilo nastavit správné scény.
Vždy můžete nejprve nakonfigurovat zařízení v jejich vlastních aplikacích, počkat na aktualizaci v aplikaci Domácnost a pak vytvořit scénu v HomeKitu s již přednastavenou konfigurací.
Pokud budete muset Homebridge znovu přidat, odstraňte složku „persist/“ v konfiguračním adresáři a poté odstraňte bridge z HomeKitu v nastavení libovolné připojené žárovky na kartě „Bridge“.
Přidání Homebridge jako služby
Pokud chcete, aby Homebridge běželo nepřetržitě, je vhodné jej nastavit tak, aby se automaticky restartovalo v případě selhání nebo restartu vašeho Raspberry Pi. Toho dosáhnete pomocí unixové služby. Tuto službu nastavujte až poté, co ověříte, že Homebridge funguje správně.
Nejprve vytvořte nového uživatele pro službu Homebridge:
sudo useradd -M --system homebridge
Nastavte heslo:
sudo passwd homebridge
Dále musíte přesunout konfiguraci Homebridge mimo váš osobní domovský adresář. Adresář /var/lib/homebridge/ je vhodný:
sudo mv ~/.homebridge /var/lib/homebridge/
Ujistěte se, že uživatel „homebridge“ má práva k tomuto adresáři a všem jeho podsložkám:
sudo chown -R homebridge /var/lib/homebridge/
Jakmile to uděláte, můžete vytvořit službu. Vytvořte nový soubor „homebridge.service“ v adresáři /etc/systemd/system/:
sudo nano /etc/systemd/system/homebridge.service
A do něj vložte následující konfiguraci:
[Unit] Description=Služba Homebridge After=syslog.target network-online.target [Service] Type=simple User=homebridge ExecStart=/usr/bin/homebridge -U /var/lib/homebridge Restart=on-failure RestartSec=10 KillMode=process [Install] WantedBy=multi-user.target
Znovu načtěte démona služeb, aby se provedly změny:
sudo systemctl daemon-reload
Nyní můžete povolit vaši službu (tím se nastaví, aby se spouštěla při spuštění):
sudo systemctl enable homebridge
A spusťte ji:
sudo systemctl start homebridge
Pokud potřebujete ladit chyby, které vyplývají z konfigurace služby, můžete zobrazit protokoly služby zadáním:
journalctl -fn 50 -u homebridge