Рассмотрим этот сценарий в ThingsBoard, установка по умолчанию, один сервер:
Настроено только одно устройство (для простоты) с именем «device_name», аутентифицированное с помощью токена «device_token», без пароля. Он уже успешно взаимодействует через MQTT с ThingsBoard, и я уже настроил небольшую рабочую панель с индикатором и элементами управления, прикрепленными к методам, описанным ниже:
- read_sensor, возвращает значение с внутреннего датчика (скажем, например, окружающего света); Не имеет прямого отношения к вопросу, включен, чтобы прояснить сценарий.
- активировать, включает внутреннее реле (например, управляет светом) и устанавливает для внутренней переменной status значение «включено». Возвращает эту переменную.
- деактивировать, отключает внутреннее реле и устанавливает для внутренней переменной status значение «off». Возвращает эту переменную.
- переключатель, включает или выключает внутреннее реле в зависимости от предыдущего значения переменной status в зависимости от операции "не". Устанавливает для переменной status значение, противоположное предыдущему, и возвращает его.
Возникает вопрос: «Как мне вызвать методы активировать и деактивировать в определенные даты / время (время сервера) дня, используя правила и плагины ThingsBoard?»
Примеры:
- Звоните активировать после 18:00 каждый будний день с понедельника по пятницу, но не по субботам и воскресеньям.
- Звоните деактивировать после 08:00 каждый будний день с понедельника по пятницу, но не по выходным.
Я уже установил и настроил системные плагины Time, Telemetry и RPC.
Существует альтернативная конфигурация устройства с дополнительным методом change (status), который включает или выключает реле в зависимости от предоставленного status, устанавливает для внутренней переменной значение предоставил и возвращает его.