↩️ На главную

Автоматизация освещения по датчику движения

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

Автоматизация освещения по датчику движения

Цель: Включать свет над аквариумом при обнаружении движения в коридоре.

Оборудование и стек

  • Датчик движения Zigbee (например, Tuya/Aqara) → топик zigbee2mqtt/motion_sensor
  • USB-реле Zigbee (3 канала) → топик zigbee2mqtt/fish_usb_reley
  • Сервер на Raspberry Pi с:
    • Zigbee2MQTT
    • Mosquitto (MQTT-брокер)
    • MySQL/MariaDB
    • PHP-интерфейс управления автоматизациями
    • Python-скрипт mqtt_to_mysql.py (запись MQTT → БД)

Логика автоматизации

  • Триггер: топик zigbee2mqtt/motion_sensor/presence
  • Условие: значение == 1 (движение обнаружено)
  • Действие: отправить в топик zigbee2mqtt/fish_usb_reley/set payload: {"state_l3": "ON"}
  • Повторять: да (галочка "Повторять" активна)

Проблемы и решения

1. Свет включался постоянно, даже без движения

Причина: Python-скрипт mqtt_to_mysql.py неправильно обрабатывал булевые значения из MQTT:

  • true → записывалось как '1'
  • false → тоже записывалось как '1' ❌ (из-за ошибки в логике)

Решение: Исправлен код скрипта:

if isinstance(value, bool):
    value_to_save = "1" if value else "0"
else:
    value_to_save = value
    

Теперь false'0', и правило срабатывает только при реальном движении.

2. Ошибки в логике обработки правил

  • Отсутствовал столбец id в таблице sensor_data → исправлено изменением логики SQL-запроса.
  • Защита от повторного срабатывания (in_progress) не работала из-за отсутствия столбца в БД → временно отключена.

Результат

При приближении к домику — свет над аквариумом включается автоматически. Через 30 секунд после исчезновения движения — гаснет. Всё работает стабильно.

Что можно улучшить

  • Добавить условие по освещённости (включать только в темноте).
  • Настроить задержку выключения (например, 2 минуты вместо 30 сек).
  • Добавить зависимость от времени суток.


обновленный файл mqtt_to_mysql.py
обновленный файл mqtt_listener.php



Категории:

Категории

Комментарии

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

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

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

Посетителей сегодня: 0
о блоге | карта блога

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