Hakowanie urządzeń IoT - czujnik stężenia cząstek stałych IKEA VINDRIKTNING
Zanim przejdziesz dalej
Jeśli nie masz ochoty uczyć się i majsterkować a chciałbyś tylko “najtaniej podłączyć wszystko”… NIE CZYTAJ TEGO - w Internecie jest wiele ciekawszych rzeczy!.
Żeby zrozumieć dlaczego, opisuje jak zhakować dobrze działające urządzenie IKEA Vindriktning – przeczytaj proszę ten wpis:
Wprowadzenie
IKEA Vindriktning to niedrogi czujnik jakości powietrza z ładną obudową. Niestety wszytko co potrafi to wyświetlenie 3 kolorów - w stylu dobrze, średnio i źle:
Nie jest to miarodajne - nie znamy dokładnej wartości i nie da się na tej podstawie zrobić automatyzacji która uruchomi filtr powietrza w domu.
Ale dzięki temu projektowi:
https://github.com/Hypfer/esp8266-vindriktning-particle-sensors
Oraz dzięki temu, że Tasmota w najnowszym wydaniu, dodała sterownik do tego czujnika:
Możemy dodać odczyt danych czujnika za pomocą esp8266 do Asystenta domowego.
Budowanie binarki
Żeby dodać obsługę tego czujnika, trzeba dostosować ustawienia oprogramowania przed jego kompilacją - trzeba odkomentować te 3 linijki i zbudować kod który wgramy do urządzenia z esp8266.
Wg Tasmota, te 3 linijki pozwalają na dodanie obsługi czujnika stężenia cząstek stałych IKEA oraz na włączenie odczytu dodatkowych nieudokumentowanych/domniemanych wartości PM1.0 i PM10.
Wg specyfikacji sensora PM1006K, który jest w urządzeniu IKEA:
tylko PM2,5 jest w tym modelu rejestrowany prawidłowo, więc pozostałe wartości (te nieudokumentowane) mogą nie być odczytywane poprawnie.
Zbudowany firmware.bin w załączeniu:
firmware.bin (596,9 KB)
Oczywiśćie można samemu zbugować i eksperymentować, jest sporo opisów jak to zrobić, na tym forum.
Łączenie z esp8266 z sensorem
Można podłączyć czujnik do dowolnego urządzenia z esp8266 i wyprowadzonym wolnym portem GPIO. Ja podłączyłem go gniazda AIS-dom S26 bo będę automatycznie sterować filtrem jak czujnik zaraportuje, że trzeba.
GPIO 2 pochodzi z modułu ESP8266 umieszczonego w gnizdku AIS-dom S26. Tak jak opisałem tu:
Konfiguracja szablonu w Tasmota
Szablony zapewniają łatwy sposób tworzenia, modyfikowania i udostępniania konfiguracji dla różnych urządzeń, które mają funkcje obsługiwane w Tasmocie.
W szablonie możemy skonfigurować jakie urządzenie peryferyjne jest podłączone do danego GPIO, robimy kopię szablonu gniazdka w którym łączymy GPIO 2 z sterownikiem czujnika:
następnie wybieramy ten moduł w ustawieniach konfiguracji urządzenia:
Już mamy odczyty w aplikacji na gniazdku AIS dom S26:
Połącznie z Asystentem domowym
Jak tylko dodamy gniazdko do bramki (podając w ustawieniach mqtt na gniazdku, IP serwera mqtt działającego na bramce AIS dom):
to automatycznie pojawi nam się w urządzeniach WiFi AIS gniazdko z czujnikami:
Ładna karta w Asystencie domowym
Żeby ładnie wyświetlać status czujnika oraz łatwo sterować filtrem dodamy kartę z encjami przełącznika (gniazdka) i filtra, w nowym widoku.
W kolejnej wersji pojawi się now karta “Obszar” w Asystencie domowym - będzie jeszcze ładniej i łatwiej, bo będzie można dodać obrazy do obszarów:
Dodajemy nowy widok:
Następnie do widoku dodajemy kartę, typu obszar i pojawią się ładnie encje na nowej karcie:
Sterowanie głosowe
Ustawiamy odpowiednie nazwy dla encji (czujnika i przełącznika):
I już działa sterowanie głosowe oczyszczaczem i pytanie o jakość powietrza:
Automatyzacja
Oczywiście celem głównym jest włączanie oczyszczacza gdy czujnik stężenia cząstek stałych osiągnie wartość …
TODO, muszę poczytać o tych wartościach z czujnika stężenia cząstek stałych
firmware.bin (596,9 KB)