Страница 161 из 217

[Модуль] Xiaomi Home (xiaomihome)

Добавлено: Вт мар 26, 2019 9:09 am
Husky
Расскажу про настройку срабатывания подсветки шлюза Gateway 2 при обнаружении движения. Не могу понять принцип регулировки цвета.

Подсветка шлюза привязана к объекту класса SRGB. В нем есть свойства color и brightness. Brightness работает вполне корректно и предсказуемо, а вот color нет.

Если устанавливать color прямо в свойстве объекта в панели управления, то шлюз загорается указанным цветом, brightness автоматически устанавливается в этом случае в 100, все хорошо.

А если пробовать установить цвет в коде, например в методе "motionDetected" датчика движения, то начинается что-то непонятное.

Поведение, которое пробовал настраивать:
При срабатывании датчика открытия входной двери в темное время суток включается белый цвет, яркость 100, через 2 мин тухнет.
При срабатывании датчика движения если уровень освещенности < 10 lux, то включать синий цвет, яркость 20 на 1 минуту.

Синий цвет включаю таким кодом:

Код: Выделить всё

setGlobal('GatewayLight.brightness', "20");
setGlobal('GatewayLight.color', "0000FF"); 
Белый соответственно

Код: Выделить всё

setGlobal('GatewayLight.brightness', "100");
setGlobal('GatewayLight.color', "FFFFFF"); 


Проблема в том, что сначала вне зависимости от задания цвета включался все время белый. Пробовал разными способами. В том числе и так:

Код: Выделить всё

callMethod('GatewayLight.setColor',array("color"=>'blue'));
Но иногда цвет все-таки включался нужный. То ли дело в том, что я не устанавливал яркость сразу после выбора цвета, то ли в том, что шлюз включал последний сохраненный цвет(пробовал менять через Mi Home, чтобы подобрать код цвета). Если сделать так:

Код: Выделить всё

setGlobal('GatewayLight.color', "0000FF");
SetTimeOut("lightOffTimer","setGlobal('GatewayLight.brightness', '50');", 15);
,
то работает нормально, сначала загорается синим, потом через 15 сек тускнеет

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

Полный код методов на текущий момент:
Метод motionDetected:

Код: Выделить всё

if (getGlobal('MotionSensor1.lux') < 10 ) {
  setGlobal('GatewayLight.color', "0000FF"); 
  setGlobal('GatewayLight.brightness', "20");
  clearTimeOut("lightOffTimer");
  SetTimeOut("lightOffTimer","setGlobal('GatewayLight.brightness', '0');", 60);
 }
Метод statusUpdated у датчика открытия двери

Код: Выделить всё

if (getGlobal('isDark')=="1" && getGlobal('MainDoor.status')=="0") {
  setGlobal('GatewayLight.color', 'FFFFFF');
  setGlobal('GatewayLight.brightness', '100');
  clearTimeOut("lightOffTimer");
  SetTimeOut("lightOffTimer","setGlobal('GatewayLight.brightness', '0');", 60 * 2);
}
Хочу понять это у всех так или я что-то делаю не так?

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Вт мар 26, 2019 12:09 pm
bat86
Такая же срань. Ставлю желтый, загорается белый.

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Вт мар 26, 2019 9:25 pm
Husky
Продолжил тесты с установкой яркости и цвета и пришел к такому выводу:
Мне кажется, что в передаваемом пакете шлюзу должны идти одновременно и цвет и яркость. Если отправить только яркость, то он сам подставит какой-то цвет из памяти, а если передать только цвет - то он будет считать, что яркость 100.
В системе MJ в модуле взаимодействия с xiaomi я так понял, что реализована отправка яркости и цвета по отдельности, что и приводит к таким последствиям.

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Ср мар 27, 2019 12:24 pm
Torch
Husky писал(а): Вт мар 26, 2019 9:25 pm Продолжил тесты с установкой яркости и цвета и пришел к такому выводу:
Мне кажется, что в передаваемом пакете шлюзу должны идти одновременно и цвет и яркость. Если отправить только яркость, то он сам подставит какой-то цвет из памяти, а если передать только цвет - то он будет считать, что яркость 100.
В системе MJ в модуле взаимодействия с xiaomi я так понял, что реализована отправка яркости и цвета по отдельности, что и приводит к таким последствиям.
если верить вот этому мануалу вы не правы. есть метод set_bright для яркости и set_ct_abx для цветовой температуры

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Ср мар 27, 2019 12:36 pm
nick7zmail
Во первых тут про шлюз Xiaomi говорят а не про yeelight, во-вторых если уж приглядываться к этому мануалу - у того же метода set_bright можно передать ещё пару параметров помимо яркости. На сяоми шлюз нет такого развёрнутого мануала, но возможно тут так же стоит поступить, и отправлять помимо цвета ещё и яркость в 1 посылке. Ну это так...предположения.

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Ср мар 27, 2019 1:08 pm
Husky
Torch писал(а): Ср мар 27, 2019 12:24 pm если верить вот этому мануалу вы не правы. есть метод set_bright для яркости и set_ct_abx для цветовой температуры
Вполне может быть и не прав, я не залезал в формат обмена пока, это вывод только исходя из экспериментов по настройке.

Формат действительно не похож, мне он намного больше нравится того, что есть в MJ относительно регулировки шлюза. Можно плавно менять яркость, что для меня было бы неплохо. Я хотел делать через таймеры и циклы плавное изменение яркости и цвета. Температура вообще не меняется на шлюзе, только цвет и яркость, по крайней мере в модуле. Какие возможности есть в протоколе я не знаю.

Куда копать дальше? Как определить какие есть параметры в сообщениях? снифить пакеты от мобильного приложения Mi Home или там другой протокол?

Пока создал тикет по этому поводу: https://connect.smartliving.ru/ideas/554.html

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Ср мар 27, 2019 2:48 pm
Torch
Husky писал(а): Ср мар 27, 2019 1:08 pm Я хотел делать через таймеры и циклы плавное изменение яркости и цвета.
В лампах (не знаю как в шлюзе) есть сцены - задаете начальные параметры, задаете конечные параметры и время перехода из одного состояние в другое. со скриптами по переходу мудрить не нужно.

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Ср мар 27, 2019 3:54 pm
Husky
Torch писал(а): Ср мар 27, 2019 2:48 pm
Husky писал(а): Ср мар 27, 2019 1:08 pm Я хотел делать через таймеры и циклы плавное изменение яркости и цвета.
В лампах (не знаю как в шлюзе) есть сцены - задаете начальные параметры, задаете конечные параметры и время перехода из одного состояние в другое. со скриптами по переходу мудрить не нужно.
Где эти сцены находятся? Если в родном приложении, то мы не можем их использовать в MJ, если эта функция не интегрирована в модуль для MJ. А так мне бы очень пригодился данный функционал.

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Ср мар 27, 2019 4:17 pm
skysilver
Хватить оффтопить. Лампочки yeelight обсуждайте в ветках модулей, через которые они интегрируются в МДМ. Здесь только касательно модуля Xiaomi Home.

Re: [Модуль] Xiaomi Home (xiaomihome)

Добавлено: Ср мар 27, 2019 4:33 pm
viss1
Подскажите! Куда смотреть?. В какой то определенный момент устройства не управляются через шлюз, вижу НЕВЕРНЫЙ КЛЮЧ. Проходит время, все вновь нормально. Как вычислить с чем это связано. Сейчас, опять не работает, в логах вижу такую строку:
Xiaomi data timeout... Try reconnect
15:58:53 0.35985200 {"cmd":"iam","port":"9898","sid":"7c49eb1ce440","model":"gateway","proto_version":"1.1.2","ip":"192.168.0.2"}
Заметил, когда перезагружаю сервер, команды от шлюза уходят на устройства. Проходит секунд 30 после загрузки и опять не работает.