Re: miIO - протокол для Xiaomi (Mi Home) устройств
Добавлено: Чт окт 05, 2017 9:47 am
Включил Yeelight лампочку, не находит.
Она же тоже должна находится?
Она же тоже должна находится?
Обсуждение проекта
https://www.mjdm.ru/forum/
Да, затупил, сорри.Aven писал(а):апач тут нипричем, т.к. запускаю из командной строки...
Код: Выделить всё
Ошибка чтения из сокета [11] Resource temporarily unavailableКод: Выделить всё
public $disc_timeout = 2; Должна. Я именно на ней и тестил.Aven писал(а):Включил Yeelight лампочку, не находит. Она же тоже должна находится?
Код: Выделить всё
tcpdump -i eth0 -n udp dst port 54321 or src port 54321Код: Выделить всё
# tcpdump -i enp1s0 -n udp dst port 54321 or src port 54321
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp1s0, link-type EN10MB (Ethernet), capture size 262144 bytes
12:48:34.941708 IP 172.16.1.11.54321 > 58.83.200.12.8053: UDP, length 32
12:48:35.211312 IP 58.83.200.12.8053 > 172.16.1.11.54321: UDP, length 32
12:48:40.596837 IP X.X.X.X.59089 > 172.16.1.11.54321: UDP, length 32
12:48:50.578899 IP 172.16.1.11.54321 > 58.83.200.12.8053: UDP, length 32
12:48:50.848457 IP 58.83.200.12.8053 > 172.16.1.11.54321: UDP, length 32Именно. У меня туда же идет шифрованный трафик от шлюза и от приложения Mihome на смарте.Aven писал(а):58.83.200.12 - я так понимаю облако сяоми
Код: Выделить всё
if( !socket_bind($sock, '172.16.1.1' , 0) ) {
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
if ($this->debug) echo "Не удалось привязать сокет [$errorcode] $errormsg" . PHP_EOL;
}
if ($this->debug) echo 'Сокет успешно привязан' . PHP_EOL;Модуля пока нет. ))Gelezako писал(а):Устройством XIAOMI IR Mi Remote 360 с помощью вашего модуля можно будет управлять? У него тоже со сих пор нет режима разработчика и наверно не будет.
Нет у меня MJD =) самописные скрипты. да, этот сервер маршрутизатором выступает.skysilver писал(а): Знающие комрады, м.б., позже предложать что-то дельное.
Aven, сервак с MJD в роли роутера еще выступает, аха?
Код: Выделить всё
# php miio-cli.php --discover 172.16.1.11 --debug
array(2) {
["discover"]=>
string(11) "172.16.1.11"
["debug"]=>
bool(false)
}
Поиск 172.16.1.11
Взаимодействие с устройством IP 172.16.1.11
Статус отладки [1]
Проверяем доступность устройства 172.16.1.11
Сокет успешно создан
Сокет успешно привязан
Отправляем hello-пакет на 172.16.1.11 с таймаутом 10
Ошибка чтения из сокета [11] Resource temporarily unavailable
Поиск выполнен. Устройств не найдено.Код: Выделить всё
php miio-cli.php --discover all --debug --bindip 192.168.1.36
Поиск всех
Режим широковещательного поиска устройств
Статус отладки [1]
Поиск доступных устройств в локальной сети (handshake discovery)
Сокет успешно создан
Параметр SO_RCVTIMEO сокета успешно задан
Параметр SO_BROADCAST сокета успешно задан
Сокет успешно привязан к адресу 192.168.1.36
Отправляем hello-пакет на 255.255.255.255 с таймаутом 15
Отправлено в сокет 32 байт
1 Получен ответ от IP 192.168.1.47 с порта 54321
Прочитано 32 байта из сокета
magic: 2131
length: 0020 --> 32 байт
unknown1: 00000000
devicetype: 035a
serial: fe8e
ts: 000704ad --> 459949 секунд
checksum: b31c928032e6a4afc898c5c8768a518f <-- may be token
2 Получен ответ от IP 192.168.1.45 с порта 54321
Прочитано 32 байта из сокета
magic: 2131
length: 0020 --> 32 байт
unknown1: 00000000
devicetype: 035f
serial: 8589
ts: 00162352 --> 1450834 секунд
checksum: c3d059d8e949382cef2c2f31c7f27799 <-- may be token
Поиск выполнен.
Найдено 2 устройств.
IP 192.168.1.47 DevType 035a Serial fe8e Token b31c928032e6a4afc898c5c8768a518f
IP 192.168.1.45 DevType 035f Serial 8589 Token c3d059d8e949382cef2c2f31c7f27799Код: Выделить всё
IP 192.168.1.80 DevType 02d3 Serial 292c Token 00000000000000000000000000000000