Термостат (обновлено: 02 Feb 2022, 09:44:05)

Термостат

Управление состоянием 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.


Работа в ModBus Slave

Поддерживается как чтение так и запись настроек через регистры Holding register начиная с 0 адреса.

На каждый термостат выделено 3 регистра по порядку : установка , гистерезис, ID датчика. Далее следуют настройки по порядку следующих термостатов, если они есть. Пример: 0 - первый термостат, 3 - второй термостат, 6 - третий термостат и т.д.

Данные в регистрах содержат целое число, количество знаков определяет установленное значение в веб интерфейсе. Пример: если там ранее было установлено значение 12.34 , то все настройки в ModBus идут умноженные на 100.

 

Работа в Interpreter

Из опции 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



В этом режиме подача команды на изменение состояния GPIO происходит только при событии. Поддерживается немедленная отправка состояния на MQTT и MajorDoMo. Ручное изменение GPIO нарушает логику работы термостата.

БЕЗ включенной опции - каждые 10 секунд, термостат принудительно включает требуемый уровень на GPIO. Внешнее управление не нарушает логику работы.  

Крайне не рекомендуется использовать remap gpio и vgpio !


Управление термостатом через SMS GSM модули, Telnet, Telegram и ICQ (ESP32, ESP8266RTOS)

settermo X Y Z - Установка параметров указанного термостата, где X - номер термостата Y и Z  -  нижняя и верхняя граница.

gettermo X - чтение параметров указанного термостата, где X - номер термостата,

ontermo X - вкл термостата X,

offtermo X - выкл термостата X.


Управление термостатом через MQTT

email/hostname/[set/]thermo_enX - Где - X - номер термостата. В топик можно слать 1 или 0 для вкл/выкл термостата;

email/hostname/[set/]thermsetX Где - X -  установка температуры термостата (гистерезис остается тот же);

email/hostname/[set/]thermhsX  установка гистерезиса. Где - X - номер термостата.

set добавляем, если включен отдельный топик на запись.


Управление термостатом get командами(API Options)

 Описание настройки находится в документации опции.


Управление термостатами как GPIO

Для контроля включением/выключением термостата из любых систем модуля можно использовать дополнительную опцию, требуется указать в шестеренке начальный виртуальный gpio , например 200, в этом случае первый термостат будет соответствовать 200 gpio, второй - 201 и т.д.




Альтернативный термостат, реализация с помощью конструктора кода.

Вот ПРИМЕР