Kontynuując temat z poprzednich wpisów dotyczących integracji systemów automatyki z systemem monitorowania jakości oraz poziomu zanieczyszczenia powietrza Airly przyszedł‚ i czas na wdrożenie funkcjonalności w HomeAssistant 😀 w tym krótkim wpisie postaram się pokrótce to przedstawić i opisać. Przechodzimy zatem do szczegółów…
Aby móc sczytywać informacje z serwisu Airly, potrzebne jest konto, jeśli jeszcze takowego nie mamy zakładamy je tutaj po rejestracji i zalogowaniu dostaniemy klucz API tj.:
Następnie musimy określić swoje położenie celem zlokalizowania najbliższej czujki. Wchodzimy więc na mapy, gdzie wpisujemy adres lub klikamy zlokalizuj mnie. Zostaną wyświetlone punkty czujek dostępne w określonym położeniu, po czym wybieramy najbliższy czujnik, klikając w niego – otrzymamy taki widok:
Wskazany sensor pokazuje pomiar na żywo, a klikając w pasek URL przeglądarki dostajemy wswpółrzędne geograficzne – kolejno szerokość i długość (patrz. na screen zaznaczenie kolorem czerwonym). Zapisujemy współrzędne czujnika Airly, które będziemy potrzebować w następnym kroku, w moim przykładzie jest to szerokość: 52.16471 i długość: 21.08311.
Dalej przechodzimy do zdefiniowania sensora HA, który będzie komunikował się z serwisem Airly pobierając wartości pogodowe z najbliżej zlokalizowanego czujnika względnem podanego położenie (krok wcześniejszy). Będzie to możliwe dzięki Airly API, które udostępnia szereg operacji wokół‚ zasobów, m. in. /v2/measurements/nearest zasobu zwracającego pomiary dla instalacji najbliżej określonej lokalizacji. Tworzymy zatem taki sensor dodając go do pliku configuration.yaml:
sensor: - platform: rest scan_interval: 900 name: Airly resource: https://airapi.airly.eu/v2/measurements/nearest?lat=49.72347&lng=22.04834&maxDistanceKM=5 value_template: "{{ value_json['current']['values'][0]['value'] }} {{ value_json['current']['values'][1]['value'] }} {{ value_json['current']['values'][2]['value'] }} {{ value_json['current']['values'][3]['value'] }} {{ value_json['current']['values'][4]['value'] }} {{ value_json['current']['values'][5]['value'] }} {{ value_json['current']['indexes'][0]['level'] }} {{ value_json['current']['indexes'][0]['value'] }} {{ value_json['current']['indexes'][0]['description'] }}" headers: apikey: API_AIRLY Accept-Language: pl
Komponent rest z platformy sensor zawiera klucz resource czyli adres czujnika Airly, który musimy przestawić: https://airapi.airly.eu/v2/measurements/nearest?lat=49.72347&lng=22.04834&maxDistanceKM=5
- lat= czyli szerokość geograficzna zmieniamy na wcześniej zapisane współrzędne czujnika (patrz wyżej)
- lng= długość geograficzna zmieniamy na wcześniej zapisane współrzędne (patrz wyżej)
- maxDistanceKM= określa limit odległości w kilometrach w jakiej od określonego punktu geograficznego znajdują się instalacje czujników.
Poza tym zamieniamy jeszcze wartość API_AIRLY klucza apikey – (patrz pierwszy screen – Twój klucz API).
Następnie konfigurując template sensor tworzymy konkretne sensory, jakie mają być:
- platform: template sensors: airly_pm1: friendly_name: "Pył PM1" icon_template: mdi:jquery unit_of_measurement: "μg/m3" value_template: "{{ states.sensor.airly.state.split(' ')[0] }}" airly_pm25: friendly_name: "Pył PM25" icon_template: mdi:jquery unit_of_measurement: "μg/m3" value_template: "{{ states.sensor.airly.state.split(' ')[1] }}" airly_pm10: friendly_name: "Pył PM10" icon_template: mdi:jquery unit_of_measurement: "μg/m3" value_template: "{{ states.sensor.airly.state.split(' ')[2] }}" airly_pressure: friendly_name: "Ciśnienie" icon_template: mdi:gauge unit_of_measurement: "hPA" value_template: "{{ states.sensor.airly.state.split(' ')[3] | float | round(1) }}" airly_humidity: friendly_name: "Wilgotność" icon_template: mdi:water-percent unit_of_measurement: "%" value_template: "{{ states.sensor.airly.state.split(' ')[4] | float | round(0) }}" airly_temperature: friendly_name: "Temperatura" icon_template: mdi:thermometer unit_of_measurement: "°C" value_template: "{{ states.sensor.airly.state.split(' ')[5] | float | round(1) }}" airly_quality: friendly_name: "Jakość powietrza" icon_template: mdi:quicktime value_template: "{{ states.sensor.airly.state.split(' ')[6] }}" airly_level: friendly_name: "Poziom" icon_template: mdi:database value_template: "{{ states.sensor.airly.state.split(' ')[7] | float | round(0) }}" airly_description: friendly_name: "Komunikat" icon_template: mdi:alert value_template: "{{ states.sensor.airly.state.split(' ')[8:] | join(' ') }}"
Pozostaje stworzenie zakładki oraz widoku w interfejsie poprzez group wpisując w pliku groups.yaml:
pogoda: name: 'Pogoda' view: yes icon: mdi:cloud entities: - group.airly airly: name: 'Stacja pogoda Airly' entities: - sensor.airly_quality - sensor.airly_level - sensor.airly_description - sensor.airly_temperature - sensor.airly_humidity - sensor.airly_pressure - sensor.airly_pm1 - sensor.airly_pm25 - sensor.airly_pm10
Natomiast jeśli korzystamy z Lovelace UI do pliku ui-lovelace.yaml dodajemy poniższy wpis:
- icon: mdi:cloud id: pogoda title: 'Pogoda' cards: - type: vertical-stack cards: - type: entities title: 'Stacja pogody Airly' entities: - entity: sensor.airly_quality - entity: sensor.airly_level - entity: sensor.airly_description - entity: sensor.airly_temperature - entity: sensor.airly_humidity - entity: sensor.airly_pressure - entity: sensor.airly_pm1 - entity: sensor.airly_pm25 - entity: sensor.airly_pm10
Przeładowujemy konfigurację i wchodząc na HA poprzez WWW uzyskujemy taki o to efekt 🙂
To by było na tyle. Jeśli coś jest niezrozumiałe lub macie jakieś pytania dawać znać, postaram się pomóc.
Instrukcja przygotowana przez: krl
Dzięki @krl – b.dobra instrukcja
Konfiguracje mają błędne formatowanie przez co nie działa. Mam także problem z ui-lovelace.yaml. Prośba o podesłanie całego pliku 🙂
Tutaj poprawiona wersja dla configuration.yaml ( https://pastebin.com/raw/tX5GSA7P )
@mlerczak jeśli chodzi i post na głównej masz rację patrząc na zawartość plików yaml widać okiem, że formatowanie jest rozjechane (gdzieniegdzie za dużo spacji) tam jednak post umieszczał @adrian i zapewne gdy go wrzucał schemat plików się zepsuł. W tym samym wątku na forum w dziale Systemy do sterowania automatyką, kategoria Home Assistant sprawdzałem i powinno być dobrze obecnie jestem na wyjeździe jak znajdę więcej czasu wrzucę całe pliki do pobrania.
Spoko, jest od Mateusza. Dzięki za materiał. BTW, „Jakość Powietrza VERY_LOW", a 2 linie niżej … „Wspaniałe Powoietrze!".
https://drive.google.com/file/d/1J2Q73rcLpahj3JqQlZczkxVkoFbgicSe/view?usp=sharing
Czy można zrobić coś podobnego dla czujników SYNGEOS??
https://panel.syngeos.pl/sensor/pm10?device=326
https://pastebin.com/rVC08FGU – kod
https://ibb.co/5nTfkWV – zdjęcie
hmmm. Wydaje mi się że wszystko zrobiłem zgodnie z instrukcją, i pojawiły mi się sensory, ale niestety brak jakichkolwiek danych. Widzicie może gdzieś błąd w konfiguracji ?
Airly jest od najnowszej wersji HA wspierane „natywnie. Bez konfiguracji pojawia się tylko wynik z pm1 nie ma pm 2.5 oraz pm 10 pozostałe dane są.
Czy jest szansa na podobny przewodnik tylko z dodaniem LookO2?
@mateuszoblucki https://github.com/PiotrMachowski/Home-Assistant-custom-components-Looko2
@adrian Jest, ale mnie osobiście to przerasta… mam HACS, zainstalowałem aplikację… i co dalej?
Dodaje do configuration.yaml linie z przykładem (z podlinkowanej strony). Zmieniam tylko stację i api (i tu pytanie jak powinna wyglądać linia !secret look2.api_key jako ciąg znaków tylko, czy powinno zostać .api_key?). Po zapisaniu dostaje komunikat „Platform error sensor.looko2 – Exception importing custom_components.looko2.sensor"
Czy trzeba stworzyć jeszcze jakiś plik i gdzie?
Niestety chyba potrzebuje obrazkowej instrukcji for dummies…
@mateuszoblucki a to goole wyłączyli?
tysiące filmów na yt w wielu językach.
@wenar Bardzo proszę, napisz mi jak zadać pytanie w google, aby dowiedzieć się jak skonfigurować Looko2 w Home assistant. Jakoś te tysiące filmów gdzieś mi się chowają… ale może to przez wiele języków.
PS. Dziękuje za pomoc.
@nuvem po zrobieniu czegokolwiek w hacs należy zrobić restart.
uzyj instrukcji.
https://github.com/PiotrMachowski/Home-Assistant-custom-components-Looko2
„reszta sama się dzieje"
i to pomocne
https://looko2.pl/aktualnosci/instrukcja-dla-looko2-v4/
reszta to tez czytanie ze zrozumieniem i własna inicjatywa.
@wenar Dziękuje. Bardzo mi pomogłeś.
Tak, głupi jestem, czytać nie umiem i dlatego się pytam. Tylko, że dyskusja typu „nie wiem, ale się wypowiem" nie ma sensu, tym bardzie że nie do końca jest na temat opisanego artykułu. Idę sobie pooglądać tysiące poradników na youtubie.
@nuvem przeczytałem ich instrukcję, żeby spróbować to u siebie skonfigurować, ale natrafiłem na pkt. że mam do nich napisać maila, żeby mi łaskawie klucz dali (albo nie) – trochę to jakaś amatorszczyzna z ich strony i nie chce mi się do nich pisać po klucz. Jak chcesz to możesz mi wysłać na priv swój i potestuje u siebie i jak wykminię co i jak to dam Ci znać.
pzdr.a
@nuvem daje znać, że na podstawie klucza, który podesłałeś mi, to coś z tym zrobimy, ale zrobimy to po mojemu (pewnie) nie jak w tym gitHub. Przy kawce teraz odczytałem dane z Twojego czujnika.
To czego nie dostaniesz to danych historycznych. Tylko ostatni odczyt. Nie widzę możliwości zadania „pytania" o dane z przeszłości.
Usunąłem z tego poniżej Twój ID Czujnika, klucz, nazwę i lokalizację, żeby nie było publicznie tutaj..
Pzdr.a
nie znam, nie uzywam HA
ja to całe
zamieniłbym na klucz,
jak nie działałoby to w drugiej kolejności dałbym ten api key w apostrofy ’klucz’ ale nie wiem sam, bo to jakoś nie jest spójne w HA wg mnie, czasami z " czasami bez