Доброго времени суток, уважаемые хабровчане! Я живу в Ташкенте.

Это замечательный город, но в последние годы у нас появилась серьезная проблема — качество воздуха.
Почему так происходит?
Во-первых, география. Ташкент расположен в своеобразной чаше, в низине между горами. Из-за этого здесь слабая циркуляция воздуха. В холодное время года тяжелый холодный воздух «запирает» весь смог внизу, не давая ему рассеяться. Получается эффект кастрюли, которую накрыли крышкой.
Во-вторых, человеческий фактор. Город окружен плотным кольцом теплиц. С наступлением холодов их нужно отапливать, и в ход идет самое дешевое топливо. К сожалению, это не только уголь, но и, по сообщениям экоактивистов, такой трэш, как старые автомобильные покрышки и промышленные отходы. Весь этот ядовитый дым ветер несет прямиком в городскую «кастрюлю».

В итоге показатели качества воздуха ведут себя непредсказуемо. Утром вы можете видеть на датчиках приемлемый «желтый» уровень, а уже через час город накроет «фиолетовый» смог с пометкой «опасно для здоровья».

Если выйти на прогулку без маски при «красном» уровне загрязнения, одышка появляется даже при подъеме на третий этаж. За годы жизни здесь я выработала для себя систему правил, которая помогает мне беречь здоровье.
Моя «таблица выживания» (AQI US)
Я структурировала рекомендации для себя и своей семьи в зависимости от уровня AQI (Air Quality Index):
Уровень (AQI) |
На улице |
В помещении |
? Хороший |
Можно бегать и гулять. |
Действий не требуется. |
? Умеренный |
Можно гулять. |
Проветривание разрешено. |
? Вредный (гр. риска) |
Нельзя бегать. Нужна маска. |
Прикрыть окна. Включить очиститель. |
? Вредный |
Обязательно носить маску. |
Закрыть все окна. |
? Очень вредный |
Лучше не выходить. |
Очиститель на полную мощность. |
? Опасный |
Категорически не выходить. |
Не жечь свечи/газ (беречь кислород). |
Подробнее об уровнях можно почитать здесь.
Проблема: как не пропустить момент?
Чтобы эта таблица работала, нужно постоянно проверять сайты с данными. Это утомительно. Мне хотелось получать уведомления о смене уровня загрязнения в реальном времени, чтобы сразу закрыть окна или включить фильтр.
Я изучила доступные API:
iqair.com — лидер рынка. Для Ташкента доступно более 10 станций, данные очень подробные.
waqi.info — альтернатива, но для нашего города всего одна станция.
Выбор пал на IQAir. У них отличная документация, и я решила написать свою (готовой не было) интеграционную библиотеку.
Библиотека на C# .NET
Это мой первый опыт создания Open Source библиотеки. Она уже доступна на GitHub и NuGet. При проектировании я старалась сделать её максимально надежной:
Гибкость: Все URL-адреса конфигурируемы.
Расширяемость: Методы внутри HttpClient сделаны виртуальными — вы можете переопределить формирование параметров или валидацию под свои задачи.
Отказоустойчивость: Я интегрировала библиотеку Microsoft.Extensions.Http.Resilience. Теперь запросы не «падают» при кратковременных сбоях сети, а автоматически повторяются.
Сначала я написала простое консольное приложение, которое раз в час опрашивало API.

От консоли к Telegram-боту
Консольное приложение работало на моем ноутбуке, и поначалу этого хватало. Но возник нюанс: ночью, пока я спала с открытым окном, уровень загрязнения мог подскочить до опасного, а я узнавала об этом только утром с головной болью.
Нужен был Telegram-бот. На его написание и последующий рефакторинг у меня ушло около трех недель. Теперь всё просто: бот сам присылает пуш-уведомление, как только статус воздуха меняется.

Что я извлекла из этого двухмесячного приключения:
Бесплатные API — это мощь. Существующих лимитов вполне достаточно для личных нужд и небольших сообществ.
GitHub Actions — любовь. Настроить автоматическую заливку пакета в NuGet оказалось проще, чем я думала.
Автоматизация бережет здоровье. Даже простейший скрипт экономит массу нервов, а в моем случае — помогает легче дышать.
Это мой первый опыт написания Open Source и первая статья на Хабре (я собиралась с духом лет десять!). Буду очень рада вашему фидбеку и советам по коду.
Комментарии (15)

RulenBagdasis
29.12.2025 23:27Но возник нюанс: ночью, пока я спала с открытым окном, уровень загрязнения мог подскочить до опасного, а я узнавала об этом только утром с головной болью. Нужен был Telegram-бот. На его написание и последующий рефакторинг у меня ушло около трех недель. Теперь всё просто: бот сам присылает пуш-уведомление, как только статус воздуха меняется.
Когда в руках молоток, всё вокруг начинает напоминать гвозди. Ночью телефон переходит в режим "не беспокоить" и все ваши уведомления мало полезны. Да и задраить окна такое себе решение проблемы. Вам не телеграм бот нужен, а бризер с HEPA фильтром.

Runaka Автор
29.12.2025 23:27Это Вы правы!
А еще лучше жить там где воздух чист и свеж
RulenBagdasis
29.12.2025 23:27Я вам рассказал о простом и доступном способе резко увеличить качсество жизни прямо сейчас там, где вы живёте. Я не давал никаких оценочных суждений ни вам, ни месту, где вы живёте. Бризер стоит $700 по текущему курсу, а вы убили кучу своего времени и страдаете с открытым окном, вскакивая по ночам. Из чего можно сделать вывод, что вам не ехать, вам шашечки. Эта статья не про качество воздуха, не про здоровье и не про удобство, а про саморекламу и библиотеку. В целом, ничего плохого в этом нет, но стоило об этом сразу написать и уж точно не нужно огрызаться на нормальный совет по делу.


Runaka Автор
29.12.2025 23:27многоуважаемый Рулен, огромное спасибо за Ваш совет.
я обязательно его поищу на местном базаре электроники - Малике.
с наступающим Вас новым годом!
добра, хорошего здоровья Вам и Вашей семье в новом году!

yante
29.12.2025 23:27https://maps.sensor.community/#9/41.1513/69.4628 - а это не ваш датчик стоит?
Я прошу прощения, если нельзя ссылки на чужие ресурсы, но это общемировая карта, у нашего города стоит около 15 датчиков...

yante
29.12.2025 23:27https://sensors.social/#/ipfs/pm10/13/41.3106/69.2918 - вот тут еще пара датчиков у вас...
Anselm_nn
Больше удивился с датчиков за 300 евро, что б отправлять данные в такой проект. Не очень то и хотелось
withkittens
Качественные датчики воздуха стоят дорого.
Как альтернатива есть AirGradient за $125 (или $225 если сертифицированный и откалиброванный), open source.
Anselm_nn
Есть туевские датчики с ndir и лазерным сенсором, они стоят менее $100. Полагаю, что точность вполне достаточна, какая-то экстремальная точность на 100 знаков после запятой это уже бред само по себе. И тем более для задач сервиса с цветовой раскраской
Runaka Автор
Не слышала о таких. Спасибо за информацию.
Вообще то, да охота сделать свою систему измерения качества воздуха с блэкджеком и феечками.
Runaka Автор
Первый комментарий у первый в жизни статьи.
Такое надолго запоминается.
Если посмотреть на названия этих датчиков на карте, то впечатление что это в основном организации. То есть там такие названия: посольство США, 32 школа, заправка Лукойл. Для организаций такие деньги не высокие.
Когда-то давно был сайт народного мониторинга температуры. Как будто сейчас самое то делать сайт народного мониторинга загрязнения воздуха.
С наступающим Вас!