hackerspace-silesia / Smogomierz

Smogly(formerly: Smogomierz) - simple and cheap PM 2.5 and PM10 sensor based on NodeMCU (ESP8266) or ESP32
Apache License 2.0
123 stars 38 forks source link

Obsługa Apple HomeKit #110

Closed bfaliszek closed 3 years ago

bfaliszek commented 3 years ago

Dostaję masę pytań o lepsze wsparcie Apple HomeKit(aplikacja Dom na urządzeniach Apple) w Smogly. Obecnie można to zrobić trochę naokoło, czyli z użyciem homebridge i wtyczki - https://github.com/bfaliszek/homebridge-smogomierz Jest jednak możliwość lepszego wsparcia, bez dodatkowych wtyczek itp.

Docelowo chciałbym ją dodać w oprogramowaniu, jednak wiążę się ona z koniecznością trzymania kluczy w pamięci ESP. Po połączeniu iPhone'a/iPada/Maca z ESP, muszę zapisać w pamięci ESP klucze. Są one później wykorzystywane do rozpoznawania z którym urządzeniem został sparowany nasz miernik zanieczyszczeń powietrza. Dlatego nie wiem czy będzie się dało dodać to rozwiązanie w ESP8266, gdzie już teraz mam problemy z obsługą HTTPS, a co dopiero zapisywaniu kolejnych kluczy w pamięci dla HK. Dlatego na początku HomeKit pojawi się w oprogramowaniu dla ESP32.

Właśnie dodałem w kodzie podstawowe sprawcie Apple HomeKit. Jeśli macie urządzenia Apple oraz Smogly oparte o ESP32, to możecie pobrać i przetestować oprogramowanie w wersji prerelease_ESP32_Smogomierz_2.8.0 - https://github.com/hackerspace-silesia/Smogomierz/tree/dev/firmware/ESP32 Kod wymagany do sparowania: 11111111

Na chwilę obecną działa proces łączenia i parowania. Klucze nie są jeszcze zapisywane w pamięci, dlatego po każdym restarcie Smogly, trzeba ponownie połączyć je ze swoim telefonem/tabletem. Zapis dodam w kolejnych aktualizacjach. Na razie HK ma wsparcie na poziomie eksperymentalnym, muszę jeszcze nad tym trochę posiedzieć.

Poniżej screeny z procesu parowania iPhone'a ze Smogly: IMG_9193 IMG_9194 IMG_9195 IMG_9197 IMG_9198 IMG_9199 IMG_9200 IMG_9202 IMG_9203

bfaliszek commented 3 years ago

Planuję dokończyć dodawanie obsługi HK dla ESP32, a później spróbuję to optymalizować dla ESP8266. Zakładam, że przy ESP8266 będę musiał wyłączyć cały interfejs WWW, żeby obsługiwać HK. Jeśli to rozwiązanie się sprawdzi, to tak bym to zostawił. Do włączenie HK można użyć linku [IP_Smogly]/homekit_on analogicznie do wyłączenia [IP_Smogly]/homekit_off. Natomiast pod adresem [IP_Smogly]/homekit_reset będzie można skasować klucze zapisane w pamięci ESP - po tej czynności urządzenie przechodzi w tryb parowania i można podłączyć do niego innego iPhone'a. Po wyłączeniu obsługi HK znowu włączy się zwykły interfejs WWW.

bfaliszek commented 3 years ago

Dodałem zapisywanie oraz kasowanie zapisanych kluczy parowania w pamięci ESP32 - https://github.com/hackerspace-silesia/Smogomierz/blob/dev/firmware/ESP32/prerelease_ESP32_Smogomierz_2.8.0_PMS_build_28.01.2021.bin Muszę jeszcze poprawić informowanie o poziomie PM10 i PM2.5 oraz dodać słowne opisy jakości powietrza(zła, przeciętna, dobra itp.) w zależności od poziomu pyłu.