Dorfl – управление жалюзи – настройка MajorDoMo

Ранее

Объекты

Класс CBlinds:

Здесь posMax – это вручную задаваемое максимальное значение положения в модуле. Его следует уставновить равным MaxPos в конфигурации модуля. Используется в методах setOpen и setClose.

Свойства posPresetX – так же вручную задаваемые параметры воможных положений. Например у меня posPreset1 – это закрытие не до упора, для вечера, чтобы можно было видеть улицу в щель. posPreset2 – чуть более плотное закрытие без щели, но ролеты не до конца сомкнуты. Итп.

pos и isManuallyLocked – это свойства автоматически обновляемые из MQTT и методами класса – для последующего использования в интерфейсе и скриптах.

cmd – команда привязанная к MQTT.

Пример метода setOpen:

$posMax = $this->getProperty('posMax');
if (empty($posMax)) {
 $posMax = 60;
}
// send to MQTT, to the 'cmd' topic
setGlobal($this->object_title.'.'.'cmd','mva-'.$posMax);

Здесь вместо mva0, шлем mva-19 для того чтобы компенсировать проблему дрейфа: последовательное mvr19 и mvr-19 не вернет вточности в исходное положение, т.к. опускать легче и за 19 секунд ролета сместится на большее расстояние чем при подъеме за те же 19 секунд. Поэтому setOpen – это своего рода гарантированый возврат в полностью открытое положение, которое выполняется минимум раз в сутки. Для компенсации дрейфа можно было бы сделать подъем и за 20 секунд, или mva-1, но сделал mva-19 на случай отключения электричества – при этом сбросится внутренний счетчик положения, а при таком подходе модуль в любом случае откроет ролету полностью. Не забываем что если внутренний счётчик положения оказывается вне диапазона [0, MaxPos], модуль сбрасывает значение в крайнее положение. Т.е. после отработки mva-19, pos будет установлен 0.

Пример метода setPreset1:

if (!empty($this->getProperty('posPreset1'))) {
  // send to MQTT, to the 'cmd' topic
  setGlobal($this->object_title.'.'.'cmd','mva'.$this->getProperty('posPreset1'));
}

Также определены объекты данного класса с собственными значениями в posMax и posPresetX:

Конфигурация MQTT

Каждая пара cmd и pos имеет соответсвующую привязку к свойствам cmd и pos каждого из объектов:

Использование

Собственно использование заключается в вызове методов setOpen, setClose, setPresetX, toggleState при желаемых событиях, а также отображение статуса из свойств pos и isManuallyLocked.

Пример моего скрипта, который вызывается при смене времени суток, либо при включении/выключении света на кухне. Идея такая что днем – ролеты полностью открыты, ночью – полностью закрыты, в сумерках – зависит от того включен ли в помещении свет. Такаже во время отпуска – чуть по другому.

В зале скрипт еще более запутанный – тут уже две ролеты: одна на окне, вторая на двери на террасу. Тут в правила добавлен телевизор – при включённом теливизоре окно прикрывается чтобы солнце не мешало. На двери настроено отложенное закрытие и установка в posPreset3 для предварительного “уведомления” о том что дверь будет заблокирована через 2 минуты.

Также на плане помещений добавлено управление и графическое отображение статуса из pos и isManuallyLocked:

Добавить комментарий