Настенные выключатели Aqara Xiaomi - управляем освещением в Domoticz

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com

Здравствуйте друзья


Продолжу тему своих обзоров, посвященных системе управления умным домом Domoticz — и в этот раз больше внимания уделю сценариям. Начну с освещения — и в качестве аппаратной части обзора будет пара выключателей Aqara, c физическим размыкателем и логический, оба — с двумя клавишами. Кому интересно, прошу читать далее

 Вступление

 

Свое первое знакомство с выключателем Aqara я свел пару месяцев назад, как они только появились на Aliexpress. Стоил он в районе $40 долларов. Особенно сильно цена с тех пор не падала, и поэтому, когда в середине апреля на GearBest прошла флеш распродажа с ценой $29.99 для выключателя с физическим размыкателем и $13.71 для логического — я долго не раздумывал.

Где купить?

2 клавиши, проводной — Gearbest  Banggood  Aliexpress  JD.ru 


 Доставка и упаковка

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

На обратной стороне — технические характеристики - 

Выключатели работают через ZigBee — то есть нужен шлюз. 

Размеры выключателей 86*86 мм, толщина соответсвенно 43 и 15 мм

Проводной выключатель может коммутировать нагрузку до 800 Ватт, отдельного питания не требует. 


Беспроводный выключатель питается от батарейки CR2032


Внешний вид, габариты

В комплекте, кроме выключателей — еще крепеж, к беспроводному выключателю прилагается еще кусок двустороннего скотча.

Если смотреть спереди — то выключатели совершенно одинаковые.

 Все отличия — сзади. Проводной выключатель рассчитан на установку в квадратную монтажную коробку размером 86 на 86 мм, а логический может быть приклеен просто на стену.

Под крышками — так же очень много общего, отличия в том, что на клавишах проводной версии немножно более длинные рычажки-нажиматели, а у беспроводной — имеется батарейка.

 

Для установки вам понадобится квадратная монтажная коробка 86 * 86 мм. Они бывают в версиях для внутреннего и наружного монтажа

Размеры выключателя в точности совпадают с коробками

А отверстия для винтов и сами винты четко подходят к крепежным отверстиям

Монтаж

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

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

Монтаж заключается в удалении старой, круглой коробки

Установке новой, квадратной коробки, это весьма утомительное и пыльное занятие, особенно когда стена — бетон или кирпич. Кстати обозреваемый мною недавно очиститель воздуха - Xiaomi Mi Air Purifier 2  отследил этот момент и ускорил обороты вентилятора, пока я не закончил терзать стену

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

С беспроводным выключателем возни гораздо меньше — приклеил и все. Для надежности на клеющуюся поверхность скотча я добавил пару капель суперклея — так как обои рифленые и скотч держится не очень хорошо. 

Подключение и работа в Mi Home

Несмотря на Domoticz — стадия первичного подключения проходит в Mi Home. В плагине шлюза выбираем иконку соответсвтвующего выключателя, после того как шлюз скажет вслух китайского заклинание — надо нажать на кнопку выключателя до момента моргания светодиода. Для проводной версии нужно еще выбрать иконку и название для каждой клавиши. Вообщем все как обычно.

Для проводной версии существует плагин управления  - позволяющий включать и выключать каждую из клавиш. В сценариях проводной выключатель может выступать только как действие — иными словами он может включать и выключать только то устройство, контакт котоорого размыкает и все. Выключить например умныю лампу или розетку, которая физически к нему не подключена — нет.(Это касается только Mi home). Зато сам выключатель может управлятся любым другим логическим устройством — кнопкой, беспроводным выключателем, кубиком и т.п. В сценариях для него доступны действия включить, выключить и изменить состояние на противоположное (on/off), отдельно для каждой из клавиш.

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

Работа с выключателями в Domoticz

После того как вы подключите выключатели к шлюзу — они появятся в списке оборудования. Проводной выключатель — как два разных устройства — левая и правая клавиша, по сути он таковым и является, беспроводной — как одно устройство с 4мя вараинтами действия. Для добавления в панель переключаталей — надо кликнуть на стрелочке справа

Проводной выключатель в Domoticz — так же может служить условием сценария как и проводной. Никаких ограничений как в Mi Home нет. А если вам нужно задать время автоотключения — пригодится например для управления вентилятором, то не надо даже писать сценарий — пишете время автоотключения в секундах (на примере 10 минут — 600 секунд) в настройках выключателя.

Кстати для беспроводного выключателя, а так же для всех логических выключателей — кнопок и куба, рекомендую поставить время перехода в статус off — 1 секунда. Это нужно чтобы выключатель не хранил последний статус, что в некоторых случах, может вызвать ложное срабатывание сценария. Ни на что другое влиять этот статус не будет — так как в сценариях отрабатываются только действия типа On, Click и т.п.

Теперь перейдем к первому практическому заданию. 

Проводной выключатель

Мне неоднократно задавали вопрос — можно ли на проводной выключатель Aqara завязать на разрыв провода только одну клавишу, а второй управлять логически — например умной лампой Yeelight. 

Да можно — вот сценарий, в котором по изменению состояния клавиши выключателя, без разницы это будет on или off — считыватеся состояние умной лампы, и если она включена — выключается, а выключена — включается в режиме белого света с яркостью 100%.

commandArray = {}
if devicechanged['Aqara'] and otherdevices ['YeeLight RGB'] ~= 'Off' then
commandArray['YeeLight RGB']='Off'
elseif devicechanged['Aqara'] and otherdevices ['YeeLight RGB'] == 'Off' then
commandArray['OpenURL']="root:root@127.0.0.1:8080/json.htm?param=setcolbrightnessvalue&type=command&idx=46&hex=ffffff&iswhite=false"
end
return commandArray

Разберем этот скрипт - 

if devicechanged['Aqara']  - первое условие если изменено состояние выключателя, который называется Aqara, как именно меняется состояние — не имеет значения 

and otherdevices ['YeeLight RGB'] ~= 'Off' — второе условие, состояние лампы YeeLight RGB — не равно Off — то есть не выключено 

commandArray['YeeLight RGB']='Off' — при соблюдении этих двух условий, лампа выключается

Далее, если при смене состояния выключателя elseif devicechanged['Aqara'], статус лампы выключено - and otherdevices ['YeeLight RGB'] == 'Off', вызывается скрипт 

commandArray['OpenURL']="root:root@127.0.0.1:8080/json.htm?param=setcolbrightnessvalue&type=command&idx=46&hex=ffffff&iswhite=false"

Для чего это надо и почему нельзя просто включить лампу commandArray['YeeLight RGB']='On' 

Все просто — если лампу просто включить, то она включится в своем последнем состоянии либо в состоянии по умолчанию. А при использовании формата JSON — мы можем «запаковать» в одну строку все нужные нам параметры. В примере root:root@127.0.0.1:8080 - логин и пароль и адрес вашего Domoticz сервера, далее — служебные команды устанавливающие цвет и яркость, менять их не нужно, кроме логина, пароля и адреса сервера нужно изменить idx=46 — вместо 46 — ставите номер вашей лампы, он виден в списке устройств слева — столбец idx и  hex=ffffff — вместо ffffff (это белый цвет 100% яркости) — ставите нужное вам значение. Для подбора значения — переходите в меню переключатели, выбираете вашу RGB лампу, мышкой выбираете оттенок, цвет и яркость и копируете получившееся значения из окошка # — в примере - 3289c7

Если вы используете не RGB, а белую лампу — то используйте другую команду - 

commandArray['OpenURL']="root:root@127.0.0.1:8080/json.htm?type=command&param=switchlight&idx=48&switchcmd=Set%20Level&level=100" 

где кроме адреса сервера и idx лампы, нужно указывать только яркость в % &level=100 — от 1 до 100

Беспроводный выключатель. 

На нажатие клавиш, я не особенно мудрствуя назначил включение и выключение аналогичных клавиш на проводной версии. А вот вариант с одновременным нажатием — я немного обыграл. Скрипт выглядит так:

commandArray = {}
if devicechanged['GG Aqara wireless']=='Switch 2' and otherdevices ['GG Wall Aqara'] == 'On' then 
commandArray['GG Wall Aqara'] = 'Off' 
elseif devicechanged['GG Aqara wireless']=='Switch 2' and otherdevices ['GG Wall Aqara'] == 'Off' then 
commandArray['GG Wall Aqara'] = 'On' 
elseif devicechanged['GG Aqara wireless']=='Switch 1' and otherdevices ['G Light1 Aqara'] == 'On' then 
commandArray['G Light1 Aqara'] = 'Off' 
elseif devicechanged['GG Aqara wireless']=='Switch 1' and otherdevices ['G Light1 Aqara'] == 'Off' then 
commandArray['G Light1 Aqara'] = 'On'
elseif devicechanged['GG Aqara wireless']=='Both_Click' and otherdevices ['PR Aqara'] == 'Off' and otherdevices ['KR Aqara'] == 'Off' and otherdevices ['GG Aqara Setting'] == 'Off' then 
commandArray['PR Aqara'] = 'On' 
commandArray['GG Aqara Setting'] = 'On'
elseif devicechanged['GG Aqara wireless']=='Both_Click' and otherdevices ['PR Aqara'] == 'On' and otherdevices ['KR Aqara'] == 'Off' and otherdevices ['GG Aqara Setting'] == 'On' then 
commandArray['KR Aqara'] = 'On' 
commandArray['GG Aqara Setting'] = 'Off'
elseif devicechanged['GG Aqara wireless']=='Both_Click' and otherdevices ['PR Aqara'] == 'On' and otherdevices ['KR Aqara'] == 'On' and otherdevices ['GG Aqara Setting'] == 'Off' then 
commandArray['KR Aqara'] = 'Off' 
commandArray['PR Aqara'] = 'Off' 
elseif devicechanged['GG Aqara wireless']=='Both_Click' and otherdevices ['PR Aqara'] == 'On' and otherdevices ['KR Aqara'] == 'Off' and otherdevices ['GG Aqara Setting'] == 'Off' then 
commandArray['PR Aqara'] = 'Off'
elseif devicechanged['GG Aqara wireless']=='Both_Click' and otherdevices ['PR Aqara'] == 'Off' and otherdevices ['KR Aqara'] == 'On' and otherdevices ['GG Aqara Setting'] == 'Off' then 
commandArray['KR Aqara'] = 'Off'
end
return commandArray

первые 4 команды — довольно простые, в зависимости от нажатия на правую или левую клавиши - Switch 1 или Switch 2 — мы проверяем состояние клавиш проводного выключателя GG Wall Aqara и G Light1 Aqara — и в зависимости от их статуса, меняем их на противоположные. 

Все интересное — на отработке одновременного двойного нажатия - Both_Click. Здесь в качестве управляемого устройства — второй выключатель Aqara, который управляет светом в прихожей PR Aqara и коридоре KR Aqara. Так же здесь появляется новое «действующее лицо» — выключатель GG Aqara Setting. Это виртуальный выключатель, создается нажатием на кнопку «создать виртуальные датчики» на вкладке оборудование — в строке Virtual Switch. Сейчас станет ясно зачем он нужен, пока лишь покажу его настройку, которая переводит его в статус Off в течении 5 секунд. 

теперь разберем каждое условие

elseif devicechanged['GG Aqara wireless']=='Both_Click' and otherdevices ['PR Aqara'] == 'Off' and otherdevices ['KR Aqara'] == 'Off' and otherdevices ['GG Aqara Setting'] == 'Off' then

Нажатие на две клавиши когда выключен свет и в прихожей и в коридоре, и виртуальный выключатель (который выключается в течении 5 секунд после включения). В таком случае — включается свет в прихожей и включается виртуальный выключатель

commandArray['PR Aqara'] = 'On' 

commandArray['GG Aqara Setting'] = 'On'

Если мы нажимаем на обе клавиши повторно, в течении 5 секунд пока включен виртуальный выключатель, у нас отрабатывается условие 

elseif devicechanged['GG Aqara wireless']=='Both_Click' and otherdevices ['PR Aqara'] == 'On' and otherdevices ['KR Aqara'] == 'Off' and otherdevices ['GG Aqara Setting'] == 'On' then 

И у нас включается свет в коридоре. Виртуальный выключатель более не нужен, я выключаю его сразу, хотя это условие необязательное — он выключится сам через 5 секунд.

commandArray['KR Aqara'] = 'On' 
commandArray['GG Aqara Setting'] = 'Off'

Следующие три условия — думаю понятны, они отрабатываются в случае отключенного виртуального выключателя и включенной одной из клавиш, либо обоих сразу. В качестве действий — выключение включенных светильников. 

В принципе эти три условия можно сократить до одного, используя оператора or

elseif devicechanged['GG Aqara wireless']=='Both_Click' and otherdevices ['GG Aqara Setting] == 'Off' and otherdevices ['KR Aqara'] == 'On' or otherdevices ['KR Aqara'] == 'On' then 

И в качестве действий — отключение обоих клавиш. Но я решил сделать так как описал.

Надеюсь эта небольшая практика пригодится вам в написании сценариев, постараюсь ответить на ваши вопросы. 

По традиции видеоверсия обзора

Спасибо за внимание.