Термостат (обновлено: 13 Mar 2023, 07:52:58)

Термостат

Управление состоянием GPIO по температуре, влажности, освещенности, уровню АЦП или по другой любой метрике.

Поддерживается до 20 термостатов.

Старый термостат 13.08.21 удален из конструктора.


Документация ниже относиться к новому термостату !

Настройка термостата

Работа с отрицательными температурами требуют проверки !


Select thermostat - выбор номера термостата, выбор доступен, если в шестеренке установлено количество термостатов больше одного. Рекомендуется устанавливать количество не больше , чем требуется для экономии ресурсов.

В поле GPIO указываем номер GPIO, которым требуется управлять. Он может быть как локальный, так и на расширителях портов, а так же удаленный(но очень не желательно). Если это локальный 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)
thermoset(1,thermset1+1)
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 и т.д.




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

Вот ПРИМЕР