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

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

Модератор: immortal

tsnic
Сообщения: 6
Зарегистрирован: Вс ноя 26, 2017 5:25 pm
Благодарил (а): 2 раза
Поблагодарили: 2 раза

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

Сообщение tsnic » Пт дек 08, 2017 9:28 am

skysilver писал(а):
tsnic писал(а):Выгружал ПО MiToolkit 1.5. Токена на philips не было. Был токен на камеру dafang, но я ее не использую
А в михом-то эта лампа есть? Управляется из него? В MiToolkit список с результатами вниз прокручивал?
Спасибо, действительно есть. Нужно было прокрутить вверх. Хотя полоса прокрутки отсутствует и прокручивается только стрелками на клавиатуре
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

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

Сообщение skysilver » Пт дек 08, 2017 9:55 am

tsnic писал(а):Спасибо, действительно есть. Нужно было прокрутить вверх. Хотя полоса прокрутки отсутствует и прокручивается только стрелками на клавиатуре
Аха. Я, кстати, писал про этот момент в инструкции. ;)
За это сообщение автора skysilver поблагодарил:
tsnic (Пт дек 08, 2017 9:57 am)
Рейтинг: 1.16%
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 » Пт дек 08, 2017 9:15 pm

skysilver писал(а): П.С. Проверил у себя. Скачал zip с гита, распаковал поверх установленного модуля, таблицы в базе не чистил, удалил файл install, и в админке в Система-Модули-miioxiaomi нажал reinstall. Все четко, никаких ошибок.
удаление таблиц помогло
фанат Мажордомо
тематический блог 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 » Сб дек 09, 2017 12:47 am

Ну, что свершилось! Модуль опубликован в Маркете. Хоть и в статусе беты, но уже неплохо. ))

Переезжаем, по-тихоньку, в эту тему https://majordomo.smartliving.ru/forum/ ... f=5&t=4863

А здесь продолжаем обсуждать вопросы самого протокола miIO.
За это сообщение автора skysilver поблагодарил:
Tehnik053 (Вс дек 17, 2017 10:56 am)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
zoto
Сообщения: 90
Зарегистрирован: Пн окт 02, 2017 10:24 am
Благодарил (а): 38 раз
Поблагодарили: 0

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

Сообщение zoto » Сб дек 09, 2017 7:25 am

Коллеги, подскажите плиз: делаю поиск Токен miIO-устройства через Packet Sender. Токен шлюза дает, а пылесоса пишет FFFFFFFFFFFF.
Подскажите, что делаю не так.
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

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

Сообщение skysilver » Сб дек 09, 2017 11:24 am

zoto писал(а):Коллеги, подскажите плиз: делаю поиск Токен miIO-устройства через Packet Sender. Токен шлюза дает, а пылесоса пишет FFFFFFFFFFFF.
Подскажите, что делаю не так.
Это значит, что пылесос не шлет свой токен в ответных пакетах. Другим способом нужно доставать токен.
За это сообщение автора skysilver поблагодарил:
zoto (Сб дек 09, 2017 9:36 pm)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
zoto
Сообщения: 90
Зарегистрирован: Пн окт 02, 2017 10:24 am
Благодарил (а): 38 раз
Поблагодарили: 0

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

Сообщение zoto » Сб дек 09, 2017 9:38 pm

skysilver писал(а):
zoto писал(а):Коллеги, подскажите плиз: делаю поиск Токен miIO-устройства через Packet Sender. Токен шлюза дает, а пылесоса пишет FFFFFFFFFFFF.
Подскажите, что делаю не так.
Это значит, что пылесос не шлет свой токен в ответных пакетах. Другим способом нужно доставать токен.
Спасибо за ответ.
Получается только этим: " База данных и кеш-файлы Mihome", как в вашей инструкции?
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

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

Сообщение skysilver » Сб дек 09, 2017 9:40 pm

zoto писал(а):Получается только этим: " База данных и кеш-файлы Mihome", как в вашей инструкции?
Аха. Другие способы мне не известны.
За это сообщение автора skysilver поблагодарил:
zoto (Сб дек 09, 2017 10:34 pm)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
horas
Сообщения: 5
Зарегистрирован: Ср янв 04, 2017 1:18 am
Благодарил (а): 7 раз
Поблагодарили: 0

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

Сообщение horas » Сб дек 16, 2017 9:20 pm

Помогите разобраться...
Пытаюсь написать поддержку Xiaomi Power Strip (6 розеток)...
Через маркетовский модуль смог ее прицепить как розетку и получил функционал включения/выключения
Теперь нужно прикрутить снятие инфы с датчика потребления энергии
В другом проекте уже вроде научились вынимать эту инфу через параметр powerConsumed... Значит теперь пытаюсь достучаться до удлинителя...
Однако получаю неудачу при получении даже обычного параметра power

c:\_majordomo\server\php\php.exe E:\!Hlam\!soft\majordomo\majordomo_project\modules\xiaomimiio\php-miio-master\miio-cli.php --ip 192.168.0.19 --token 3994bbe6f7ba20675be60fcafea8465e --sendcmd {"id":3,"method":"get_prop","params":["power"]} --debug
Результат выполненияПоказать
array(4) {
["ip"]=>
string(12) "192.168.0.19"
["token"]=>
string(32) "3994bbe6f7ba20675be60fcafea8465e"
["sendcmd"]=>
string(37) "{id:3,method:get_prop,params:[power]}"
["debug"]=>
bool(false)
}
Соединение с устройством IP 192.168.0.19
Статус отладки [1]
Сокет успешно создан
Команда для отправки - {id:3,method:get_prop,params:[power]}

Проверяем доступность устройства 192.168.0.19
Параметр SO_RCVTIMEO сокета успешно задан
>>>>> Отправляем hello-пакет на 192.168.0.19 с таймаутом 5
>>>>> Отправлено в сокет 32 байт
<<<<< Получен ответ от IP 192.168.0.19 с порта 54321
Прочитано 32 байта из сокета
magic: 2131
length: 0020 --> 32 байт
unknown1: 00000000
devicetype: 02e7
serial: 7a8d
ts: 00008e73 --> 36467 секунд --> 1970-01-01 13:07:47
checksum: 3994bbe6f7ba20675be60fcafea8465e
ts_server: 5a356012 --> 1513447442 секунд --> 2017-12-16 21:04:02
timediff: -1513410975

Устройство 192.168.0.19 доступно
Параметр SO_RCVTIMEO сокета успешно задан
Используется токен, указанный вручную, - 3994bbe6f7ba20675be60fcafea8465e
>>>>> Отправляем пакет на 192.168.0.19 с таймаутом 5
magic: 2131
length: 0050 --> 80 байт
unknown1: 00000000
devicetype: 02e7
serial: 7a8d
ts: 00008e73 --> 36467 секунд --> 1970-01-01 13:07:47
checksum: 2f767a91fc7cd251fb6e2c5a469ce5dd
data: 65c3a06b6d6b0ecc89a4e6ad32d7d345c45c44b42087d03ee85a9f7e78ef390ad1ca8e98ad03f359689a03e8e505f18b
ts_server: 5a356012 --> 1513447442 секунд --> 2017-12-16 21:04:02
timediff: -1513410975
>>>>> Отправлено в сокет 80 байт
Ошибка чтения из сокета [10060] Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера.

Устройство 192.168.0.19 не доступно или не отвечает.
но обычный инфо проходит
c:\_majordomo\server\php\php.exe E:\!Hlam\!soft\majordomo\majordomo_project\modules\xiaomimiio\php-miio-master\miio-cli.php --ip 192.168.0.19 --info --token 3994bbe6f7ba20675be60fcafea8465e --debug
Результат выполненияПоказать
array(4) {
["ip"]=>
string(12) "192.168.0.19"
["info"]=>
bool(false)
["token"]=>
string(32) "3994bbe6f7ba20675be60fcafea8465e"
["debug"]=>
bool(false)
}
Соединение с устройством IP 192.168.0.19
Статус отладки [1]
Сокет успешно создан

Используем авто-формирование уникальных ID для команд из файла id.json
Команда для отправки - {"id":3,"method":"miIO.info","params":[]}

Проверяем доступность устройства 192.168.0.19
Параметр SO_RCVTIMEO сокета успешно задан
>>>>> Отправляем hello-пакет на 192.168.0.19 с таймаутом 5
>>>>> Отправлено в сокет 32 байт
<<<<< Получен ответ от IP 192.168.0.19 с порта 54321
Прочитано 32 байта из сокета
magic: 2131
length: 0020 --> 32 байт
unknown1: 00000000
devicetype: 02e7
serial: 7a8d
ts: 00008f4c --> 36684 секунд --> 1970-01-01 13:11:24
checksum: 3994bbe6f7ba20675be60fcafea8465e
ts_server: 5a3560ea --> 1513447658 секунд --> 2017-12-16 21:07:38
timediff: -1513410974

Устройство 192.168.0.19 доступно
Параметр SO_RCVTIMEO сокета успешно задан
Используется токен, указанный вручную, - 3994bbe6f7ba20675be60fcafea8465e
>>>>> Отправляем пакет на 192.168.0.19 с таймаутом 5
magic: 2131
length: 0050 --> 80 байт
unknown1: 00000000
devicetype: 02e7
serial: 7a8d
ts: 00008f4c --> 36684 секунд --> 1970-01-01 13:11:24
checksum: cdbd296be8a2573095296adf5b8a7b86
data: 3cb732a6ef1e4d7eb7c2a54cdfea881654d1978346164c044ef8b7db88fd2d9ddf69a239e66d57289fb0e196040cb5fd
ts_server: 5a3560ea --> 1513447658 секунд --> 2017-12-16 21:07:38
timediff: -1513410974
>>>>> Отправлено в сокет 80 байт
<<<<< Получен ответ от IP 192.168.0.19 с порта 54321
Прочитано 496 байта из сокета
magic: 2131
length: 01f0 --> 496 байт
unknown1: 00000000
devicetype: 02e7
serial: 7a8d
ts: 00008f4c --> 36684 секунд --> 1970-01-01 13:11:24
checksum: e63fed1d1b44bf00ffe853adaa090a8d
data: 3311b6280d7bc0177f86270e3ad502ef432aef1d68de74267786dba71e64aa22f2790ad071ab79bd09e8251610411d031b29578961a0095a26461ade5f26145d96b9527e2d201ead46a01b124a749560b372fae04b25ea95087cb04a50e885de6b0405d99c1866dba3c3ee20d09ab9e938b4267428bbe6cdca12016e56ce75a4d96b4261f22a552211ee9b072366fbacf97e1e6900cba574b8775764d42ee101449f0815b0505edf35138222d125f57a918b35be259ea4d2efda9233095180717e288098082d9c9dca37b89d489bb054baa142268cd10fa46d817ac3f5157b9bf1787b01a47b2993bb723e6c3c1e33f5a119061435f26ede9c5b3d058a3ce464cc381783ac94f0c37472168377eb91351e9eefb15d6eca88309fa8004854c9a17c846cb1355632ade5a560c4bfbdf8ade5036c1fc76e63beb7094e7fad124fffbe6e795c0dfd23640b29a67b5df69d9419701147c00ade0e6eb3aeb1ad1751b7ccf32dcc28221d9f8a4ce88e6931c01d2c6825f754d148d54c783099c0c61ac99208251655655d597b17e673a6d3410d0224c0252ffbc8c69a36eec9da1bafc1b29316588061518a971bd07a2d84afa55973e9ee1fbdfe03b5d7b8443d6442133cbeb415240205a624469f7b2fcc57bd
Расшифрованные данные: {"result":{"life":36684,"cfg_time":0,"token":"3994bbe6f7ba20675be60fcafea8465e","mac":"28:6C:07:17:7B:28","fw_ver":"1.2.4_51","hw_ver":"MW300","model":"zimi.powerstrip.v2","wifi_fw_ver":"SD878x-14.76.36.p84-702.1.0-WM","ap":{"rssi":-47,"ssid":"25e4e8","bssid":"E0:69:95:6D:FC:0F"},"netif":{"localIp":"192.168.0.19","mask":"255.255.255.0","gw":"192.168.0.1"},"mmfree":15832,"ot":"otu","otu_stat":[335,259,183,2,169,17],"ott_stat":[0, 0, 0, 0]},"id":3}
Данные JSON валидны.
Информация об устройстве:
{"result":{"life":36684,"cfg_time":0,"token":"3994bbe6f7ba20675be60fcafea8465e","mac":"28:6C:07:17:7B:28","fw_ver":"1.2.4_51","hw_ver":"MW300","model":"zimi.powerstrip.v2","wifi_fw_ver":"SD878x-14.76.36.p84-702.1.0-WM","ap":{"rssi":-47,"ssid":"25e4e8","bssid":"E0:69:95:6D:FC:0F"},"netif":{"localIp":"192.168.0.19","mask":"255.255.255.0","gw":"192.168.0.1"},"mmfree":15832,"ot":"otu","otu_stat":[335,259,183,2,169,17],"ott_stat":[0, 0, 0, 0]},"id":3}
Что я не так делаю при отправке sendcmd ?
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

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

Сообщение skysilver » Сб дек 16, 2017 9:24 pm

horas, какую версию модуля используешь? В версии 0.8 я добавил поддержку этого удлинителя. Данные о потреблении также должны считываться, если есть какая-то нагрузка. Обнови модуль, потестируй и отпишись в теме по модулю.

А по поводу команды в консоли - замени двойные кавычки на одинарные.
За это сообщение автора skysilver поблагодарил:
horas (Сб дек 16, 2017 10:48 pm)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Ответить