Берримор развивает свои возможности

Берримор в межсезонье, при постоянно меняющейся температуре, зарекомендовал вполне хорошо и регулировка температуры проходит на ура. Но в первой реализации не было ручной регулировки температуры, иногда это было весьма не удобно. Т.к. нужна температура потеплей или похолодней (присутствие дома когда не должно быть или отсутствие когда должен быть) но т.к. расписание жестко зашито внесение изменений было неудобно. Поэтому внес несколько изменений

  1. Выбор режима ручной или автоматический  
    Так будет выглядеть после всех действий.
  2. Выставление ручной температуры.
  3. Программирование условий

небольшой howto

Выбор режима ручной или автоматический

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

Итак создаем виртуальное оборудование.(Hardware)
Создание виртуального оборудования
Затем создаем виртуальное устройство(devices) а точней переключатель(Switch) и добавляем его на панель выключателей.
После чего заходим в сам выключатель и добавляем два состояния для кнопки в точнее уровни работы. Ну а также задаем название, иконку и тип переключения.
Задаем настройки выключателя
Первый статус делаем автоматический в этом статусе виртуальный выключатель будет числится полностью выключен для удобства работы в дальнейшем.

Выставление ручной температуры

Также заходим в ранние созданное виртуальное оборудование и создаем виртуальное устройство только теперь это температурная точка термостата (termostat setpoint).И добавляем его на панель. Появится он в панели утилиты. В настройках задаем название и температуру.

Программирование условий

Ну а теперь самое главное запрограммировать нужное поведение
С начало начинаем отображать запрограммированную температуру  в виртуальном термостате.
Вставляем код который задает температуру в dzvents 
В данном примере на наш термостат задаем 20,5
 domoticz.devices('Температура в доме').UpdateSetPoint(20.5)
А для обработки поведения проверяем в каком статусе наш выключатель например если в статусе автоматическом
if (domoticz.devices('Управление отоплением').state= ="Auto")
Переводим в автоматический режим (т.к. это выключатель и стадия авто у нас полностью выключен то делается это просто)
domoticz.devices('Управление отоплением').switchOff()
Ну и на чтобы не забыть перейти в автоматический режим переводим с авто режим через 120 минут для этого проверяем когда был изменен статус
 if domoticz.devices('Управление отоплением').lastUpdate.minutesAgo > 120)
или выключить через 120 мин
domoticz.devices('Управление отоплением').afterMin(120)
Это основные моменты которые я использую. Ну а так все зависит от вашего воображения.
Я пока заложил  следующую логику - если надо сменить температуру выставляем ручной режим и задаем нужную температуру через 2 часа ручной режим выключится.

Комментариев нет:

Отправить комментарий