Version 1.15
22 downloads
———————————————————————————————————————————————————————
Current Version: 1.15
Fibaro Marketplace: https://marketplace.fibaro.com/items/looko2-air-quality-sensor ———————————————————————————————————————————————————————
Witajcie,
Jakiś czas temu poruszałem tu temat pomiaru Czystości Powietrza (szczególnie PM2.5) we własnym mieszkaniu lub na zewnątrz z określonej okolicy.
W założeniu chodziło o to aby Fibaro potrafiło pobierać dane z własnego czujnika a następnie wyświetlać je i wykorzystywać dalej w działaniu (np. uruchomienie oczyszczacza)
Nie znalazłem gotowego rozwiązania, a z dostępnych (w racjonalnej cenie) najsensowniejsze wydawało się zastosowanie własnego czujnika Looko2 - z obserwacji, dane wyglądają na dość dokładne,
stosują dobre czujniki i udostępniają API (tu wymagany token).
Jak dla mnie idealnie było by, gdyby, przynajmniej ostatnia średnia odczytu i podstawowe dane były dostępne bezpośrednio przez API Web interfejsu urządzenia, w lokalnym LANie
- ale podobno nie można mieć wszystkiego więc póki co zadowalam się API w chmurze
Tutaj podziękowania w stronę zespołu LOOKO2, który wykazał się otwartością na moje pytania dotyczące danych z czujnika a nawet dodał do API parametry, których pierwotnie tam nie było.
Wirtualka została przekazana również do nich, więc być może pojawi się także na stronie projektu.
Po cichu liczę, że na jej bazie FIBARO może przygotuje kiedyś jakiś plugin, być może ze statystyką danych na wykresach centralki
Jeśli chodzi o samo urządzenie to wygląda następująco:
Całość tzn. plik wirtualki, ikony, oraz opis parametrów znajdują się w dołączonym zipie.
Po imporcie urządzenia, należy dodać niezbędne ikony oraz dodać ich ID do configa wirtualki.
Ponadto należy podać tam ID interesującego nas czujnika - ja nie mam jeszcze własnego więc
pobieram dane z dostępnego w pobliżu, oraz token - można go uzyskać mailowo od suportu Looko2.
W celu działania PUSHy oraz dalszego wykorzystania jakości, należy dodać zmienną globalną
o nazwie określonej w konfiguracji. (W przypadku wielu urządzeń / czujników - dla każdego tworzymy nową zmienną), oraz określić ID urządzeń mobilnych/
Wszystkie parametry opisane są w dołączonym pliku oraz komentarzach w konfiguracji samego urządzenia.
Cała konfiguracja znajduje się w pierwszej części kodu urządzenia i nie powinna sprawiać żadnych problemów.
Czas odświeżania danych z API również można modyfikować w konfiguracji - wstępnie zdefiniowałem go na 15 minut.
W mojej ocenie jest to zupełnie wystarczające a częstsze odświeżanie danych nie ma sensu, bo prezentowane w API dane
to średnia ostatnich odczytów - co czyni odczyt bardziej poglądowym niż odczyt chwilowy.
Całość kodu znajduje się w pętli głównej, podczas testowania urządzenia (pewnie około 2 miesiące) zdarzyły mi się sporadyczne
zawieszenia - może 2 - dlatego nie zdecydowałem się na pakowanie kodu pod przycisk i wyzwalanie go sceną.
W przypadku interfejsu webowego urządzenie prezentuje jakość poprzez ikonę oraz nr indeksu jakości w dolnej belce pod ikoną urządzenia.
Po wyświetleniu szczegółów, prezentowane są dokładne dane o aktualnej jakości powietrza. Nazwa urządzenia oraz lokalizacja IN / OUT prezentowana w szczegółach urządzenia, pobierana jest z API czujnika,
natomiast pomieszczenie odzwierciedla umiejscowienie czujnika w strukturze pomieszczeń centralki FIBARO.
Procentowe zanieczyszczenie wyliczane jest w oparciu o dostępne normy (z wyjątkiem PM1 - tu nie znalazłem danych więc jako normę przyjąłem 20 µg/m3 - oczywiście można to zmienić w konfiguracji)
Do zmiennej globalnej zapisywana jest informacja o ogólnej jakości powietrza z ustawionego czujnika (0 najlepsza, 1 dobra, itd.) - zakres zgodny z dostępnymi normami i dostępny na stronie czujników
W przypadku urządzeń mobilnych występują drobne problemy z wyświetlaniem m.in z przejściem do nowej linii - szerzej problem opisałem tutaj:
Ogólnie po wprowadzeniu prawidłowego tokenu, wszystko powinno działać bez większych problemów.
Bez podania tokenu urządzenie będzie wyświetlało informacje o błędzie z tym związaną.