Xiaomi Magic Cube - расширение вариантов использования в системе управления умным домом Domoticz

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

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


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

Где купить?

Версия Mijia  Gearbest  Banggood  Aliexpress  JD.ru 

Версия Aqara  Gearbest  Banggood  Aliexpress  JD.ru 

Посылка и упаковка

Посылка — типичная для товаров магазина Banggood — черный кулек, стоимость посылки оценили в $5.45

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


Коробка, комплектация, внешний вид

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

Напомню что куб работает по протоклу ZigBee, для его работы необходим шлюз Xiaomi. В комплекте кроме куба, со сторонами в 4,5 см, еще идет маленькая инструкция на китайском и металлическая лопатка для открытия крышки, на одной из его сторон.

Элементом питания служит круглая батарейка CR2450. Так же под крышкой находится кнопка сброса.

 

Подключение к шлюзу

 

Для подключения необхоимо зайти в плагин управления шлюзом, выбрать опцию Add Subdevice и выбрать из подгрузившегося меню Cube Controller. Далее мастер подключения предложит взмахнуть кубом, это действие называется Swing — запомните это слово. После чего куб будет подключен. В MiHome предлагается 6 вариантов действий — поворот на 90 и 180 градусов, встряска, поворот по и против часовой стрелки, двойной тап по столу и сдвиг. Более подробно — в моем первом обзоре, ссылка выше.


После того как куб подключится к шлюзу, он автоматически подтянется в список устройств Domoticz.

 

Работа с кубом в Domoticz

 

Начну с того, что в Domoticz — имеется целых 11! вариантов действий, правда с учетом того, что одно из них — чисто программное — Off, а аналог Move on a plane  - разбито на 2 — поворот по и против часов стрелки. Выполнение скриптов можно забить на каждое из действий прямо в меню редактирования переключателя, даже без написания сценария.

Новыми действиями являются - 

swing — помните чуть выше я писал — запомните это слово, но куб умеет работать с этим состоянием только при сопряжении с шлюзом. Domoticz показывает что это состояние есть, но вызывать его не удастся.

alert — состояние проявлется в случае, если куб долго стоял без движения, а потом сдвинулся. Этот режим работает, но применения я ему не нашел. 

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

 

Сценарии

 

Для тех кто только осваивает написание сценариев в Domoticz и использует блочные сценарии — нужно знать, что для идентификации состояний куба, нужно пользоваться текстовым блоком с кавычками из категории Messages

При написании сценарием, просто копируем нужное состояние из перечня и вставляем его в текстовый блок. 

Внимание — если вы пишете сценарии блоками и в режиме All, обязательно ставьте на куб и другие логические выключатели задержку выключения — 1 секунда. Иначе сохраненное последнее состояние может вызывать самопроизвольное срабатываение сценариев. А куб в статусе — Off, в который он будет переходить через секунду, ничего запускать не будет, если вы специально не напишете для этого свой сценарий. 

Пример сценария на кубе выглядит так :

При поворте куба на 90 градусов - flip90 — меняется яркость лампочки. За текущий уровень отвечает пользовательская переменная GS Yeelight RGB, которая по кругу изменяется от 10 до 14. 

Вот модернизированная его версия на lua, аналогично при действии flip90, в зваисимости от текущего значения пользовательской переменной, меняется яркость лампы.

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

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

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

if devicechanged['Cube2'] == 'clock_wise' and uservariables["ddbright"] <=90 and otherdevices['DD Yeelight Luna'] ~= 'Off' then 
commandArray['Variable:ddbright']= tostring(uservariables["ddbright"] +10)
commandArray['DD Yeelight Luna']='Set Level '..uservariables["ddbright"]
elseif devicechanged['Cube2'] == 'anti_clock_wise' and uservariables["ddbright"] >=20 and otherdevices['DD Yeelight Luna'] ~= 'Off' then
commandArray['Variable:ddbright']= tostring(uservariables["ddbright"] -10)
commandArray['DD Yeelight Luna']='Set Level '..uservariables["ddbright"]

При повороте по часовой стрелке  'clock_wise' и значении яркости, записанной в пользовательскую переменную ddbright меньше или равно 90 — повышаем его значение на 10  tostring(uservariables[«ddbright»] +10) (то есть максимум до 100), и присваиваем его лампе - 'Set Level '..uservariables[«ddbright»].

И против часовой стрелки — уменьшаем с шагом в 10. Шаг изменения можно увеличить или уменьшить по желанию. 

Спасибо за внимание, надеюсь обзор был полезен. 

Пара обзоров по теме Domoticz -