Раньше в системе было только поле last_triggered — время последнего срабатывания правила. Но этого недостаточно для отладки: непонятно, сколько раз правило сработало, какие команды отправлялись и когда.
Что сделано
- Создана таблица
automation_logв базе данных:rule_id,rule_name— какое правило сработалоaction_topic,action_payload— какая команда была отправленаtriggered_at— точное время срабатыванияskipped— флаг: реально отправлена команда или пропущена (устройство уже в нужном состоянии)reason— причина пропуска (если есть)
- Добавлена функция
logAutomationEvent()вmqtt_listener.php, которая записывает событие при каждом срабатывании правила. - Журнал обновляется как при успешной отправке команды, так и при её пропуске — это помогает понять, почему автоматизация «молчит».
- Создана простая веб-страница /admin/automation_log.php для просмотра истории срабатываний.
Как использовать
Теперь можно:
- Проверить, действительно ли сработало расписание (например, включение света в 22:10).
- Увидеть, сколько раз сработало правило по движению.
- Понять, почему команда не отправилась — если статус «Пропущено», значит, устройство уже в нужном состоянии.
Опциональная настройка
Если журнал засоряется пропущенными событиями, можно:
- Отключить логирование пропусков (удалить вызов
logAutomationEvent(..., true, ...)), - Или в интерфейсе показывать только выполненные действия (фильтр по
skipped = 0).
Итог
Журнал срабатываний превратил «чёрный ящик» автоматизаций в прозрачную и отлаживаемую систему. Теперь каждое действие оставляет след — и это очень помогает при настройке сложных сценариев.
Комментарии
Пока нет комментариев. Будьте первым!