Wiren Board Scenarios: Errata
ERRWBSC0001: Проблема с невозможностью открыть вкладку Сценарии
Описание
Не открывается вкладка Сценарии, с ошибкой: "Ошибка загрузки файла: Invalid config file EditorError".
Подверженные устройства
Проблема затрагивает контроллеры, на которых были созданы сценарии «Расписание» без указания дней недели. При обновлении пакета wb-scenarios с версий 1.7.0 и ниже до 1.7.1 и выше такие некорректные настройки блокируют работу вкладки «Сценарии».
Причины и подробное описание
В версии 1.7.1 была введена строгая проверка (валидация) обязательного наличия дней недели в сценариях типа «Расписание».
Причина: В старых версиях системы можно было сохранить конфиг расписания с пустыми днями недели. Такой сценарий фактически не работал, но успешно хранился в базе.
Последствие: Теперь при попытке открыть вкладку «Сценарии», встроенный компонент json-editor пытается обработать этот «неправильный» конфиг. Из-за несоответствия новым правилам валидации он выдает критическую ошибку, что приводит к «белому экрану» или зависанию вкладки.
Пути обхода
Конфиг сценариев лежит в файле wb-scenarios.conf. Нужно найти этот файл и удалить из него сценарий, у которого ключ "scenarioType" имеет значение "schedule" и ключ "scheduleDaysOfWeek" имеет значение "[]".
Пример такого сценария:
{
"componentVersion": 1,
"enable": true,
"name": "Schedule",
"outControls": [
{
"actionValue": 100,
"behaviorType": "increaseValueBy",
"control": "buzzer/frequency"
}
],
"scenarioType": "schedule",
"scheduleDaysOfWeek": [],
"scheduleTime": "15:00"
}
ERRWBSC0002: В сценарии Термостат каналы включаются после рестарта при выключенном сценарии
Описание
После перезагрузки правил или перезагрузки контроллера нагреватель в сценарии «Термостат» включается и не выключается, несмотря на то что сценарий выключен. В карточке сценария статус нагрева отображается как «неактивен», но реле физически включено.
Подверженные устройства
Проблема затрагивает контроллеры с пакетом версий с 1.7.6 по 1.8.3 включительно, у которых настроен хотя бы один сценарий «Термостат», сценарий находится в выключенном состоянии на момент рестарта правил и в каналах нагрева выбраны устройства, которые отвечают с задержкой.
Причины и подробное описание
В версии 1.7.6 в сценарии «Термостат» появилась поддержка нескольких каналов нагрева с защитой от дублирующих MQTT-команд, то есть запись в реле выполняется только если текущее значение отличается.
Причина: при запуске сценария «Термостат» сценарий сначала проверяет текущую температуру и, если она ниже уставки, отправляет реле команду «включить нагреватель». Эта команда уходит ещё до того, как сценарий успевает учесть, что был выключен пользователем и работать не должен. В конце инициализации сценарий понимает своё «выключенное» состояние и пытается отправить в реле команду «выключить нагреватель».
Последствие: две команды уходят к реле подряд, с очень коротким интервалом между ними. Сценарий же при отправке каждой команды защищает себя от дублей — если по его внутренним данным реле уже находится в нужном состоянии, команда не отправляется. Вторая команда «выключить» попадает в этот фильтр: сценарий ещё не получил подтверждение от реле о факте включения и продолжает считать, что нагреватель выключен. В итоге команда «включить» доходит до реле и срабатывает, а команда «выключить» отсеивается. Реле физически остаётся включённым, нагреватель работает, при этом карточка сценария продолжает показывать «неактивен» — потому что состояние карточки обновляется внутри сценария мгновенно, независимо от реле.
В версии 1.8.4 порядок инициализации сценария пересмотрен: при старте выключенного сценария лишняя команда «включить» больше не отправляется.
Пути обхода
Основное решение — обновить пакет до версии 1.8.4 или выше:
apt update
apt install wb-scenarios