Термостат (обновлено: 14 Aug 2021, 19:28:20)

Термостат

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


Работа в 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


Настройка старого термостата(удален из конструктора)


1 - номер термостата (1),

OFF - включение/отключение термостата (OFF),

Setup - температуру включения термостата (27),

Hystereresis - температура отставания термостата (2),

GPIO - GPIO, на котором находится исполнительное устройство (12),

Sensor - датчик для управления термостатом (V SENS 1-1).

Если вам необходимо наоборот выключать, а не включать исполняющее устройство, то достаточно включить invert output в настройках GPIO.


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

Для управления термостатом по времени необходимо установить в прошивке Scheduler

Mode - режим термостат,

Time - время вкл/выкл термостата (12:00),

GPIO NUM - номер термостата (1),

State - вкл/выкл термостата (1/0).

Необходимо позаботится об установке правильного состояния GPIO при выключении термостата, для этого через этот же планировщик установите в другом задании требуемое состояние GPIO.

Если на установленный момент времени устройство не было включено, то выключение или включение термостата не произойдет.

Если это критично, то воспользуйтесь опцией логического модуля, который имеет более гибкий функционал.


Установка температуры термостата по времени


Termo set1 -  установка температуры по времени, где 1 - номер термостата,

GPIO NUM - граница включения термостата,

State - граница выключения термостата.

 -------------------------Конец описания старого термостата-------------------------



Умное управление GPIO



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

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

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

х10 Termosat - сравнения чисел с десятыми долями, умноженными на 10. Пример -  25.3 необходимо вводить 253 (Только для температурных датчиков). Опция для старого термостата.


Управление термостатом через 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/thermo_enX Где - X - номер термостата. В топик можно слать 1 или 0 для вкл/выкл термостата,

email/hostname/thermo_setX Где - X -  установка температуры термостата (гистерезис остается тот же),

email/hostname/set/thermo_enX  установка температуры термостата при опции "Отдельный топик на запись"!!


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

IP/configtermo?rmin0=11&rmax0=22&gpio0=1&st=1 Где - rmin0 - температура, rmax0- гистерезис, gpio0 - чем рулить, ln0 - номер датчика,

IP/configtermo?trn=2&ts=1, Где - trn=2 вкл   термостат, ts=1 - номер термостата,

IP/configtermo?trn=1&ts=1, Где - trn=1 выкл термостат, ts=1 - номер термостата.


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

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




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

Вот ПРИМЕР