miIO - протокол для Xiaomi (Mi Home) устройств

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: miIO - протокол для Xiaomi (Mi Home) устройств

Сообщение skysilver » Ср окт 18, 2017 1:38 am

Gelezako писал(а):нарыл я в общем токен для лампочки, нашёл его в базе данных. Хотя команда php miio-cli.php --discover all
почему-то показывает нули.
Утилита показывает нули, потому что лампочка не отдает больше свой токен. А Mihome-ом он был получен один раз при добавлении этой лампочки в приложение.
Gelezako писал(а):Может из-за того что утилита не видит токен? Как мне его явно указать?
Очень просто:

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

php miio-cli.php --ip 192.168.0.110 --token c3d059d8e949382cef2c2f31c7f27799 --debug --sendcmd {'id':1,'method':'toggle','params':[]} 
Токен заменить на свой. И повнимательнее с кавычками - в винде не нужно ставить открывающие и закрывающие, а внутри структуры json надо использовать одинарные.

P.S. У yeelight есть нормальное открытое api (в т.ч. библиотеки на php), поэтому можно было и не заморачиваться с токенами и шифрованием. ))
За это сообщение автора skysilver поблагодарил:
Gelezako (Ср окт 18, 2017 11:18 am)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
ysanjok
Сообщения: 15
Зарегистрирован: Сб авг 12, 2017 7:16 pm
Благодарил (а): 11 раз
Поблагодарили: 7 раз

Re: miIO - протокол для Xiaomi (Mi Home) устройств

Сообщение ysanjok » Ср окт 18, 2017 5:31 am

Прошу простить за столь глупый вопрос.
Как бы всё это чудо "запихнуть" в Мажорик?
Сейчас в хозяйстве имеется:
Philips connected bulb (2шт)
Gateway v2
SmartSwitch (2шт)
Aqura Move Sensor
Temperature & Humidity sensor
ZigBee plug (2шт)
MiRouter v3
___
С модулем Xiaomi Smart Home разобраться смог, Хаб, датчики и кнопки прикрутил. Лампочки выдали токены, путем сброса. И тут я застопорился.

А и ещё одно, датчик движения передаёт значение "lux" - освещенность, с горем пополам разобрался как привязать к "устройству". Но было бы удобнее добавить возможность привязки по аналогии с датчиком температуры или движения, через "Простые устройства"

Прошу сильно не пинать ;)

Отправлено с моего Redmi Note 4 через Tapatalk
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: miIO - протокол для Xiaomi (Mi Home) устройств

Сообщение nick7zmail » Ср окт 18, 2017 6:06 am

ysanjok писал(а): А и ещё одно, датчик движения передаёт значение "lux" - освещенность, с горем пополам разобрался как привязать к "устройству". Но было бы удобнее добавить возможность привязки по аналогии с датчиком температуры или движения, через "Простые устройства"
Как я понял тут не полноценный модуль, а пока только пхп класс, который постепенно обрастает функциями))...я думаю когда доберутся ребята до модуля - там будет возможность привязки к простым устройствам.
Сейчас же вы можете самостоятельно создать новое простое устройство, запомнить объект.свойство к которым оно привязано, и засылать данные туда.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: miIO - протокол для Xiaomi (Mi Home) устройств

Сообщение skysilver » Ср окт 18, 2017 9:37 am

ysanjok писал(а):Как бы всё это чудо "запихнуть" в Мажорик?
По-простому пока никак. На данный момент это только "инструмент", а не готовый модуль, в котором можно по кнопочкам пощелкать и все настроить.
ysanjok писал(а):Сейчас в хозяйстве имеется:Philips connected bulb (2шт), Gateway v2, SmartSwitch (2шт), Aqura Move Sensor, Temperature & Humidity sensor, ZigBee plug (2шт), MiRouter v3.
Эти девайсы Gateway v2, Aqara Move Sensor, Temperature & Humidity sensor, ZigBee plug сразу отбрасываем, для них уже есть свой отдельный модуль.

А вот Philips connected bulb, SmartSwitch, MiRouter v3 представляют интерес. Лампочки Philips у меня есть, с ними все уже разобрано и понятно. Описать пример их добавления в MJD с помощью данного php-класса у меня есть в планах. SmartSwitch и MiRouter v3 у меня нет, поэтому сам искать команды управления ими и тестировать эти команды я не могу - тут только совместная работа с владельцами. Либо можно проспонсировать меня на покупку этих устройств, тогда я все сделаю все сам, а вам останется только пользоваться результатом. И насчет роутера у меня нет 100%ой уверенности, что работает с Mihome по протоколу miIO, надо проверять.
ysanjok писал(а):Лампочки выдали токены, путем сброса. И тут я застопорился.
Я сделаю пример их интеграции в MajorDoMo, как будет время и возможность. Ускорить этот процесс можно здесь http://connect.smartliving.ru/tasks/40.html
ysanjok писал(а):А и ещё одно, датчик движения передаёт значение "lux" - освещенность, с горем пополам разобрался как привязать к "устройству". Но было бы удобнее добавить возможность привязки по аналогии с датчиком температуры или движения, через "Простые устройства"
Об этом лучше отписаться в соответствующих темах модулей Простые устройства и Xiaomi Smart Home.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: miIO - протокол для Xiaomi (Mi Home) устройств

Сообщение Gelezako » Ср окт 18, 2017 11:18 am

skysilver писал(а):Очень просто:

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

php miio-cli.php --ip 192.168.0.110 --token c3d059d8e949382cef2c2f31c7f27799 --debug --sendcmd {'id':1,'method':'toggle','params':[]}
Токен заменить на свой. И повнимательнее с кавычками - в винде не нужно ставить открывающие и закрывающие, а внутри структуры json надо использовать одинарные.
ура, наконец-то у меня заработало хоть что-то :mrgreen:
skysilver писал(а): P.S. У yeelight есть нормальное открытое api (в т.ч. библиотеки на php), поэтому можно было и не заморачиваться с токенами и шифрованием. ))
:o
капец, а я мучился, а ссылку можно? Если есть готовый проект, да ещё и на пхп, то очень странно что до сих пор нет модуля в МЖД.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: miIO - протокол для Xiaomi (Mi Home) устройств

Сообщение skysilver » Ср окт 18, 2017 11:21 am

Gelezako писал(а):ура, наконец-то у меня заработало хоть что-то
Отлично! Процесс пошел. ))
Gelezako писал(а):капец, а я мучился, а ссылку можно? Если есть готовый проект, да ещё и на пхп, то очень странно что до сих пор нет модуля в МЖД.
Вот же, даже на форуме уже обсудили viewtopic.php?f=18&t=4193&hilit=yeelight
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
webms
Сообщения: 498
Зарегистрирован: Чт дек 15, 2016 3:13 am
Благодарил (а): 221 раз
Поблагодарили: 88 раз

Re: miIO - протокол для Xiaomi (Mi Home) устройств

Сообщение webms » Чт окт 19, 2017 12:24 am

Мужики, помогите за вознаграждение прикрепить в МДМ Робот пылесос Сяоми и Лампу Филипс
самому не получилось

Дам доступ к серверу на винде 7
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: miIO - протокол для Xiaomi (Mi Home) устройств

Сообщение skysilver » Чт окт 19, 2017 12:27 am

webms писал(а):Мужики, помогите за вознаграждение прикрепить в МДМ Робот пылесос Сяоми и Лампу Филипс
самому не получилось Дам доступ к серверу на винде 7
Пиши в личку реквизиты доступа.
За это сообщение автора skysilver поблагодарил:
webms (Чт окт 19, 2017 1:47 am)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
webms
Сообщения: 498
Зарегистрирован: Чт дек 15, 2016 3:13 am
Благодарил (а): 221 раз
Поблагодарили: 88 раз

Re: miIO - протокол для Xiaomi (Mi Home) устройств

Сообщение webms » Чт окт 19, 2017 1:47 am

skysilver писал(а):
webms писал(а):Мужики, помогите за вознаграждение прикрепить в МДМ Робот пылесос Сяоми и Лампу Филипс
самому не получилось Дам доступ к серверу на винде 7
Пиши в личку реквизиты доступа.
СПАСИБО огромное! Все супер. Настоящий профессионал!
Аватара пользователя
webms
Сообщения: 498
Зарегистрирован: Чт дек 15, 2016 3:13 am
Благодарил (а): 221 раз
Поблагодарили: 88 раз

Re: miIO - протокол для Xiaomi (Mi Home) устройств

Сообщение webms » Чт окт 19, 2017 4:21 pm

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

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

C:\_majordomo\server\php>php.exe C:\php-miio-master\miio-cli.php --token 633756495a714e376964305a79394570 --ip 192.168.0.112 --info
консоль отвечает

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

Информация об устройстве:
{"partner_id":"","id":1,"code":0,"message":"ok","result":{"hw_ver":"Linux","fw_ver":"3.3.9_003077","ap":{"ssid":"KAWASAKI","bssid":"7C:26:64:56:81:47","rssi":-59},"netif":"localIp":"192.168.0.112","mask":"255.255.255.0","gw":"192.168.0.1"},"model":"rockrobo.vacuum.v1","mac":"34:CE:00:E9:E4:00""token":"633756495a714e376964305a79394570","life":44842}}
и если повторить еще раз

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

C:\_majordomo\server\php>php.exe C:\php-miio-master\miio-cli.php --token 633756495a714e376964305a79394570 --ip 192.168.0.112 --info
то дальше будет выдавать только

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

Устройств не отвечает.
В чем может быть проблема?

Аналогично и для

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

php.exe C:\php-miio-master\miio-cli.php --token 633756495a714e376964305a79394570 --ip 192.168.0.112 --sendcmd {'id':1,'method':'toggle','params':[]} --debug
Выдает:

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

array(4) {
  ["token"]=>
  string(32) "633756495a714e376964305a79394570"
  ["ip"]=>
  string(13) "192.168.0.112"
  ["sendcmd"]=>
  string(38) "{'id':1,'method':'toggle','params':[]}"
  ["debug"]=>
  bool(false)
}
Соединение с устройством IP 192.168.0.112
Статус отладки [1]
Команда для отправки - {"id":1,"method":"toggle","params":[]}

Проверяем доступность устройства 192.168.0.112
Сокет успешно создан
Параметр SO_RCVTIMEO сокета успешно задан
Отправляем hello-пакет на 192.168.0.112 с таймаутом 15
Отправлено в сокет 32 байт
Получен ответ от IP 192.168.0.112 с порта 54321
Прочитано 32 байта из сокета
magic: 2131
length: 0020 --> 32 байт
unknown1: 00000000
devicetype: 03da
serial: 3682
ts: 59e8a66b --> 1508419179 секунд
checksum: ffffffffffffffffffffffffffffffff

Устройство 192.168.0.112 доступно
Сокет успешно создан
Параметр SO_RCVTIMEO сокета успешно задан
Используется токен, указанный вручную, - 633756495a714e376964305a79394570
Отправляем пакет на 192.168.0.112 с таймаутом 5
Отправлено в сокет 80 байт
Ошибка чтения из сокета [10060] ╧юя√Єър єёЄрэютшЄ№ ёюхфшэхэшх с√ыр схчєёях°эющ

Устройство 192.168.0.112 не доступно или не отвечает. 
Ответить