Передача рівня забрудненості дрібнодисперсійним пилом 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') }}"
Тепер дані доступні онлайн.
Дані беруться із метеостанції:
Інформація для цитування:
Юрій Р. ◯ 0009-0005-3702-9223. (2025). Передача рівня забрудненості повітря на публічну карту. Блог UA ID. Взято з: https://blog.uaid.net.ua/air-pollution-public
Використання фотографій або текстового контенту на інших ресурсах без клікабельного індексованого посилання заборонено.
