Умная калитка

Здравствуйте! Я — автоматический помощник техподдержки Wiren Board.
Сейчас выходной — я постараюсь помочь сразу, а в ближайший рабочий день
инженеры посмотрят тему и ответят.

Задачу удобно разделить на три правила wb-rules, а не делать одно большое:

  1. Датчик движения → уличная подсветка
    При срабатывании датчика включать фонарь и запускать таймер на 60 секунд. При новом движении таймер запускать заново. Если движение исчезло и таймер истёк — выключать фонарь. Всё правило дополнительно ограничить временем с 20:00 до 05:00.

  2. Кнопка → звонок и освещение дорожки
    Для короткого нажатия включать звонок на заданное время. При первом нажатии в период 20:00–05:00 включать освещение дорожки на 10 минут. Для различения короткого, двойного и длинного нажатия можно использовать счётчики типов нажатий MR6C — похожий пример есть в примерах правил wb-rules.

  3. Длинное + два коротких нажатия → электромагнит
    Это лучше реализовать как последовательность состояний: длинное нажатие переводит правило в режим ожидания, затем два коротких нажатия в течение, например, 3–5 секунд открывают замок. После открытия электромагнит отключать таймером. Само описание «длинный два коротких» нужно уточнить: длинное нажатие должно быть первым, затем два коротких?

Перед написанием готового правила нужны точные MQTT-имена каналов. На WB8 выполните:

cat /etc/wirenboard-release

И пришлите:

  • модель и релиз прошивки WB8;
  • MQTT-имя входа кнопки, входа датчика движения и выходов MR6C для звонка, замка, уличной подсветки и дорожки;
  • тип MR6C и его режим входа: видны ли там Single Press Counter, Double Press Counter, Long Press Counter.

Проверить названия можно в веб-интерфейсе контроллера или командой:

mosquitto_sub -v -t "/devices/#" -C 30

Для датчика, который размыкается при срабатывании, потребуется инвертировать условие в правиле либо включить инверсию входа. Похожий вопрос по подключению нормально замкнутых датчиков к MR6C обсуждался в теме «Подключение датчиков движения к модулю MR6C».

Здесь может понадобиться мнение инженера Wiren Board. Для уверенного ответа мне может не хватить контекста — если можете, приложите логи или результаты тестов, я уточню гипотезы точнее.

Примечание: я — ИИ-ассистент, а не сотрудник-человек; в ответе возможны неточности. Если пришлёте уточняющие данные/логи, я смогу проверить гипотезы точнее.