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

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

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.
  7. Naprawiamy sterowanie TV, Apple TV i amplitunerem przez Homebridge i Logitech Harmony w HomeKit.
  8. Wywalamy Airly, bo zabili swoje publiczne API.
  9. Przenosimy Homebridge do nowego Home i rozwiązujemy problemy z HomeKitem.

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:
    "accessories": [{
        "accessory": "Air",
        "apikey": "tutaj_wklejamy_API_key_ma_32_znaki",
        "latitude": "np_54.111522_ale_podajcie_tutaj_swoje",
        "longitude": "np_22.930788_ale_podajcie_tutaj_swoje",
        "name": "Airly Air Quality"
    }]

    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:
    {
        "bridge": {
            "name": "Homebridge",
            "username": "XX:XX:XX:XX:XX:XX",
            "port": 51826,
            "pin": "031-45-154"
        },
        "description": "HomePi Homebridge.",
        "accessories": [{
            "accessory": "Air",
            "apikey": "MOJE_API",
            "latitude": "WSPOLRZEDNE_1",
            "longitude": "WSPOLRZEDNE_2",
            "name": "Airly Air Quality"
        }],
        "platforms": [{
            "platform": "MiAirPurifierPlatform",
            "deviceCfgs": [{
                "type": "MiAirPurifier2",
                "ip": "ADRES_IP",
                "token": "TOKEN",
                "airPurifierDisable": false,
                "airPurifierName": "MiAirPurifier2",
                "silentModeSwitchDisable": false,
                "silentModeSwitchName": "MiAirPurifier2 Silent Mode Switch",
                "temperatureDisable": false,
                "temperatureName": "MiAirPurifier2 Temperature",
                "humidityDisable": false,
                "humidityName": "MiAirPurifier2 Humidity",
                "buzzerSwitchDisable": true,
                "buzzerSwitchName": "MiAirPurifier2 Buzzer Switch",
                "ledBulbDisable": true,
                "ledBulbName": "MiAirPurifier2 LED Switch",
                "airQualityDisable": false,
                "airQualityName": "MiAirPurifier2 AirQuality"
            }]
        }]
    }

    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.





26

Wojtek Pietrusiewicz

Wydawca, fotograf, podróżnik, podcaster – niekoniecznie w tej kolejności. Lubię espresso, mechaniczne zegarki, mechaniczne klawiatury i zwinne samochody.