iMagazine

Projekt Raspberry Pi – 4 – Dodajemy pozycję w HomeKit, wyświetlającą jakość powietrza na dworze

28/02/2018, 12:14 · · · 22

Od jakiegoś czasu przymierzałem się do wyświetlania temperatury na dworze w HomeKit, ale dzisiaj Beniamin Rychter wypuścił coś ciekawszego – możliwość wyświetlania danych AQI, PM2,5 i PM10 z najbliższej stacji pomiarowej. Plugin Homebridge-airly znajdziecie na GitHubie.


Ten projekt jest możliwy dzięki uprzejmości Botland, który dostarczył następujące elementy umożliwiające jego wykonanie:


Spis treści

  1. Instalacja i konfiguracja Raspbian (Wi-Fi, SSH i VNC).
  2. Instalacja Homebridge i konfiguracja Xiaomi Air Purifier 2.
  3. Uruchomienie kamery Raspberry Pi NOIR pod HomeKitem.
  4. Dodajemy pozycję w HomeKit, wyświetlającą jakość powietrza na dworze.
  5. Dodajemy prognozę pogody do HomeKit dla naszej ulicy.
  6. Dodajemy sterowanie TV, Apple TV i amplitunerem do HomeKit przez Homebridge i Logitech Harmony.

Cała operacja jest banalnie prosta i zajęła mi jakieś 5 minut, wraz z logowaniem się do RPi. Jako ciekawostkę podpowiem, że mój Zero W już pracuje blisko dwa tygodnie bez żadnego potknięcia. Nie uaktualniałem go w żaden sposób i prawdopodobnie będę to musiał w końcu zrobić, ale tymczasem…

11:51:06 up 13 days, 40 min, 3 users, load average: 0.05, 0.16, 0.16

Przepis

  1. Logujemy się do Malinki poprzez SSH z Terminala: ssh pi@192.168.xxx.xxx.
  2. Instalujemy plugin Homebridge-airly Beniamina Rychtera: sudo npm install -g homebridge-airly.
  3. Zakładamy konto na Airly pod tym linkiem i logujemy się do niego. Trzeba będzie aktywować konto – przyjdzie w tej sprawie mail.
  4. Na koncie Airly znajdziemy API key, które musimy gdzieś sobie zapisać.
  5. Następnie potrzebujemy znać współrzędne miejsca, które nas interesuje – Airly na ich postawie będzie wyświetlało informacje z najbliższej stacji pomiarowej. Musimy pamiętać, że im dalej się znajdujemy od stacji pomiarowej, tym mniej dokładne będą wyniki i powinny służyć jedynie jako dane orientacyjne. Beniamin poleca skorzystać z serwisu Latitude and Longitude Finder. Wpisujemy tam swój adres i kopiujemy współrzędne w formacie jak ten: 54.11152222.930788.
  6. Na RPi wpisujemy: cd /var/homebridge.
  7. Następnie warto zrobić kopię pliku konfiguracyjnego, w razie czego: cp config.json config.json.bak.
  8. Teraz edytujemy go za pomocą nano config.json lub Waszego ulubionego edytora i dodajemy następujący tekst:

    Jeśli macie już pozycję accessories to oczywiście dodajcie do niej jedynie odpowiednie linie, a nie powielacie całość.
  9. Zapisujemy teraz plik: ^X, yEnter.
  10. Mój plik config.json wygląda po powyższej operacji tak:

    Zmieniłem oczywiście kilka danych, jak API, adres IP czy Token, abyście przypadkiem nie korzystali z moich, bo tam trzeba podać własne wartości.
  11. Teraz pozostaje zrestartować Homebridge: sudo systemctl restart homebridge.
  12. Nowy czujnik powinien pojawić się automatycznie w aplikacji HomeKit.

Tak wygląda on w HomeKit – idealnie nie jest, bo trzeba wejść w detale, aby zobaczyć odpowiednie info, ale mamy wszystko w jednym miejscu.



22

Wojtek Pietrusiewicz

Wydawca, fotograf, podróżnik, podcaster – niekoniecznie w tej kolejności. Lubię espresso, mechaniczne zegarki i zwinne samochody. Niedawno rozpocząłem prowadzenie kursów Lightrooma i fotografii na Pikselowe.pl – zapraszam.


22
Dodaj komentarz

avatar
9 Comment threads
13 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
12 Comment authors
AdamLajkonikichiefZbyszekCezary Piekacz Recent comment authors
  Subscribe  
najnowszy najstarszy oceniany
Powiadom o
Krzysztof Stambuła

Jestem ciekaw czy wyjdziesz z Rpi poza HomeKit

Norbert Cała

Ostatnio prawie codziennie dodaję coś do HomeKit :) dziś widzę też

Łukasz
Gość
Łukasz

Nie chciałbyś spróbować dodać termostat eQ-3 Bluetooth? Sam próbuje w wtyczką homebridge-eq3ble jednak nie wykrywa termostatu.

Łukasz
Gość

Przydatna sprawa to plugin do Netatmo Wheather Station

Norbert Cała

Tak tylko, że Netatmo nie ma informacji o PM

Łukasz
Gość

To wiadomo. Mamy, korzystając z tej wtyczki i plugina do Netatmo sporo pomiarów, mówiących nam o jakości powietrza, i na zewnątrz i w pomieszczeniu.

Norbert Cała

Oczywiście mam ja zainstalowana :)

Maciej Matuszewski
Gość

Czy do podłączenia każdego urządzenia potrzeba osobnego raspberry pi czy wszystko można podpiąć na jednym?

Beniamin Rychter
Gość

Zależy co i jak chcesz podłączyć. Ale ogólnie rzecz biorąc można wszystko postawić na jednej malinie 😊

Cezary Piekacz
Gość
Cezary Piekacz

Używając wtyczki https://www.npmjs.com/package/homebridge-airnow i konfigurając ją aby korzystała z danych serwisu Aqicn dostajemy dużo więcej danych – stężenie ozonu, dwutlenku siarki i azotu.

Norbert Cała

Ale duzo mniej stacji :/

Cezary Piekacz
Gość
Cezary Piekacz

Warto też dodać, że na chwilę obecną wtyczka niepoprawnie oblicza jakość powietrza ponieważ bazuje na indeksie AQI (0-300+), natomiast Airly używa CAQI (0-100). Zgłosiłem to już autorowi.

Beniamin Rychter
Gość

Dzisiaj pojawi się update.

Zbyszek
Gość

można sobie samemu grzebnąć:

— index.js-org 2018-02-28 20:30:59.000000000 +0100
+++ index.js 2018-02-28 20:36:09.000000000 +0100
@@ -120,15 +120,15 @@
transformAQI: function (aqi) {
if (!aqi) {
return (0); // Error or unknown response
– } else if (aqi <= 50) {
+ } else if (aqi <= 25) {
return (1); // Return EXCELLENT
– } else if (aqi >= 51 && aqi <= 100) {
+ } else if (aqi >= 26 && aqi <= 50) {
return (2); // Return GOOD
– } else if (aqi >= 101 && aqi <= 150) {
+ } else if (aqi >= 51 && aqi <= 75) {
return (3); // Return FAIR
– } else if (aqi >= 151 && aqi <= 200) {
+ } else if (aqi >= 76 && aqi <= 100) {
return (4); // Return INFERIOR
– } else if (aqi >= 201) {
+ } else if (aqi >= 101) {
return (5); // Return POOR (Homekit only goes to cat 5, so combined the last two AQI cats of Very Unhealty and Hazardous.
} else {
return (0); // Error or unknown response.

coś w tym stylu

ichief
Gość
ichief

„… na dworze” – czyli w Krakowie nie będzie działać ? :)

Lajkonik
Gość
Lajkonik

Właśnie! Poważne pismo a takie błędy. Ile razy mam powtarzać, że „…na polu” ;)

Adam
Gość
Adam

Jaki adres IP w config.json? Skad token? to to samo co apiKey?