Zaczynając przygodę w „oficjalną deweloperkę” HomeKit, miałem przeczucie, że porywam się z motyką na słońce. I to przeczucie nadal mi towarzyszy. Jednak nie zmienia to faktu, że tworzenie własnych rozwiązań „smart home” opartych na HomeKit daje dużo frajdy. Na martwienie się trudnościami z certyfikacją i ewentualną produkcją przyjdzie jeszcze czas.

Ostatnio opisywałem, co należy zrobić, aby ubiegać się o licencję dewelopera MFi. Przypomnę, że nie jest to specjalnie trudne ani drogie.

Teraz nadszedł czas na konsumpcję pierwszych korzyści

z posiadania licencji MFi. Dla mnie na razie największą zaletą jest dostęp do gotowych bibliotek programowych przygotowanych dla różnych mikrokontrolerów, które pozwalają na w miarę szybkie tworzenie własnych rozwiązań.

Wielu producentów mikrokontrolerów i układów dla SmartHome oferuje gotowe biblioteki zgodne z HomeKit. Są one przetestowane pod względem zgodności z rygorystycznymi wymogami Apple i jeżeli sami nic nie zrobimy źle, to testy programowe powinny się udać. W portalu MFi znajdziecie listę producentów oferujących SDK oraz informacje, jakiego rodzaju połączenia są obsługiwane. Może to być IP (Wi-Fi, Ethernet) lub Bluetooth. Każde z nich ma pewne zalety i wady.

Wi-Fi wyróżnia się stabilną i szybką reakcją, jednak nie nadaje się do urządzeń mających zasilanie bateryjne. Dodatkowo z racji możliwości zerwania sesji np. z powodu braku zasilania lub restartu nie nadaje się zbyt dobrze dla urządzeń sterujących czy wyzwalających określone akcje w automatyce HomeKit. Ethernetowe mają podobne cechy jak Wi-Fi, a ponadto wymagają połączenia kablem do lokalnej sieci, np. routera. Bluetooth pozwala na długą pracę przy zasilaniu z baterii oraz z racji automatycznego łączenia nadaje się na przyciski i inne urządzenia, które wysyłają dane sterujące automatyką. Nie wymaga też infrastruktury sieciowej. Jego wadą jest czasem dłuższy czas reakcji oraz pewne ograniczenia w zasięgu.

Jeżeli nie macie jeszcze licencji MFi, 

a chcecie sprawdzić, czy Wasze ulubione mikrokontrolery, które potraficie już programować, mają gotowe SDK, wystarczy, że wpiszecie w wyszukiwarkę nazwę firmy lub model oraz „HomeKit SDK”. Z bardzo dużym prawdopodobieństwem pojawią Wam się wyniki kierujące bezpośrednio do opisu konkretnego SDK HomeKit. Nie liczcie od razu na dostęp do bibliotek. To uzyskuje się dopiero po weryfikacji licencji MFi przez oferującego gotowe rozwiązania. Niektóre rozwiązania są płatne, ale na szczęście najpopularniejsze oferowane są za darmo. Jedynie należy mieć odpowiednie układy czy płytki developerskie.

Ja zdecydowałem się na bardzo popularny i znany mi już mikrokontroler ESP32 chińskiej firmy Espressif. Jest to następca bardzo popularnego, ale nienadającego się dla HomeKit ESP8266. Na razie Espressif oferuje dla niego SDK IP (Wi-Fi), ale planowana jest, choć bez konkretnego terminu udostępnienia, wersja Bluetooth. ESP32 obsługuje oba standardy. Ten układ ma jeszcze więcej zalet. Jest bardzo tani, płytki deweloperskie kosztują poniżej 10 dolarów, a moduły nawet mniej niż 4$. Ma sporo gotowych innych bibliotek, a w sieci łatwo można znaleźć pomoc.  Bez problemu daje się je programować na macOS, i to na wiele sposobów.

Jeżeli już teraz chcemy tworzyć konkurencję dla The Button Fibaro

lub zamków Gerdy, czyli własne urządzenia HomeKit na Bluetooth, to polecam norweskie nRF52832. Moduły i płytki deweloperskie są droższe niż Espressif i czasem trudniej się je programuje na macOS, ale też są popularne.

Oczywiście po udostępnieniu przez Apple dokumentacji „amatorskiej” HomeKit powstaje sporo projektów bibliotek dostępnych publicznie. Jednak patrząc, jak wiele problemów napotykają ich twórcy i użytkownicy, nie żałuję, że podjąłem trud zdobycia licencji MFi.

Uwaga! Choć w iOS 11.3 można używać programowej autentykacji urządzeń HomeKit, to większość gotowych SDK jeszcze tej możliwości nie oferuje. Dlatego do mikrokontrolerów należy podłączać chip MFi Apple. Mając licencję, można je kupić i nie zbankrutować przy tym. Jednak i bez nich daje się rozpocząć programowanie, bo i nRF52, i ESP32 oferują rozwiązania tymczasowe, ale w HomeKit będzie się pojawiać ostrzeżenie, tak jak przy korzystaniu z HomeBridge i innych nieoficjalnych rozwiązań.

Od obu firm można otrzymać pomoc, gdy napotkamy trudności. Zważywszy na mój angielski, opiekunowie SDK HomeKit wykazują się sporą dozą cierpliwości, a ich porady są użyteczne.

O SDK dla ESP32 można się ubiegać, pisząc na adres: homekit_sdk@espressif.com. Należy podać numer licencji MFi, e-mail, który jest zarejestrowany w Apple, oraz dane firmy. Po weryfikacji będziemy proszeni o podpisanie umowy o zachowaniu poufności, z wielką okrągłą pieczęcią z czerwoną gwiazdą. Dlatego nie pytajcie mnie o szczegóły kodu.

Po dostęp do SDK nRF52 można się zgłosić na forum. Nie należy od razu podawać naszych danych. Po opublikowaniu prośby jakaś życzliwa osoba z Nordic Semi zamieni nasz wątek na prywatny i wtedy będziemy mogli bezpiecznie dokończyć zgłoszenie.

Powodzenia! Ja już mam pewne sukcesy i coś już mi działa, choć z nRF52 będę chyba potrzebował pomocy.

Może Cię zainteresować: