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

![]() |
|
Недавно ко мне приехал второй «магический куб» от Xiaomi, и я решил сделать еще один обзор этого замечательного контролера, но уже с точки зрения работы в Domoticz — который, к слову дает более широкий функционал по работе с ним, по сравнению с MiHome. Кому интересно — прошу читать далее
Посылка и упаковка
Посылка — типичная для товаров магазина 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 —
2 коментарі
Конечно. Про работу с броадлинком в домотикз я рассказывал в предыдущем обзоре. Поставить в сценарии действием куб и ок. Например