Virtual Schedule

Расписание на рабочем поле для сценариев и Node-RED
Virtual Schedule хранит недельные интервалы, сезонные правила и исключенные даты, показывает текущее состояние on или off и используется как единый источник расписания для интерфейса, сценариев автоматизации и узла schedule link в Node-RED.

Для чего нужен виджет

  • Хранит интервалы по дням недели: понедельник, вторник и так далее.
  • Поддерживает несколько интервалов в одном дне.
  • Поддерживает сезонные правила по диапазону дат.
  • Поддерживает исключенные даты, когда расписание временно не действует.
  • Показывает on, когда текущее время попадает в активный интервал, и off во всех остальных случаях.
  • Используется как условие запуска сценариев и как источник состояния для узла schedule link в Node-RED.
Виджет расписания
Виджет расписания

Быстрый старт

1 Добавьте и настройте виджет
  1. Добавьте на рабочее поле виджет Virtual Schedule.
  2. Откройте свойства виджета.
  3. Заполните Device SN и при необходимости задайте подписи для состояний on и off.
  4. Сохраните виджет.
  5. Откройте сам виджет на рабочем поле и настройте интервалы, сезонные правила и исключенные даты.
Установка параметров расписания
Виджет расписания
Основные настройки
Параметр Описание
Название Имя расписания на рабочем поле.
Device SN Уникальный идентификатор расписания. Он должен точно совпадать в сценариях и в узле schedule link.
Подпись активного интервала Текст, который отображается, когда расписание активно. По умолчанию: День.
Подпись вне интервала Текст, который отображается, когда расписание неактивно. По умолчанию: Ночь.
Недельные интервалы Основное расписание по дням недели.
Сезонные правила Дополнительные интервалы, которые действуют только внутри заданного диапазона дат.
Исключенные даты Даты в формате YYYY-MM-DD, когда расписание принудительно считается неактивным.

Как редактировать расписание

Недельные интервалы
  1. Нажмите левой кнопкой мыши на виджет расписания на рабочем поле.
  2. Выберите день недели.
  3. Добавьте один или несколько интервалов.
  4. Укажите время начала и окончания в формате HH:MM.
  5. При необходимости скопируйте интервалы на будни или на все дни.
  6. Сохраните изменения.
Установка параметров расписания
Расписание с разрывом времени
Сезонные правила и исключения

Сезонные правила нужны, когда обычного недельного расписания недостаточно. Например, можно задать отдельные интервалы только на зимний период, на отпускной сезон или на праздничный диапазон дат.

Для каждого правила задаются дата начала, дата окончания, время from и to, а при необходимости и ограничение по дням недели.

Исключенные даты временно отключают расписание на конкретный день. Это удобно для праздников, сервисных работ или разовых изменений графика.

Установка сезонных правил
Сезонные правила в редакторе расписания
Интервалы одного дня не должны пересекаться. Граница начала включительная, граница окончания исключительная: интервал 09:00-12:00 активен с 09:00 до момента перед 12:00. Время 24:00 можно использовать как окончание дня.

Использование в сценариях

В сценариях Virtual Schedule выбирается как отдельное условие Расписание.

  1. Откройте создание или редактирование сценария.
  2. В блоке условий выберите Расписание.
  3. Выберите нужный виджет Virtual Schedule из списка.
  4. Добавьте действие сценария.
  5. Сохраните сценарий.

Сценарий запускается один раз при входе в активный интервал расписания. Пока интервал остается активным, повторного запуска по тому же расписанию не будет. После возврата в off сценарий сможет снова сработать при следующем входе в активный интервал.

Пример

  • Условие: Расписание = Рабочий день.
  • Действие: включить освещение.
  • Результат: свет включится в начале активного интервала.

Практический пример использования смотрите на странице Пример термостата кондиционера ZS06.

Node-RED: узел schedule link

Узел schedule link не хранит свое отдельное расписание. Он читает Virtual Schedule из рабочего поля по Device SN и отправляет состояние в поток Node-RED.

Параметр Описание
Рабочее поле Имя workspace, где находится виджет Virtual Schedule.
Device SN Device SN виджета Virtual Schedule на рабочем поле.
Timezone Часовой пояс для расчета времени, например Europe/Moscow.
Interval Как часто узел проверяет состояние расписания, в секундах.
Подробнее об узлах Node-RED смотрите в его справке.

Выходы узла

  1. Выход 0 периодически отправляет текущее состояние, если оно проходит фильтр узла.
  2. Выход 1 отправляет сообщение только при изменении состояния on и off.

Сообщение может содержать:

msg.payload = "on" или "off"
msg.topic = "<Device SN>"
msg.scheduleState = "on" или "off"
msg.next_event = "2026-05-11T10:00:00.000Z"
Если активный интервал содержит дополнительные поля в data, они также попадают в сообщение.

Типовой поток

[schedule link]
    ↓
[virtual switch]
    ↓
[device state / actuator / другая логика]

Редактируйте интервалы только в виджете Virtual Schedule на рабочем поле. Узел schedule link только читает это расписание.

Частые вопросы

Почему в Node-RED больше нет выбора дней недели?

Потому что дни недели, интервалы, сезонные правила и исключенные даты теперь редактируются только в Virtual Schedule на рабочем поле.

Проверьте, что на рабочем поле есть виджет Virtual Schedule и что его Device SN точно совпадает с Device SN в узле schedule link.

Почему сценарий не повторяется каждую минуту внутри активного интервала?

Это нормальное поведение. Сценарий запускается при входе в активный интервал. Повторный запуск будет после выхода в off и нового входа в on.

Можно ли использовать одно расписание в нескольких сценариях?

Да. Один Virtual Schedule может использоваться сразу в нескольких сценариях и одновременно быть источником состояния для Node-RED.