Термостат
Управление состоянием GPIO по температуре, влажности, освещенности, уровню АЦП или по другой любой метрике.
Поддерживается до 20 термостатов.
Старый термостат 13.08.21 удален из конструктора.
Документация ниже относиться к новому термостату !
Работа с отрицательными температурами требуют проверки !
Select thermostat - выбор номера термостата, выбор доступен, если в шестеренке установлено количество термостатов больше одного. Рекомендуется устанавливать количество не больше , чем требуется для экономии ресурсов.
В поле GPIO указываем номер GPIO, которым требуется управлять. Он может быть как локальный, так и на расширителях портов, а так же удаленный(но очень не желательно).
Если требуется использовать режим охлаждения или управлять понижением влажности, то нужно включить режим Enable invert mode.
В поле выбора сенсора требуется выбрать датчик/метрику, от которого должен управляться термостат, это может быть локальный , а так же удаленный D2D или VSENS датчик. В поле Num требуется указать номер, если датчик имеет нумерацию.
В поле setup требуется указать значение температуры(или другого параметра в зависимости от типа датчика) , в поле Hysteresis требуется указать гистерезис. Все значения могут быть указаны так же до 3 знаков после запятой(точнее точки).
При ошибках чтения датчика после 3 попыток термостат выключает GPIO до устранения неисправности. При этом на странице термостата показывается ошибка.
Данные установки термостата передаются на все системы модуля, в том числе и на D2D или VSENS. Название метрик доступно на вкладке Metrics. Выключенные и не использующиеся термостаты не будут передавать данные, если выбран датчик disable и нажато после этого кнопка Set.
Коды ошибок: 4 - датчик не существует или еще не получены данные, 5 - 32 битное значение, не поддерживается термостатом, 100 и выше - ошибка датчика.
На данный момент работа с термостатом предусмотрена только в новом планировщике заданий(cron).
Пример установки температуры по времени и дням недели, в поле state off требуется установить ночную температуру, значение state on не имеет значение, так как используем параметр set внутри кода:
week:1,2,3,4,5 //настройки для будней: set:20 7:00-16:00 set:25 16:01-22:00 week:6,7 //настройки для выходных: set:25 //можно упустить,т.к выше эта же температура установлена 7:00-22:00
Комментарии из примера требуется убрать при вставке в поле ввода.
Значения температуры вводятся без запятой, если в настройках термостата указали значение например с 2 знаками, то тут необходимо вводить значение умноженное на 100.
Поддерживается как чтение так и запись настроек через регистры Holding register начиная с 0 адреса.
На каждый термостат выделено 3 регистра по порядку : установка , гистерезис, ID датчика. Далее следуют настройки по порядку следующих термостатов, если они есть. Пример: 0 - первый термостат, 3 - второй термостат, 6 - третий термостат и т.д.
Данные в регистрах содержат целое число, количество знаков определяет установленное значение в веб интерфейсе. Пример: если там ранее было установлено значение 12.34 , то все настройки в ModBus идут умноженные на 100.
Из опции Interpreter доступно чтение и установка значения термостата:
thermsetX - переменная чтения значения термостата без запятой. Х - номер термостата считая от 1.
thermoset(1,251) - установит 25.1 градусов на 1 термостате, если изначально в настройках термостата было выставлено значение с 1 знаком после запятой.
Включать или выключать термостат в Interpreter можно используя надстройку управления как GPIO.
Используя условие можно менять значение термостата по времени. Пример:
if(hour>=6&&hour<21) thermoset(1,251) else thermoset(1,200) endif
Изменение значения при выполнения условия(например нажатие кнопки) с выводом на экран. Пример:
if(gpioget(14)==0) valmath(0,thermset1+1) thermoset(1,intval1) printd(1,_THERMSET1_) endif
В этом режиме подача команды на изменение состояния GPIO происходит только при событии. Поддерживается немедленная отправка состояния на MQTT и MajorDoMo. Ручное изменение GPIO нарушает логику работы термостата.
БЕЗ включенной опции - каждые 10 секунд, термостат принудительно включает требуемый уровень на GPIO. Внешнее управление не нарушает логику работы.
Крайне не рекомендуется использовать remap gpio и vgpio !
settermo X Y Z - Установка параметров указанного термостата, где X - номер термостата Y и Z - нижняя и верхняя граница.
gettermo X - чтение параметров указанного термостата, где X - номер термостата,
ontermo X - вкл термостата X,
offtermo X - выкл термостата X.
email/hostname/[set/]thermo_enX - Где - X - номер термостата. В топик можно слать 1 или 0 для вкл/выкл термостата;
email/hostname/[set/]thermsetX Где - X - установка температуры термостата (гистерезис остается тот же);
email/hostname/[set/]thermhsX - установка гистерезиса. Где - X - номер термостата.
set добавляем, если включен отдельный топик на запись.
Описание настройки находится в документации опции.
Для контроля включением/выключением термостата из любых систем модуля можно использовать дополнительную опцию, требуется указать в шестеренке начальный виртуальный gpio , например 200, в этом случае первый термостат будет соответствовать 200 gpio, второй - 201 и т.д.
Альтернативный термостат, реализация с помощью конструктора кода.
Вот ПРИМЕР