blog.vyoralek.cz

Centrum chytré domácnosti – HomeAssistant (Hass.io) – 3 část – Integrace Homekit

V dnešní třetí části seriálu o použití HomeAssistenta jako centrálního prvku chytré domácnosti se podíváme na integraci platformy Homekit, což je řešení hlasového ovládání a integrace od firmy Apple.

Podíváme se na Homekit z pohledu ovládání již napojených zařízení různých výrobců do HomeAssistanta před Homekit, tj. z telefonů iPhone, tabletů iPad a nebo počítačů / laptopů od Applu.

Přidání komponenty Homekit do HomeAssistenta

Pokud jsme si nainstalovali Configurator balíček (postup byl v minulém článku), tak si otevřeme hlavní soubor configuration.yaml a přidáme do něj:

homekit:
  # nepovinné - pouze pokud provozuje více HomeAssistentů
  name: Homekit Bridge

Teoretický nám tedy stačí jeden řádek.

Restartujeme HomeAssistent a měli bychom vidět na hlavní obrazovce kód, kterým je možné HomeKit přidat do Apple produktů.

Přidání bridge a příslušenství

Klikneme na Přidat příslušenství a vybereme možnost Nemáte kód ani nemůžete skenovat. 

Nyní vidíme všechny příslušenství v dosahu – na příkladu jsou ve stejné síti dva různé HomeAsisstant bridge a buď tak klikneme na ten náš a nebo rvonou můžeme zadat kód z hlavní obrazovky HomeAssistentu.

Potvrdíme přidání bridge a v dalších krocích máme možnost přidat rovnou všechny příslušenství kompatibilní s Homekit (v našem případě přidané do HomeAssistentu). 

U příslušenství je možnost změnit i typ, tj. např. Stolní lampička byla zatím v HomeAssistentovi definována jako switch (jedná se o klasickou lampičku se Sonoff Basic spínačem).  V případě lampičky můžeme chtít mít příslušenoství jako Světlo, což můžeme nyní změnit.

Kompatibilní příslušenství

Ne všechny typy příslušenství, které můžeme připojit k HomeAssistentovi lze automaticky připojit i k Homekitu. Naštěstí můžeme v HomeAssistentovi převést příslušenství na jednodušší typ – např. přepínač a tak ho předat Homekitu.

Níže můžete vidět tabulku těch nejzajímavějších typů, které jsou v Homektu podporovány:

KomponentaNázev typuPopis
binary_sensor
SensorJednoduché senzory s dvoustavovou logikou
climateThermostatOvládání termostatu – topení
coverGarageDoorOpenerOvládání dvěří garáže
coverWindowCoveringOvládání žaluzií
fanFanVětráky – zapnuto/vypnuto, popř. směr
lightLightSvětla – zapnuto/vypnuto, jas popř. RGB.
lockDoorLockZámek dveří – zamknuto/odemknuto
media_playerMediaPlayerPřehrávač médií
sensorTemperatureSensorSensory teploty
sensorHumiditySensorSensory vlhkosti
sensorAirQualitySensorSensory kvality vzduchu PM2.5
sensorCarbonDioxineSensorSensory kvality vzduchu CO2
sensorLightSensorSensory množství světla v lumenech nebo luxech
switchSwitchVypínač

Kompletní dokumentaci si můžete prostudovat na stránkách Home Assistenta.

Ovládání příslušenství

Komponenta pro Homekit nám nyní rozšířila možnosti HomeAssistentu na schopnost ovládat příslušenství z Apple produktů a to pomocí aplikace Domácnost a nebo také hlasovou asistentkou Siri.

U hlasového ovládání je bohužel stále jedinou možností angličtina, což může být občas problém, pokud si příslušenství pojmenujeme česky.

Pokud tak nyní Siri řeknu:

Turn on Stolni lampicka

Tak se postárá o zapnutí lampičky. Pokud máme více zařízení stejného typu tak můžeme použit i množné číslo a například

Turn off lights

.. vypne všechny světla v domácnosti.

Kromě iPhone/iPadu máme možnost s příchodem poslední verze MacOS Mojave možnost ovládat domácnost s podobné aplikace i s počítače.

Ovládaní domácnosti přes Homekit na počítači
Ovládaní domácnosti přes Homekit na počítači

Vzdálený přístup

Snad jedinou nevýhodou použití HomeAssistenta jako HomeKit bridge je nemožnost ovládat přes Homekit příslušenství mimo domácnost, což je na jednu stranu dost podstatná vada.

Pokud budete vzdálený přístup chtít máte momentálně tři možnosti:

  1. jakýkoliv tablet iPad, který necháte v domácnosti a má minimálně iOS verze 10
  2. Apple TV alespoň 4 generace
  3. Hlasový assistent HomePod

Konfigurační soubor obsahující vše zatím popsané v této sérii článků můžete zkouknout na mém Github repozitáři.

Řešení problémů

Pokud například nevidíte HomeKit hub v aplikaci Domácnost na vašem mobilní telefonu může se hodit zapnout detailnější logování pro HomeKit komponentu.

To provedete úpravou konfiguračního souboru configuration.yaml, kde se pokusíte najít sekci logger. Pokud ji nemáte tak ji přidejte a nastavíme:

logger:
  default: warning
  logs:
    homeassistant.components.homekit: debug
    pyhap: debug
    pyhap.accessory_driver: debug

.. a restartujeme HomeAssistant.

A v logu myste měli vidět následující části:

2019-03-11 12:57:07 DEBUG (MainThread) [homeassistant.components.homekit] Begin setup HomeKit
2019-03-11 12:57:09 DEBUG (SyncWorker_7) [pyhap.characteristic] set_value: Name to Home Assistant Bridge
2019-03-11 12:57:09 DEBUG (SyncWorker_7) [pyhap.characteristic] set_value: SerialNumber to default
2019-03-11 12:57:09 DEBUG (SyncWorker_7) [pyhap.characteristic] set_value: FirmwareRevision to 0.89.1
2019-03-11 12:57:09 DEBUG (SyncWorker_7) [pyhap.characteristic] set_value: Manufacturer to Home Assistant
2019-03-11 12:57:09 DEBUG (SyncWorker_7) [pyhap.characteristic] set_value: Model to Bridge
2019-03-11 12:57:09 DEBUG (SyncWorker_7) [pyhap.characteristic] set_value: SerialNumber to homekit.bridge

...

2019-03-11 12:57:22 DEBUG (SyncWorker_25) [homeassistant.components.homekit] Driver start
2019-03-11 12:57:22 INFO (SyncWorker_9) [pyhap.accessory_driver] Starting the event loop
2019-03-11 12:57:22 DEBUG (SyncWorker_9) [pyhap.accessory_driver] Not setting a child watcher. Set one if subprocesses will be started outside the main thread.
2019-03-11 12:57:22 INFO (SyncWorker_0) [pyhap.accessory_driver] Starting accessory Home Assistant Bridge on address 10.2.x.x, port 51827.
2019-03-11 12:57:22 DEBUG (SyncWorker_0) [pyhap.accessory_driver] Starting event thread.
2019-03-11 12:57:22 DEBUG (SyncWorker_0) [pyhap.accessory_driver] Starting server.
2019-03-11 12:57:22 DEBUG (SyncWorker_0) [pyhap.accessory_driver] Starting mDNS.

...

2019-03-11 12:57:22 INFO (Thread-4) [pyhap.hap_server] Got connection with ('10.2.x.x', 52727).

V první části jde vidět nastavení, v druhé pak samotný start HomeKit bridge a úplně na konci pak vidíme prvního klienta – v mém případě mobilní telefon.

Samotný log pak najdete v souboru home-assistant.log, který je umístěn ve stejném adresáři jako configuration.yaml.

Kompletí série o HomeAsistentovi obsahuje následující články:

  • 1. část – Představení HomeAsisstent – tento článek
  • 2. částIntegrace Sonoff s firmware Sonoff-Tasmota
  • 3. částIntegrace Homekit
  • 4. částIntegrace Sonoff s firmware Sonoff-Tasmota – 2 část
  • 5. částIntegrace s Wemos D1 a senzory teploty
  • 6. částIntegrace Sonoff s firmware ESPHome
  • 7. částIntegrace Sonoff POW s firmware ESPHome
  • 8. částIntegrace LED Magic Home s firmware ESPHome
  • 9. částIntegrace Xiaomi Mijia a Aqara
  • 10. část – Integrace vlastní Zigbee gateway
  • 11. část – Vzdálený přístup do Hass.io z Internetu
  • 12. část – zobrazení senzorových data pomocí InfluxDB a Grafany

13 komentářů

Napsat komentář

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..

  • Dobry den, zajimalo by me, jestli Vam funguje aktualizace stavu lampicky v Homekitu, kdyz se stav zmeni v homeasistentovi. Vytvoril jsem si zapinani/vypinani TV, ale nemuzu rozchodit aktualizaci stavu v homekitu, kdyz je televize zapnuta treba klasicky.

    • Dobrý den, váš komentář jsem nějak přehlídnul. Ano, aktualizace je víceméně okamžitá oběmi směry, tj. pokud vypnu/zapnu přes Homekit hned to vidím i v HA a naopak. Zapnutím klasicky asi myslíte v HA, že?

  • Zdravím. Mám problém ve finálním připojení do homekitu. Vše mám nainstalováno na Raspbery pi 3b+, sonoff s tasmotou. Připojení do hass funguje skvěle, vypínač se ovládá. Když ale chci připojit do homekitu, v nastavení domácnosti nevidím hassio bridge. Myslím, že je to v nastavení v Raspbery, kde asi není aktivována wifi. Když jsem zkusil nainstalovat na mac, tak vše funguje, včetně propojení do homekitu. Nevíte, jak tedy správně nastavit Raspbery?

    • Nevím úplně detaily jak připojení k hubu Homekit probíhá, ale podle toho jak to mám nastavené tak WiFi na hubu není potřeba. Aktuálně mám na NanoPi zaplý pouze Ethernet – WiFi je vyplé, takže jestli se to lokálně přenáší po kabelu nebo WiFi by nemělo hrát roli. Zkontroloval bych tedy snad jen zda je telefon skutečně připojený na domácí WiFi – stejné síti jako Raspberry a pak zda na Raspberry nemáte nějaký firewall. Pokud ano, zkusil bych ho dočasně vypnout jestli se to chytí. Já zatím s tou Homekit komponentou problém neměl a to jsem měl i dva Huby najednou. Btw. v Homeassistentovi vidíte PIN na aktivaci? Otázka zda totiž vůbec naběhne. Popřípadě bych se kouknul ještě do logu HomeAssistenta a zkusil hledat něco s tímhle textem „homeassistant.components.homekit“.

      • Díky za odpověď. Zkusím ještě jednou projít nastavení, ale už mě nenapadá nic, co bych změnil. Pin pro homekit se mi zobrazí, vše se zdá v pořádku, ale v telefonu nevidím bridge zobrazen a tím pádem nejde spárovat. Jsem na stejné wifi, vše by mělo být správně. Když jsem zkusil nainstalovat homeassistant na mac, tak to vše šlo, včetně připojení do homekitu. Jen na macu to nechci mít trvale. Rapsberry nemám úplně nastudované, ale postupoval jsem podle Vašeho návhodu. Rapsberry je nové, vložil jsem SD kartu s instalačním souborem a vše proběhlo. Nevím, co přesně myslíte firewallem? Ten bych našel na rapsbeerry kde?

        • Použil jste asi Hass.io image že? Takže tam by žádný firewall neměl být aktivní. Já mám aktuálně na Raspberry Ubuntu 18.04 a doinstalované Hass.io do dockeru. Je to poněkud složitější postup, ale máte k dispozici vše z distribuce Ubuntu. To jen tedy, že to nejsem schopen úplně u sebe vyzkoušet. Zkuste si ještě upravit konfiguraci HomeAssistenta tak, aby pro Homekit komponentu logoval i DEBUG (ladící) zprávy. Mohlo by se tam objevit něco co napoví. Bohužel v tomhle případě nadálku už mě zatím nic moc nenapadá.

          
          logger:
            default: warning
            logs:
              homeassistant.components.homekit: debug
              pyhap: debug
              pyhap.accessory_driver: debug
          
          • Ano, instaloval jsem image. Zkusím tedy nastavit ten log a uvidím, jestli se tam něco ukáže. Ten log dle Vašeho postupu zapsat do configuration.yaml? Jen pro jistotu:). Když by to nic nezměnilo, mohl by jste mi případně poslat postup, jak to máte nainstalováno vy? Zkusil bych to udělat tímto způsobem

          • Ano. Už tam možná nějaký logger záznam bude, tak tam jen přidejte řádky, jinak by to hlásilo duplicitu. Koukám, že ten postup Ubuntu + Docker v návodu v tomhle článku nemám, takže ho přidám. Kdybyste nic nezjistil a chtěl se do toho pustit tak zkuste ideálně jinou SD kartu ať se máte k čemu vracet, kdyby to nepomohlo. Obecně ten nápad přímo s Hass.io image zejména pokud tam je tam jen HomeAssistent není vůbec špatný.

          • Teda kecám 🙂 Já mám vlastně nakonec Raspbian (s Debianem) a Docker s Hass.io. Ubuntu jsem zkoušel vlastně předtím, ale chybí tam některé speciální utility pro Raspberry 🙂 No nicméně přidám do článku.

          • dobře. děkuji za podněty. Zkusím pak ten další návod. A ty logy najdu kde prosím? Zkoušel jsem do configu napsat ty příkazy pro log a hlásí to pořád chybu. Mám to vše přesně podle vašeho vzoru. Nevíte proč?

          • Koukněte ještě na konec článku – přidal jsem tam sekci Řešení problémů. Je tam vidět jak konfigurace tak i potom co by v logu mělo být. Podle mě z toho poznáte kde je problém, resp. která část vám chybí.

          • Super, děkuji za vzor logu. Zkusím zapnout a podívám se, co tam bude.

          • tak na hass.io se mi nepovedlo zprovoznit propojení do homekitu. Zkusil jsem nainstalovat alternativu, která se jmenuje hassbian a tam to chodí skvěle. Je tam trochu složitější nastavování – nelze to dělat přes webové rozhraní, ale přímo přes terminál, ale funguje to. Tak kdyby někdo měl stejné potíže, doporučuji variantu s hassbianem

%d blogerům se to líbí: