^
Jak zostać deweloperem HomeKit

Jak zostać deweloperem HomeKit cz. V, każda róża ma kolce

Jaromir Kopp

6 lutego 2019

Gama urządzeń HomeKit stale rośnie. Od końca stycznia do połowy sierpnia 2018 przybyło na stronie Apple 66 nowych urządzeń zgodnych z HomeKit. A są nowości, które się tam jeszcze nie pojawiły. Jedną z nich jest nowy członek rodziny IKEA TRÅDFRI. To sterowane gniazdko, które według zapewnień rzeczniczki prasowej Ikea w Polsce pojawi się w sprzedaży już w październiku. Posiada ono kilka zalet, z których główną jest cena oraz duża moc, bo aż 3 600 watów, którą może przełączać. Wadą jest dość pokaźny rozmiar. Wracając do ceny – samo gniazdko ma kosztować 10 dolarów, a w zestawie z pilotem, który może obsługiwać do 10 gniazdek i jest koniecznym elementem – 20. W Polsce ma to być jedyne 60 zł. Do sterowania gniazdkami za pomocą HomeKit, poza pilotem, będzie potrzebna jeszcze bramka TRÅDFRI, ta sama co steruje żarówkami i oświetleniem Ikea. Całkiem miła niespodzianka.

Tekst pochodzi z wrześniowego [2018] Mój Mac Magazynu

Jednak te akcesoria ktoś musi najpierw zaprojektować. I w założeniu tego cyklu tym kimś mamy być również my. Dlatego bardziej nas zainteresuje pojawienie się pierwszej wersji ADK przygotowanej przez Espressif dla swojego bardzo popularnego układu ESP32. Przypomnę, że za skrótem ADK kryje się HomeKit Accessory Development Kit opracowany przez Apple w celu ułatwienia i przyśpieszenia tworzenia akcesoriów oraz gotowych bibliotek HomeKit na wiele różnych rodzin mikrokontrolerów i procesorów. Więcej informacji o tym pojawiło się w poprzednich odcinkach. Apple udostępnił własną implementację protokołów HomeKit, do której wystarczy dopisać tylko część obsługi konkretnego mikrokontrolera, czym powinien zająć się jego producent, oraz logikę akcesorium, czym zajmiemy się my. Espressif stanęło na wysokości zadania i swój kawałek roboty wykonało. Oczywiście znacznie dłuższą historię ma własne SDK HomeKit opracowane samodzielnie przez Espressif.

Apple ADK dla ESP32

I w tym momencie zaczynają się kolce. Niestety, Apple, robiąc biblioteki jak najbardziej uniwersalne, prawdopodobnie musiało pójść na wiele ustępstw. Rozwiązania zawarte w ADK wydają się dość toporne i chwilami mam wrażenie, że Apple nie zawsze trzyma się własnych wytycznych, zawartych w dokumentacji HomeKit. Do tego nowy sposób dodawania akcesoriów do HomeKit, który pojawił się w iOS 11.3, działa niesamowicie wolno i niestabilnie. Na szczęście nadal można używać poprzedniego. Oczywiście należy pamiętać, że to są pierwsze wersje, a ADK Apple pojawiło się dopiero w połowie czerwca. Chyba nadal pozostanę przy rozwiązaniu stworzonym przez ESP przynajmniej w przypadku mostka.

Jednak to nie są jedyne problemy, którym deweloper HomeKit musi stawić czoła. Podczas prac nad moim mostkiem dla [Lu]LED natrafiłem na przedziwny problem. Gdy dodawałem do niego jedenastą lampę, to nagle w HomeKit zaczynały się dziać cuda. Akcesoria zamieniały się rolami i wszystko przestawało działać. Po sprawdzeniu, czy czasem nie robię jakiegoś głupiego błędu, np. obcinając jakiś znak w kluczu podczas zapisu kolejnych urządzeń w pamięci nieulotnej mikrokontrolera, oraz sprawdzeniu, czy czasem zasoby się nie kończą, poprosiłem o poradę fachowców z ESP. W ciągu godziny dowiedziałem się, że ESP32 poradzi sobie nawet z 60 akcesoriami, a błąd tkwi w iOS, i to od dłuższego czasu. Jest tak kuriozalny, że najlepiej posłużyć się przykładem. Nie uruchomisz silnika w samochodzie, jeżeli wcześniej otwarta była na chwilę maska i nie opuściłeś okna w lewych tylnych drzwiach do 1/3 wysokości. Okazało się, że w konfiguracji mostka nie może pojawić się urządzenie o id takim samym jak numer którejś charakterystyki samego mostka. Te liczby nie mają ze sobą nic wspólnego i dotyczą innych aspektów konfiguracji akcesoriów. Totalna masakra! Podejrzewam, że sam bym na to nie wpadł przez miesiąc. I tu znów wychodzi, jak ważne jest posiadanie licencji MFi (jak ją zdobyć, opisałem w pierwszych odcinkach). Bez niej nie mógłbym uzyskać pomocy programistów Espressif, którzy wybawili mnie z opresji. Zastosowałem proste obejście. Nieelegancko przeskakuję „zakazany” numerek. Co gorsza, okazało się, że taki sam sposób wciąż proponuje Apple, które zna już problem niestety od dawna.

Kłopoty z iCloud

Na koniec złych wieści jeszcze skarga na działanie synchronizacji HomeKit przez iCloud. Bez iCloud z HomeKit nie bardzo daje się korzystać. Ograniczylibyśmy się do jednego urządzenia (iPhone), którym można sterować akcesoriami. Jednak doświadczyłem na sobie, że synchronizacja może zawodzić do tego stopnia, że wymaga zresetowania całego domu i ustawienia wszystkich akcesoriów i automatyk od nowa. I tak mniej więcej co tydzień. Na razie na moje dolegliwości pomogło wylogowanie iPhone’a z iCloud i zalogowanie ponowne. Nie było to przyjemne, ale na razie mam spokój, czego i Wam życzę.

Aby nie zostawiać Was w złym nastroju, to warto przypomnieć o aplikacji Skróty oraz Skrótach Siri. Mogą one sterować scenami w HomeKit, a w połączeniu ze skryptami pozwolą na ciekawsze funkcje sterowania akcesoriami.

Jaromir Kopp

Użytkownik komputerów Apple od 1991 roku. Dziennikarz technologiczny, programista i deweloper HomeKit. Propagator przyjaznej i dostępnej technologii. Lubi programować w Swift i czystym C. Tworzy rozwiązania FileMaker. Prowadzi zajęcia z IT i programowania dla dzieci oraz młodzieży, szkoli też seniorów. Współautor serii książek o macOS wydanych przez ProstePoradniki.pl. Projektuje, programuje oraz samodzielnie wykonuje prototypy urządzeń Smart Home. Jeździ rowerem.
Komentarze (0)
L

0 komentarzy