[Lovelace UI] kafelek Airly

@marcinw oraz @mstefanowicz w obu przypadkach same błędy są takie same u Was :slight_smile: i dokładnie się to pokrywa z ostatnim wpisem od MariuszAK z tamtego wątku… więc sugerowałbym dwa razy sprawdzenie zapisu zmiennych, tym bardziej jeżeli piszesz że wracasz do 2022.11 i wszystko działa :slight_smile:

Artur tam ładnie pokazał różnicę w czym problem:
ZMIANA Z:

- platform: mqtt 
  name: "Airly pm10 limit percent"
  state_topic: "node-red/Airly/PM10/limit-percent"
  state_class: measurement
  unit_of_measurement: '%'
  payload_available: "online"
  payload_not_available: "offline"  

NA NOWY FORMAT (cały kod wyżej dl airly)

mqtt:
     sensor:
     
     switch:

     light:

     binary_sensor:

A Twoja stacja udostępnia takie dane jak O2, No2 itp, bo u mnie w promieniu 15 km jest kilka stacji ale żadna takich danych nie mierzy, dopiero 25 km dalej takie dane są ale to za daleko żeby skorzystać. Sprawdź co podaje Twoja stacja i zmodyfikuj flow o nie udostepniane dane.

Kod wklejamy w konsoli ssh wyświeti nam się wszystkie parametry jakie możemy odczytać

curl -X GET \
    --header 'Accept: application/json' \
    --header 'apikey: APIKEY' \
    'https://airapi.airly.eu/v2/measurements/point?lat=LAT&lng=LNG'

APIKEY Twoje API
LAT: LNG: koordynaty

Format danych JS, jeżeli nie mamy podanych parametrów będziemy mieli błędy jak napisał kolega
@MariuszAK trzeba te dane wyłączyć.

Jak odczytać dane JS
Notepad++ doinstalować wtyczkę JSTool

1 polubienie

Albo klikasz na swoją lokalizacje na mapie np https://airly.org/map/pl/#52.407578,20.955928,i20
i patrzysz co taka stacja zapewnia

Wyjaśniło się, moja stacja nie udostępnia tych danych
image
A Twoja te dane podaje z GIOŚ,u
image
Tylko zastanawiam się skąd bierze te dane:

A zobacz tak
sp

hmmm…
image
image

A jak zaznaczysz NO2 to ci pokazuje dane czy masz tak jak w przypadku gdy wybrałeś CO (wyszarzone czyli nie udostępnia).
P.S
A czy Ty w tym flow co pobrałeś to wstawiłeś swoje dane
qws
czy zostawiłeś @murcin z Tychami ?

Ja tam wstawiam swoją prawdziwą lokalizację, i mam ustalony dystans 5km… akurat dla mnie jest o tyle dobrze że punkt odczytu nadajnika jest 500m od mojego domu na pobliskiej szkole,
W eksportowanym flow są jakieś przypadkowe dane (z pewnością nie moje i nie prawdziwe)
czy dane są udostępniane można łatwo w debugerze odnaleźć :slight_smile:

A jaki jest realny zasięg aby te parametry jakościowe miały wpływ na naszą lokalizację ?

Poprawiłem konfig wg. Twoich zaleceń:

mqtt:
  sensor:
    - name: "Airly PM1"
      device_class: pm1
      state_class: measurement
      state_topic: "node-red/Airly/PM1/value"
      payload_available: "online"
      payload_not_available: "offline"

    - name: "Airly PM2.5"
      device_class: pm25
      state_class: measurement
      state_topic: "node-red/Airly/PM25/value"
      payload_available: "online"
      payload_not_available: "offline"
  
    - name: "Airly PM10"
      device_class: pm10
      state_class: measurement
      state_topic: "node-red/Airly/PM10/value"
      payload_available: "online"
      payload_not_available: "offline"
    
    - name: "Airly CAQI"
      device_class: aqi
      state_class: measurement
      icon: mdi:air-filter
      state_topic: "node-red/Airly/CAQI/value"
      payload_available: "online"
      payload_not_available: "offline"
      
    - name: "Airly level"
      state_topic: "node-red/Airly/CAQI/level"
      payload_available: "online"
      payload_not_available: "offline"
    
    - name: "Airly color"
      state_topic: "node-red/Airly/CAQI/color"
      payload_available: "online"
      payload_not_available: "offline"
    
    - name: "Airly description"
      state_topic: "node-red/Airly/CAQI/description"
      payload_available: "online"
      payload_not_available: "offline"
    
    - name: "Airly advice"
      state_topic: "node-red/Airly/CAQI/advice"
      payload_available: "online"
      payload_not_available: "offline"

Po sprawdzeniu konfiguracji mam błąd:

Error loading /config/configuration.yaml: expected ‘’, but found ‘’
in “/config/sensor.yaml”, line 38, column 1 - czyli czepia się pierwszego wpisu mqtt:

A gdzie tą konfigurację umieściłeś , w config.yaml czy w config/mqtt ?

w config/sensor.yaml

Ma być w config.yaml mqtt: !include mqtt.yaml
tworzysz nowy mqtt.yaml i potem w nim już cały kod w postaci

sensor:
  - name: MQTT Broker Health
    unique_id: mqtt_broker_health
    state_topic: mqtt-broker/health  # dummy queue
    
    

  - name: "Airly color"
    state_topic: "node-red/Airly/CAQI/color"
    payload_available: "online"
    payload_not_available: "offline"

  - name: "Airly description"
    state_topic: "node-red/Airly/CAQI/description"
    payload_available: "online"
    payload_not_available: "offline"
2 polubienia

Wszystkie gazy mam wyszarzone, oczywiście że wstawiłem swoje dane, pokazuje mi id mojej stacji.

Masz tak jak ta stacja ?
https://airly.org/map/pl/#52.264694,20.964611,i7755
Jeśli tak to takie stacje na mapie to te, które teraz są w remoncie, mają awarię albo są w konserwacji. Sprawdź na innej najbliższej twojej lokalizacji.

To ciężko odpowiedzieć, zależy od odległości emitora/emitorów, kierunku i siły wiatru, ukształtowania terenu itd, miasto czy mała miejscowość, zobacz tu nawet w obebie ulic są różne dane https://airly.org/map/pl/#52.394522,20.942054,i101796
P.S. można to obliczyć :slight_smile:

1 polubienie

Ja już wiem co jest nie tak.
Staje AIRLY bynajmniej ta obok mnie nie podają danych gazów, natomiast stacje GIOŚ je podają. Mam kilka stacji GIOŚ w mieście i one te dane mają:
Źródło danych jest GIOŚ
image

Ostatnio zaciekawił mnie fakt że wartość ozonu O3 wynosi 0 a wartość procentowa jednak pewna wartość…
okazuje się że wartości procentowej nie można wprowadzić po sztywnym adresie:

return { payload: msg.payload.current.standards[2].percent.toFixed(0) };

ponieważ wartość 2 (standards[2]) nie jest wartością sztywną… dlatego dla innych parametrów jest zrobiona piękna pętla FOR z kontrolą zmiennej nazwy… no i tak trzeba było zrozumieć działanie tego kto to zrobił i udało mi się przerobić też wartości procentowe na prawidłowo pobierane, poniżej pełny flow do pobrania
flows.json (19,3 KB)
a tutaj tylko wkładka do wklejenia (oczywiście działa dla PM10 oraz PM25

var name = 'PM10';
var value = null;

msg.payload.current.standards.forEach(function (measurment, index) {
    if (measurment.pollutant == name) {
        value = measurment.percent.toFixed(0);
    }
});

return { payload: value };

Gdzie szukać problemu w różnicy między Dasboardem Airly w HA a tym ze strony jeśli chodzi o wskazania P2.5 oraz PM10:
image

Lokalizacja wpisana poprawnie.

może w częstotliwości odświeżania (jesli sensory są poprawnie skonfigurowane)


a tu airly
airly