Ошибка сценария света по датчику движения

Доброго времени.

Для теста создан простой сценарий включения/выключения контакта реле MR6C по датчику движения MSW:

{

"configVersion": 1,

"scenarios": \[

    {

        "componentVersion": 1,

        "lightDevices": {

            "sensorObjects": \[

                {

                    "behaviorType": "setEnable",

                    "mqttTopicName": "wb-mr6c_136/K2"

                }

            \]

        },

        "lightSwitches": {

            "delayToLightOffAndEnable": 3600,

            "isDelayEnabled": false,

            "sensorObjects": \[\]

        },

        "motionSensors": {

            "delayToLightOff": 3,

            "sensorObjects": \[

                {

                    "actionValue": 170,

                    "behaviorType": "whileValueHigherThanThreshold",

                    "mqttTopicName": "wb-msw-v4_64/Current Motion"

                }

            \]

        },

        "name": "тест свет по движению 3",

        "openingSensors": {

            "delayToLightOff": 180,

            "sensorObjects": \[\]

        },

        "scenarioType": "lightControl"

    }

\]

}

Сценарий работает исправно, но есть 2 нюанса. При внесении изменений через WEB(к примеру времени отключения по окончанию движения) сценарий перестает работать до момента изменения его названия

И второе, в лог валят ошибки:

21-02-2026 12:54:11.996 [wb-rules] ERROR: trying to stop unknown timer: 1258
21-02-2026 12:54:10.989 [wb-rules] ERROR: trying to stop unknown timer: 1257

Но на работу сценария это не влияет

Релиз 1.0-testing~wb7+bullseye~20260213130323

Здравствуйте! Я автоматический помощник технической поддержки Wiren Board.
Я проанализировал ваш вопрос и постарался найти возможное решение:


Вы используете:

  • контроллер с прошивкой 1.0-testing~wb7+bullseye~20260213130323 (ветка testing);
  • сценарий на wb-rules (JSON-конфиг сценариев освещения по датчику движения, MR6C + MSW v4).

Опишу по пунктам оба нюанса.


1. После изменения сценария через Web он не работает, пока не смените имя

Это похоже на некорректное обновление сценариев при перезагрузке конфига:

  • Web-интерфейс меняет JSON (время задержки, параметры и т.п.);
  • wb-rules перезагружает файл, но внутренняя логика/таймеры старого варианта сценария остаются в «подвешенном» состоянии;
  • при смене имени сценария объект создаётся заново, и всё начинает работать.

Это очень похоже на баг в текущей testing-сборке сценариев освещения.

Что можно попробовать сейчас (как обходное решение):

  1. После изменения сценария через Web перезапустить wb-rules:

    service wb-rules restart
    

    или в новой системе:

    systemctl restart wb-rules
    

    Если после простого изменения параметров (без смены имени) всё снова начинает работать — почти точно это проблема перезагрузки сценариев.

  2. Если у вас есть возможность, проверьте то же самое на стабильном репозитории (release / stable), а не testing. На стабильных релизах подобное поведение ранее не отмечалось в типичных кейсах.[1]

  3. Если сможете — приложите к теме:

    • содержимое файла сценария (как сейчас делали);

    • вывод:

      journalctl -u wb-rules -n 200
      

    сразу после изменения сценария через Web и до смены имени.


2. Ошибка в логе ERROR: trying to stop unknown timer: 1258

Сообщение вида:

[wb-rules] ERROR: trying to stop unknown timer: 1258

означает, что логика сценария пытается остановить таймер, который к этому моменту уже:

  • либо отработал и удалён,
  • либо никогда не был создан (из‑за какой-то гонки состояний).

В контексте автогенерируемых сценариев освещения (lightControl) это, как правило, косметическая проблема:

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

То есть здесь вы правы: на работу это не влияет, но говорит о неточности в обработке таймеров внутри сценария/движка.

Что можно сделать:

  1. Зафиксировать, при каких действиях эти сообщения появляются:
    • только при изменении сценария?
    • или при обычной работе (многократное срабатывание MSW, ручное управление реле)?
  2. Обновиться до более свежей версии прошивки (когда появится новая сборка testing/stable) — подобные сообщения часто устраняются в следующих версиях движка правил.[1:1]
  3. При необходимости — можно временно отключить слишком подробный лог wb-rules (чтобы не засорять журнал), но это делается через конфигурацию уровня логирования и желательно уже после консультации с инженерами поддержки.

Рекомендации, что приложить для инженеров поддержки

Чтобы инженерам было проще воспроизвести и исправить:

  1. Точный JSON-сценарий (вы уже привели — это хорошо).

  2. Последовательность действий:

    • изменяете, например, delayToLightOff с 3 на 5 сек;
    • нажимаете «Сохранить»;
    • после этого сценарий перестаёт работать до смены имени.
  3. Лог wb-rules вокруг момента изменения (как минимум 50–100 строк до и после).

  4. Версии пакетов:

    dpkg -l | grep wb-rules
    dpkg -l | grep wiren
    

Это поможет понять, в какой именно версии wb-rules/сценариев проявляется проблема.


Если напишете, что даёт перезапуск wb-rules после правки сценария (помогает или нет) — можно будет точнее сузить причину.


  1. Движок правил wb-rules — Wiren Board
    Примечание: Я — искусственный интеллект, а не сотрудник-человек. В моих ответах возможны неточности. ↩︎ ↩︎

Добрый день!

Вам еще нужна помощь?