trekawek / air-quality-info

An attractive way to display air quality in your neighbourhood.
Other
49 stars 16 forks source link

Format danych #53

Closed yanoosh closed 3 years ago

yanoosh commented 3 years ago

Jakie dane należy wysłać i w jakim formacie aby pojawiły się na stronie?

Mam wszystko spięte za pośrednictwem Home Assistanta i chciałbym tylko przesłać dane ale pomimo wielu prób nie udało się zaktualizować danych czujnika. W otrzymanych jsonach pojawią się przesłane dane ale żadne zapytanie nie zostało poprawnie sparsowane.

https://aqi.eco/device/1897

trekawek commented 3 years ago

Serwis wspiera JSONy w formacie Nettigo Air Monitor / sensor.community. Przykład poprawnego JSONa:

{
   "esp8266id":"11223344",
   "software_version":"NAMF-2020-35",
   "sensordatavalues":[
      {
         "value_type":"SDS_P1",
         "value":"15.23"
      },
      {
         "value_type":"SDS_P2",
         "value":"10.17"
      },
      {
         "value_type":"BME280_temperature",
         "value":"6.89"
      },
      {
         "value_type":"BME280_humidity",
         "value":"78.43"
      },
      {
         "value_type":"BME280_pressure",
         "value":"98920.23"
      },
      {
         "value_type":"HECA_temperature",
         "value":"20.20"
      },
      {
         "value_type":"HECA_humidity",
         "value":"33.14"
      },
      {
         "value_type":"samples",
         "value":"122648"
      },
      {
         "value_type":"min_micro",
         "value":"1104"
      },
      {
         "value_type":"max_micro",
         "value":"116416"
      },
      {
         "value_type":"signal",
         "value":"-51"
      }
   ]
}

Pola samples, min_micro, max_micro, signal są ignorowane. Pozostałe pola zawierają wskazania dot. temperatury i jakości powietrza. Nazwy tych pól określają nie tylko rodzaj pomiaru, ale też rodzaj czujnika, np. BME280_temperature lub SDS_P1. Lista wspieranych nazw pól dostępna jest tu: https://github.com/trekawek/air-quality-info/blob/5be9fe918d1b85ec47bc6fb4a7d218cd9fdfa05c/src/htdocs/model/updater.php#L6-L27

Myślę, że minimalny JSON który powinien działać wyglądałby tak:

{
   "esp8266id":"57869435",
   "sensordatavalues":[
      {
         "value_type":"SDS_P1",
         "value":"34.4"
      },
      {
         "value_type":"SDS_P2",
         "value":"22.5"
      }
   ]
}

(jeśli używany jest inny czujnik, to może to być równie dobrze PMS_P1 lub SPS30_P1, itd.