Передача рівня забрудненості повітря на публічну карту

Передача рівня забрудненості дрібнодисперсійним пилом PM2.5 (разом із PM1, PM10) на публічну карту sensor.community.

Повна шлях даних:

Метеостанція (домашня) із лазерним давачем PMS7003 Plantower -> ESPHome (домашня) -> Home Assistant (домашній) -> sensor.community | luftdaten.info -> SaveEcoBot.

Формуємо JSON із даними:

{
    "software_version": "UAID",
    "sensordatavalues":[
        {"value_type":"P0", "value":"15"},
        {"value_type":"P2", "value":"9"},
        {"value_type":"P1", "value":"25"},
        {"value_type":"temperature", "value":"-2"},
        {"value_type":"humidity", "value":"80"},
        {"value_type":"pressure_sealevel", "value":"777"}
    ]
}

Сформований JSON передаємо у POST на

https://api.sensor.community/v1/push-sensor-data/

Додаємо потрібні заголовки:

Content-Type: application/json 
X-Pin: 1 
X-Sensor: esp32-123456

У configuration.yaml додаємо RESTful Command.

rest_command:
  sensor_community_pm:
    url: "https://api.sensor.community/v1/push-sensor-data/"
    method: post
    content_type: "application/json"
    headers:
      X-Pin: 1 
      X-Sensor: esp32-123456
    payload: '{"software_version": "UAID","sensordatavalues":[{"value_type":"P0","value":"{{ pm1 }}"},{"value_type":"P2","value":"{{ pm25 }}"},{"value_type":"P1","value":"{{ pm10 }}"}]}'

і додаємо у automations.yaml відправку даних кожні 5 хвилин.

- id: 'community_pm'
  alias: "sensor_community відправка PM"
  triggers:
    - platform: time_pattern
      minutes: "/5"
  actions:
    - action: rest_command.sensor_community_pm
      data:
        pm1: "{{ states('sensor.meteo_pm1') }}"
        pm25: "{{ states('sensor.meteo_pm2_5') }}"
        pm10: "{{ states('sensor.meteo_pm10') }}"
        temp: "{{ states('sensor.meteo_temp') }}"
        humi: "{{ states('sensor.meteo_hum') }}"
        press: "{{ states('sensor.meteo_pressure') }}"

Тепер дані доступні онлайн.

Дані беруться із метеостанції:

Метеостанція Modbus

Інформація для цитування:

Юрій Р. 0009-0005-3702-9223. (2025). Передача рівня забрудненості повітря на публічну карту. Блог UA ID. Взято з: https://blog.uaid.net.ua/air-pollution-public

Використання фотографій або текстового контенту на інших ресурсах без клікабельного індексованого посилання заборонено.