OpenHab3: Czy i jak...
 
Powiadomienia
Wyczyść wszystko

UWAGAStrona oraz Forum Smart'ny Dom nie będzie dostępne 23 Grudnia 2024 ze względu na przenoszenie serwisu na mocniejszą maszynę.

W tym czasie polecam poświęcenie swojego czasu na pomoc partnerowi w przygotowaniu udanych Świąt 😉

Za niedogodności z góry przepraszam, admin

Kontakt

OpenHab3: Czy i jak uruchomiliście może Airly?

24 Wpisów
5 Użytkownicy
6 Reactions
3,017 Wyświetleń
(@edass)
Wpisów: 216
Weteran
Autor tematu
 

Czy i jak uruchomiliście może Airly w OH3? 

 

----------EDIT----------

Problem rozwiązany - w załączniku przesyłam gotowy konfig pod OH3 (things, items, sitemap) dla dwóch rodzajów czujników (całość jest w jednym konfigu - kopiujesz to co Ci jest potrzebne):

1. Airly - okrągłe punkty na mapie Airly

2. GIOŚ (główny inspektorat ochrony środowiska) - kwadratowe punkty na mapie Airly.

Wystarczy w pliku THINGS wstawić swoje API oraz ID stacji z jakiej chcemy odczyty.

 

W załączniku są zdjęcia jak to wygląda na telefonie.

 

1609755817431
 1609755817436
 
Dodane : 30/12/2020 12:09 pm
adrian
(@adrian)
Wpisów: 4038
Szefu Admin Zasłużony dla Forum, Patron Strony
 

@edass też mi nie działało

Zrobiłem przez OH3 UI, a później po plikach konfiguracyjnych, kluczowa była transformacja u mnie

Problem

  • Było: JSONPATH($.current.values[?(@.name=='PM25')].value)
  • Rozwiążanie: JSONPATH:$.current.values[?(@.name=='PM25')].value

Daje przykład na Thing zdefiniowanym w pliku

Thing http:url:airly "Airly: bridge" [ baseURL="http://192.168.2.146:8080/static/airly/airly-data.json", refresh=60] {
   Channels:
Type number:pm25 "PM2.5" [ stateTransformation="JSONPATH:$.current.values[?(@.name=='PM25')].value" ]
Type string:desc "Desc" [ stateTransformation="JSONPATH:$.current.indexes[?(@.name=='AIRLY_CAQI')].description"]
}
Items:
Number airly_pm25_who "PM2.5 [%.1f %%]" <air_pm25> {channel="http:url:airly:pm25"}
String airly_quality_description  "Opis [%s]" <air_caqi> {channel="http:url:airly:desc"}

 

Problem

  • Było: JSONPATH($.current.values[?(@.name=='PM25')].value)
  • Rozwiążanie: JSONPATH:$.current.values[?(@.name=='PM25')].value

 

 

 
Dodane : 30/12/2020 9:45 pm
(@edass)
Wpisów: 216
Weteran
Autor tematu
 

Ok - widzę różnice ale nie rozumiem do końca definicji things -  gdzie podajesz klucz api ? Adres http:// masz lokalny ? Najpierw pobierasz te dane czy jak? 

W starej wersji bindingu adres był taki:

https://airapi.airly.eu/v2/measurements/installation?installationId=1234&apikey=aaaaaaaaaaaaaaaaaaaaaaaa

 

 

BTW

Nie wiem czy wiecie ale można sobie do OH wrzucić bezpośrednio taki widget bez api:

<!-- Airly Widget Begin -->
<script src="https://airly.org/map/airly.js" type="text/javascript"></script>
<iframe id="airly_1682790756" src="https://airly.org/map/widget.html#w=280&h=380&m=true&i=true&d=false&ah=true&aw=false&l=pl&us=metric&ut=celsius&lat=51.067439&lng=19.448694&id=53" style="width:280px; height:auto;border:none;"></iframe>
<!-- Airly Widget End -->

 

 

 

 
Dodane : 31/12/2020 4:26 pm
adrian
(@adrian)
Wpisów: 4038
Szefu Admin Zasłużony dla Forum, Patron Strony
 

 

Tak jak sobie linux'owym cron ściągam dane, a później czytam lokalnie.

zamiast mojego url: http://192.168.2.146:8080/static/airly/airly-data.json

wprowadź swój: https://airapi.airly.eu/v2/measurements/installation?installationId=1234&apikey=aaaaaaaaaaaaaaaaaaaaaaaa

tylko ustaw odpowiedni interwał: 60 sekund to Ci zeżre dzienny limit dość szybko

 
Dodane : 31/12/2020 5:49 pm
(@edass)
Wpisów: 216
Weteran
Autor tematu
 

@adrian

Dzięki już udało mi się odczytać kilka wskaźników z airly. Jak skończę to podzielę się things i items ( wyciągam wszytko co się da).

Mam jeszcze pytanie - co daje "Twój" sposób pobierania danych z airly? 

 
Dodane : 01/01/2021 10:58 pm
adrian
(@adrian)
Wpisów: 4038
Szefu Admin Zasłużony dla Forum, Patron Strony
 

Kiedyś miałem problem, żeby dostawać odpowiedź z serwera airly w rodzimym języku i rozwiązałem sobie ten problem

  • ściągając dane bezpośrednio na serwer OH a później
  • serwer OH odczytuje lokalną wersję

 

 
Dodane : 01/01/2021 11:14 pm
(@edass)
Wpisów: 216
Weteran
Autor tematu
 

Już rozumiem o co Ci chodzi - komunikaty zaciągają się po angielsku ( patrz zdjęcie).

 

Znalazłem w dokumentacji Airly c coś takiego ale nie mam pojęcia jak to zastosować - nie znam html 🙁 :

 

Język

Niektóre operacje API zwracają wartości opisowe, np. tekstowy opis aktualnej jakości powietrza. Teksty te zwracane są w odpowiednim języku wedle preferencji użytkownika.

Aby wybrać język API należy przesłać w zapytaniu nagłówek Accept-Language, z odpowiednią wartością.

Aktualnie wspierany jest język angielski ("en" - domyślny) oraz polski ("pl").

 

 airly en
 
Dodane : 02/01/2021 5:11 pm
adrian
(@adrian)
Wpisów: 4038
Szefu Admin Zasłużony dla Forum, Patron Strony
 

w OH3 widziałem, że da się już wstrzyknąć te dodatkowe parametry - jutro będę już u siebie instalował "produkcyjnie" OH3 wiec podeślę Ci jak to zrobić

 
Dodane : 02/01/2021 6:41 pm
(@edass)
Wpisów: 216
Weteran
Autor tematu
 

Ja robię migracje na żywo 😉 - nie jest źle . Większość urządzeń zadziałała bez problemu.

 

Przygotowałem wstępnie things, items i sitemap dla Airly z dwóch czujników tj. Airly (na mapie airly zaznaczone kółkiem oraz z GIOŚ zaznaczone na mapie airly kwadratem - dają dodatkowe pomiary NO2,O3,SO2,CO).

Wystarczy wpisać swoje API oraz ID punktu pomiarowego. 

Całość bazuje na plikach @adriana z przykładu na stronie głównej. 

 

 

 

airly en
 airly airly
 
Dodane : 02/01/2021 7:51 pm
adrian
(@adrian)
Wpisów: 4038
Szefu Admin Zasłużony dla Forum, Patron Strony
 

@edass dzięki za przygotowany przykład z konwersjami json'a 

Zobacz czy taki kawałek nie da Ci zwrotki w PL

Thing http:url:airly "Airly: bridge" [ baseURL="https://airapi.airly.eu/v2/measurements/installation?installationId=7796{Accept=application/json&Accept-Language:pl&apikey=TWOJE_API}", refresh=600]

 

U mnie sąsiedzi załadowali stare buty i opony do kopciuchów i trzysta % już ba zegarach

 
Dodane : 02/01/2021 10:26 pm
(@edass)
Wpisów: 216
Weteran
Autor tematu
 

Fajnych masz "somsiaduf" 😉 . Moi założyli piec gazowy ale kopciucha sobie zostawili tak na wszelki wypadek . Raz na kilka dni odpalają go "dla przypomnienia" jak się pali...

 

Wracając do Airly - niestety ten link nie działa (podstawiłem swoje API) - to jest odpowiedź:

{"message":"UNAUTHORIZED"}
 
Dodane : 03/01/2021 12:13 pm
pav3ll
(@pav3ll)
Wpisów: 7
Bywalec
 

Nie znam sposobu na dodanie parametru headera "Accept-Language=pl" bezposrednio w adresie url ale sprobuje pomoc.
Na ten moment widze 2 opcje
1. Propozycja od @adrian czyli w pierwszej kolejnosci pobieramy dane na serwer curlem, nastepnie OH dostaje dane z lokalnego adresu.
2. Dodanie parametru headers w things, sprawdzone i poki co nie widze problemow:
Thing http:url:airly "Airly: bridge" [ baseURL="https://airapi.airly.eu/v2/measurements/installation?installationId=7796&apikey=TWOJE_API}", refresh=600, headers="Accept-Language=pl"]

Parametr opisany w dokumentacji -> https://www.openhab.org/addons/bindings/http/

 
Dodane : 03/01/2021 10:31 pm
edass reacted
adrian
(@adrian)
Wpisów: 4038
Szefu Admin Zasłużony dla Forum, Patron Strony
 

@pav3ll w tym opisie, w przykładzie podawali parametry header'a w url - ale teraz widzę ze to chyba HTTP binding 1

Ja u siebie ściągam co 15 cron'em

curl -s -X GET --header 'Accept: application/json' --header 'Accept-Language: pl' --header 'apikey: MOJ_KEY' 'https://airapi.airly.eu/v2/measurements/installation?installationId=6166' -o /etc/openhab/html/airly/airly-data.json
 
a Things mam użyty adres ściągniętego pliki
http://192.168.2.146:8080/static/airly/airly-data.json 

alternatywa można parametry header'a wprowadzić w definicji Thing przez UI

 

 
Dodane : 03/01/2021 11:39 pm
edass reacted
(@edass)
Wpisów: 216
Weteran
Autor tematu
 
Dodane przez: @pav3ll

Nie znam sposobu na dodanie parametru headera "Accept-Language=pl" bezposrednio w adresie url ale sprobuje pomoc.
Na ten moment widze 2 opcje
1. Propozycja od @adrian czyli w pierwszej kolejnosci pobieramy dane na serwer curlem, nastepnie OH dostaje dane z lokalnego adresu.
2. Dodanie parametru headers w things, sprawdzone i poki co nie widze problemow:
Thing http:url:airly "Airly: bridge" [ baseURL="https://airapi.airly.eu/v2/measurements/installation?installationId=7796&apikey=TWOJE_API}", refresh=600, headers="Accept-Language=pl"]

Parametr opisany w dokumentacji -> https://www.openhab.org/addons/bindings/http/

Dzięki DZIAŁA!

Thing http:url:airly "Airly: bridge" [ baseURL="https://airapi.airly.eu/v2/measurements/installation?installationId=XXX&apikey=TWOJE_API}", refresh=900, headers="Accept-Language=pl"]

 

@all

W pierwszym poście dodałem gotowe pliki konfiguracyjne - wystarczy wpisać API oraz ID stacji pomiarowej.

Miło by było jakby ktoś trochę uatrakcyjnił wygląd tej sitemapy i podzielił się z nami swoją twórczością.

 
Dodane : 04/01/2021 10:54 am
pav3ll
(@pav3ll)
Wpisów: 7
Bywalec
 

@edass próbowałem, jak dobrze pamiętam przeszkadzały mi ograniczenia w samym basicui i porzuciłem sitemapy na rzecz habpanelu. Polecam prezentowanie wyników w Grafanie. Ewewntualnie Element Type 'Webview' w basicui/habpanel + url kiosk-display z Grafany

 
Dodane : 04/01/2021 11:53 am
adrian reacted
(@edass)
Wpisów: 216
Weteran
Autor tematu
 

@pav3ll

Nad habpanelem zastanawiam się już ponad rok ale nie mam czasu się tym zająć - cienki jestem z programowania i musiałbym się wszystkiego uczyć... Wole zamiast tego dołożyć coś nowego "SMART" w domu.

 
Dodane : 05/01/2021 12:38 pm
pav3ll
(@pav3ll)
Wpisów: 7
Bywalec
 

@edass

W zasadzie nie widzę tutaj za wiele programowania, habpanel pobiera dane z konfiguracji items, things, scripts etc.
Kwestia wyklikania potrzebnych widgetów i dostosowania wyglądu do swoich potrzeb. Do grafany wystarczy podłączyć bazę influxdb i od razu możemy prezentować wyniki na wykresach. Konfiguracja jest dość intuicyjna, nie powinna sprawiać większych kłopotów. Załączam screeny jak to wygląda przykładowo u mnie, wydaję mi się, że nie najgorzej ale wiadomo, każdy ma swój gust ;] Oczywiście cały czas rozwijam/ulepszam swoje zabawki pod względem wydajności i estetyki. Na zdjęciach jest prezentowanie wyników z airly w grafanie oraz pilot do androidtv (box).

 airly grafana
 
Dodane : 21/01/2021 11:25 am
pav3ll
(@pav3ll)
Wpisów: 7
Bywalec
 

@edass
+ androidtv

 androidtv habpanel
 
Dodane : 21/01/2021 11:26 am
(@edass)
Wpisów: 216
Weteran
Autor tematu
 

@pav3ll

Super to u Ciebie wygląda . Muszę nad tym popracować ale w ostatnim tygodniu nie miałem nawet czasu włączyć kompa... 

Jak sterujesz Android TV ? Mam mibox3 oraz Amazon fire tv stick i nie wiem jak się za nie zabrać ------ doczytałem w innym wątku. 

 
Dodane : 21/01/2021 9:05 pm
(@goofas)
Wpisów: 29
Praktykant
 

przepraszam, że odkopuję wpis po latach ale mam problem z językiem pl w OH3

mianowicie mam tak :

Thing http:url:airly "Airly: bridge" [ baseURL="https://airapi.airly.eu/v2/measurements/installation?installationId=2368&apikey=API", refresh=900, headers="Accept-Language=pl"]
ale w OH3 nadal wpisy w EN o dziwo jak wklejam link w przeglądarkę opisy są po naszemu i nigdzie nie widzę napisów po angielsku co mnie zdziwiło tym bardziej. Idzie to jakoś rozwiązać ?
 
Dodane : 03/12/2022 2:12 pm
Strona 1 / 2
Udostępnij: