Projekt Raspberry Pi – 5 – Dodajemy prognozę pogody do HomeKit dla naszej ulicy
Wczoraj pisałem o polskim pluginie Homebridge-airly, który w międzyczasie uzyskał update, więc wspomnę o tym jak go uaktualnić, ale dzisiaj chciałem się skupić na dodaniu prognozy pogody do naszego HomeKit, za pomocą Homebridge.
Ten projekt jest możliwy dzięki uprzejmości Botland, który dostarczył następujące elementy umożliwiające jego wykonanie:
- Zestaw Raspberry Pi Zero W Camera Noir Pack – 224,00 PLN
- Adapter OTG microUSB – USB – 9,90 PLN
- Adapter miniHDMI – HDMI – 5,90 PLN
Spis treści
- Instalacja i konfiguracja Raspbian (Wi-Fi, SSH i VNC).
- Instalacja Homebridge i konfiguracja Xiaomi Air Purifier 2.
- Uruchomienie kamery Raspberry Pi NOIR pod HomeKitem.
- Dodajemy pozycję w HomeKit, wyświetlającą jakość powietrza na dworze.
- Dodajemy prognozę pogody do HomeKit dla naszej ulicy.
- Dodajemy sterowanie TV, Apple TV i amplitunerem do HomeKit przez Homebridge i Logitech Harmony.
- Naprawiamy sterowanie TV, Apple TV i amplitunerem przez Homebridge i Logitech Harmony w HomeKit.
- Wywalamy Airly, bo zabili swoje publiczne API.
- Przenosimy Homebridge do nowego Home i rozwiązujemy problemy z HomeKitem.
Uaktualniamy Homebridge-airly
Beniamin Rychter wczoraj poprawił Homebridge-airly, żeby pokazywało info dla skali CAQI zamiast AQI, więc trzeba uaktualnić plugin.
- Logujemy się na Malinkę.
- Wpisujemy:
sudo npm update -g homebridge-airly@latest
. - Czekamy aż się uaktualni.
- Możecie zweryfikować, że macie wersję 1.1.5 za pomocą komendy
npm list -g homebridge-airly
. - Moglibyśmy teraz zrestartować Homebridge’a, ale i tak będziemy to za chwilę robili, więc nie ma to sensu.
Dodam jeszcze, że wczoraj całość uruchamiałem „na szybko”, a dzisiaj skorzystałem z okazji, aby wprowadzić kilka poprawek. Sekcja pliku konfiguracyjnego dla Homebridge-airly teraz wygląda tak:
"accessories": [{ "accessory": "Air", "apikey": "xxxx", "latitude": "xxxx", "longitude": "xxxx", "name": "MOJE_DZIELNICA" }, { "accessory": "Air", "apikey": "xxxx", "latitude": "xxxx", "longitude": "xxxx", "name": "INNA_MIEJSCOWOŚĆ" } ],
Jak widać, dodałem sobie ten plugin dwukrotnie, aby wyświetlać jakość powietrza dla dwóch różnych stacji pomiarowych.
Jeśli chcecie teraz zrestartować Homebridge’a, to należy w Terminalu wpisać:
sudo systemctl restart homebridge
.
Status restartu możemy wyświetlać za pomocą sudo systemctl status homebridge
. Wciskamy q
, aby wyjść. Komendę można powtarzać, aż całość się załaduje.
Dodaje prognozę pogody
Nie mam zewnętrznej stacji pogodowej ani czujnika temperatury, ponieważ na moim balkonie nie ma to specjalnie sensu – będzie osłonięty, zbierał temperaturę z budynku, a przez większość dnia będzie wystawiony na słońce. Dlatego zdecydowałem się na instalację homebridge-weather-station-extended, który wyświetli mi temperaturę aktualną, nadchodzącą w dzisiejszym dniu, jutrzejszą oraz na dwa kolejne dni.
Ten plugin wymaga wygenerowania klucza dla Weather Undeground, którego będzie trzeba podać w pliku konfiguracyjnym, więc zacznijmy od niego.
- Udajemy się na tę stronę Weather Undeground.
- Najpierw zakładamy konto – potrzebujemy podać email i hasło.
- Logujemy się na to konto.
- Teraz wchodzimy na tę stronę.
- Klikamy na Pricing w pasku nad Key features.
- Wybieramy darmowy Stratus Plan.
- Klikamy w Purchase Key.
- Powinniśmy tutaj znaleźć szczegółowe informacje na temat naszego klucza – długiego zlepka liter i cyfr.
- Jak wykonamy powyższe, to musimy zlokalizować nazwę stacji pogodowej, z której chcemy pobierać informacje. W tym celu udajemy się do widoku Mapy Interaktywnej.
- Na tej mapie znajdujemy konkretną stację pomiarową, która nas interesuje. Najłatwiej wyszukać na górze nasze miasto, a potem wybrać stację najbliższą naszego miejsca zamieszkania.
- Po wybraniu punktu, który nas interesuje (przykład znajdziecie na powyższych obrazku), patrzymy na Station ID. Na przykładzie jest to
IMZGORCE5
. Zapisujemy sobie tę nazwę gdzieś. - Teraz czas przejść do instalacji pluginu:
sudo npm install -g homebridge-weather-station-extended
. cd /var/homebridge
.sudo nano config.json
.- Do naszego pliku konfiguracyjnego dodajemy sekcję poświęconą Weather Underground:
{ "platform": "WeatherStation", "name": "Pogoda Ursynów", "key": "KLUCZ_WUNDERGROUND", "location": "pws:IMZGORCE5_LUB_INNY", "interval": "4", "forecast": "3days" }
- Pozycję
name
możecie sobie nazwać dowolnie – w moim przypadku to nazwa dzielnicy. Pozycjęinterval
zostawcie w spokoju, inaczej przekroczycie liczbę odwołań API na dobę – jeśli coś takiego potrzebujecie, to trzeba zapłacić za dostęp do API. - Teraz musimy zapisać plik:
^X
,y
iEnter
. - Pozostaje zrestartować Homebridge’a, a wszystko powinno się w nim pojawić automatycznie:
sudo systemctl restart homebridge
.
Mój pełny plik konfiguracyjny obecnie wygląda tak (wrażliwe dane podmieniłem):
{ "bridge": { "name": "Homebridge", "username": "XX:XX:XX:XX:XX:XX", "port": 51826, "pin": "031-45-154" }, "description": "HomePi Homebridge.", "accessories": [{ "accessory": "Air", "apikey": "KLUCZ", "latitude": "xx.xxxxxx", "longitude": "yy.yyyyyy", "name": "DZIELNICA" }, { "accessory": "Air", "apikey": "KLUCZ", "latitude": "xx.xxxxxx", "longitude": "yy.yyyyyy", "name": "MIASTO" } ], "platforms": [{ "platform": "MiAirPurifierPlatform", "deviceCfgs": [{ "type": "MiAirPurifier2", "ip": "192.168.xxx.xxx", "token": "xxx", "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" }] }, { "platform": "WeatherStation", "name": "Pogoda DZIELNICA", "key": "xxx", "location": "pws:XXXXXXXXX", "interval": "4", "forecast": "3days" } ] }
A tak wygląda teraz HomeKit (po lewej po uaktualnieniu homebridge-airly, a po prawej po dodaniu homebridge-weather-station-extended):
Jeśli z jakiegoś powodu macie problemy ze swoim JSON lub chcecie go ładnie sformatować, to polecam skorzystania z tego narzędzia.
Komentarze: 6
Pisałeś ze Xiaomi purifier 2 jest słabszy od pro a teraz jeszcze widzę ze jest coś takiego jak 2s….
Moze coś wiecej napiszesz?
Musisz poszukać, bo nie wiem czym się 2S różni.
Dodane:) dzięki za wpisy. Czekam na kolejne fajne pluginy.
Trochę dziwnie pokazuje w głównym widoku na gorze temperaturę za trzydni a nie aktualna. Ja jak nie mam oczyszczacza to pokazuje za 3 i 2 dni.
Fajny plugin. Świetnie wykonany. A najlepsze jest to, że aplikacja Eve od Elgato zbiera dane historyczne.
Hej. Juz chyba nie działa. Koniec udostępniania kluczy na wunderground.com Może jakis update ?
Użyj tego pluginu
https://www.npmjs.com/package/homebridge-weather-plus
Działa z 4 różnymi źródłami danych :) i zapisuje danych do eve :)