Статья

Пример совмещения "классического" выключателя света с датчиком движения

Хочу поделиться примером реализации включения света датчиком движения Fibaro Motion параллельно с обычным выключателем. Задача стояла так, чтобы выключатель был в приоритете и при ручном включении света датчик уже не выключал свет автоматически.

Реализовано на контроллере Homey

используемые плагины: 

Better Logic
CountDown 

Fibaro 
Sun Events

И так приступим, переходим в раздел Settings, далее в настройки плагина Better Logic и добавляем переменную с произвольным именем, например motion тип Boolean

Затем переходим в настройки плагина CountDown и добавляем новый таймер с произвольным именем, например motion_timer

Далее нам потребуется создать 5 правил, для этого переходим в раздел Flow и создаём новое правило, для удобства можно создать папку и положить все правила в неё, собрав их в кучу для удобства.

Первое правило будет включать свет по датчику движения

Разберём его детальнее:

Первая колонка, здесь всё просто, сработал датчик движения

Вторая колонка, условия, столбик делится на 2 части, по сути они дублируют друг друга, но в первом варианте условие завязано на теге Civil Dark из плагина Sun Events (тег становится True после захода солнца и возвращается в False на рассвете, всё это с учётом геолокации и времени года), а второй вариант срабатывает на основании датчика освещенности в Fibaro Motion, но он оказался не стабильным, поэтому и появилось второе условие. Также в обоих вариантах есть условие проверки что свет в данный момент выключен и созданная ранее переменная motion в плагине Better Logic имеет значение false.

Если Один из вариантов условий соблюдается, то включается свет, останавливается ранее созданный таймер motion_timer в модуле CountDown, если он был запущен на этот момент и переменная motion в плагине Better Logic устанавливается на значение True.

А если ни одно из двух условий не может быть выполнено (например свет уже включен) то просто останавливаем таймер motion_timer в модуле CountDown.

Переходим ко второму сценарию, выключение света, при отсутствии движения

Разберём его детальнее:

Первая колонка - получена команда от Fibaro Motion что движение не обнаружено.

Вторая колонка, на этот раз один вариант условия, проверяем что свет включен и переменная motion в плагине Better Logic имеет значение True

Третья колонка - при соблюдении выше перечисленных условий запустить таймер motion_timer в модуле CountDown на 300 секунд

Третий сценарий ещё проще, После того как таймер отсчитал до 0 сек и не был остановлен новым обнаружением движения, проверить что переменная motion в плагине Better Logic имеет значение True (то есть срабатывал сценарий запуска по датчику движения) и выключить свет,

а переменную motion в плагине Better Logic установить на значение False.

Оставшиеся два сценария просто меняют значение переменной motion в плагине Better Logic на False, при включении или выключении света обычным выключателем, в данном случае за выключателем стоит Fibaro Dimmer 2.

В итоге логика работы получается такая:

Если свет был включен по датчику движения, то он горит до тех пор пока в комнате не пропадёт движение, если движение пропало, то запускается таймер на 5 минут, если в течение этих 5 минут опять появилось движение, то таймер останавливается, и вновь запускается если движение опять пропало. Если же в течение 5 минут движения больше не появилось, то свет выключается. Но если в любой момент времени щёлкнуть выключатель, то свет уже не выключится автоматически. То есть если включить свет выключателем, то первый сценарий не сработает, т.к. там есть условие проверки состояние света, включен или выключен, а следовательно переменная motion останется false и таймер на выключение не будет запущен.

Вот так относительно не сложно подружили 2 схемы включения света. Данный вариант опробовал в течение нескольких дней, работает нормально. Но если у кого-то есть идеи как упростить, буду рад услышать в комментариях.

Правило отлично работает и при удалённом включении света, через Siri/Homekit и любым другим способом, всё будет по аналогии с выключателем. Если включить свет через Homekit, то он уже не выключится автоматически.

Надеюсь данная статья кому-нибудь будет полезна!


Огонь;) спасибо автору )))

Тебе спасибо за ресурс!)

Забыл дополнить, что правило отлично работает и при удалённом включении света, через Siri/Homekit и любым другим способом, всё будет по аналогии с выключателем. Если включить свет через 

Homekit, то он уже не выключится автоматически.

Добавь пожалуйста в статью если не сложно.

Дополнил ;) 

спасибо)

Спасибо автору, то что нужно.

отлично, добавил в закладки - попробую как то адаптировать под 2х глазую схему.

Хорошая статья! У меня только, что после статьи Ильи про 2 газа, что после этой есть одно небольшое дополнение-вопрос: почему Вы не используете "аппаратный" таймер самого глаза? Меняя параметр "Motion alarm cancellation delay" в настройках самого глаза можно не создавать таймер  motion_timer и упростить FLOW( если глаз выключился то свет выключаем без проверки таймера) ? Для датчиков движения от Xiaomi, где нет этого параметра, сценарий идеален, а вот для других я бы упростил.. 

Привет, настройку глаза тестировал, но этот параметр за собой тянет много проблем, например ставим его на 5 минут. Мы были в зоне действия датчика, но ушли, выключив в ручную свет за собой, теперь если вернёмся в течении 5 минут, он нас не увидит, т.к. тревога по движению у него всё ещё активна, и свет не включит. А если бы это был отдельный таймер, а не параметр, то датчик бы нас заметил уже через 30 сек, т.к. дефолтный параметр 30 сек. Ну и согласовывать работу несколько датчиков движения удачнее через отдельный таймер, где срабатывание любого из датчиков будет этот таймер перезапускать. Поэтому использование отдельного таймера в итоге намного стабильнее.

Скажите, в самом первом Flow во втором столбце первая карточка откуда tag TRUE?

Невероятно актуально. огромное спасибо! Думал как раз как подружить датчики xiaomi и выключатели.

очень спасибо!

а зачем отдельный плагин для определения времени суток? В колобке вроде есть свой параметр «в темное время суток»

Отличная статья! очень помогла! Добавьте пожалуйста скрин настроек диммера?

Отличная статья! очень помогла! Добавьте пожалуйста скрин настроек диммера?

Хочу внести свою лепту, почистить чутка - лишние элементы есть. 

Проверка motion в conditions по окончании таймера не нужна, потому как таймер запускается только в том случае, если motion был == true. А если, пока шел таймер, щелкнули выключателем, таймер остановится/перезапустился, однако триггер "отсчет дошел до нуля" не будет запущен в таком случае.

Так же, по окончании таймера не обязательно ставить переменную motion в false, ибо следующее включение света хоть "датчиком", хоть кнопкой все равно установит нужное значение.

Сама задумка очень вкусная.

Подскажите как для fibaro switch сделать, там другие параметры не как в Dimmer

Очень полезная статья!
Спасибо огромное!
Не подскажите, можно ли установить проверку на включенный свет? Например, кто-то включил свет выключателем в душе и забыл его выключить. Как сделать, чтобы свет выключился автоматически, скажем, через час после работы реле?

Ну сделать то просто, если выключатель включен, то запустить таймер, если выключен, то остановить. Вопрос как быть если вышло 30 минут, а человек еще в комнате? Что в этом случае предлагаете делать?

Я предложил бы поставить пару часов, чтоб наверняка) Это все равно лучше, чем свет будет всю ночь гореть (у меня такое очень часто).

Можно ли при этом задавать условие - отсутствие движения? Ведь за пару часов в любом случае человек будет шевелиться или, если глаз не видит человека в душевой кабине, человек выйдет из кабины и глаз его увидит

Просто мне кажется, что надо чтоб для этого был отдельный сценарий, именно для проверки "случайного" света. Так как стандартное время, по-моему, оптимальное 10 мин



1000x_image.png?1561321571

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

Я правильно понял, что Лоджик слегка изменился и теперь его значения ставятся "равным да или нет"?

Спасибо еще раз!


Вернуться назад

Устройства


Fibaro

Motion Sensor

(2 отзыва)

Athom Homey

Homey Pro

(1 отзыв)

Вернуться назад