Категории

Умные уведомления без MQTT: как отправлять алерты через MySQL

15.01.2026 | Статья из категории: IOT умный дом

В моей самописной IoT-системе все MQTT-топики дублируются в MySQL. Это удобно: есть история, можно строить графики, делать аналитику. Но возник вопрос: как отправлять уведомления (например, на почту) при срабатывании датчиков — не плодя кучу скриптов под каждый случай?

Решение, которое я сейчас тестирую, оказалось простым, надёжным и легко расширяемым.

Идея: «невидимый» топик в базе данных

Поскольку вся телеметрия уже попадает в таблицу sensor_data, почему бы не использовать её же и для уведомлений?

Я завёл специальный «служебный» топик:

zigbee2mqtt/_alerts/email

Он не отображается в интерфейсе (потому что начинается с подчёркивания), но в него можно писать любые сообщения. А отдельный скрипт раз в несколько минут проверяет, появились ли там новые записи — и отправляет их на почту.

Как это работает

  1. Твоя логика (в коде, триггере или правиле) обнаруживает событие: протечка, низкая батарейка, перегрев.
  2. Вместо того чтобы вызывать SMTP напрямую, она просто делает INSERT в sensor_data:
INSERT INTO sensor_data (topic, value)
VALUES ('zigbee2mqtt/_alerts/email', '{"subject":"Протечка!","body":"Вода в ванной!"}');
  1. Раз в 2 минуты запускается универсальный скрипт на Python. Он:
    • читает все записи из zigbee2mqtt/_alerts/email,
    • отправляет email,
    • удаляет (или помечает) обработанные записи.

Всё. Никаких MQTT-подписок, никаких костылей под каждый датчик.

Преимущества подхода

Совет: Если боишься спама — добавь в JSON поле "to" или ограничь частоту срабатывания на уровне логики.

Что дальше?

Пока у меня всё работает через локальный sendmail, но в будущем планирую:

А вы как решаете задачу уведомлений в своих IoT-проектах? Пишите в комментарии — интересно сравнить подходы.


P.S. Код скрипта и примеры SQL/Python — в следующей части. Следите за обновлениями!

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

← Назад к списку статей

Посетителей сегодня: 0


кто я | о блоге

© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA