Gelezako / MajorDomo-Yeelight

Модуль для MajorDomo, позволяет автоматически добавить устройства Yeelight
2 stars 2 forks source link

Запрос Discovery отправляется некорректно #4

Open fsa opened 6 years ago

fsa commented 6 years ago

Я бы сделал так:

const DISCOVERY_RESPONSE = "M-SEARCH * HTTP/1.1\r\n". "HOST: 239.255.255.250:1982\r\n". "MAN: \"ssdp:discover\"\r\n". "ST: wifi_bulb\r\n";

В том виде, что есть в Yeelight_library.php, в запросе есть пустые строки и пробелы перед параметрами. В результате устройства не воспринимают команду и не отправляют ответ.

Gelezako commented 6 years ago

какие именно устройства не воспринимают команду и не отправляют ответ?

fsa commented 6 years ago

У меня лампа обычная цветная в цоколе E27 и светильник прикроватный. Почему возник вопрос? Потому что запускал локально прослушивание порта 1982. Когда перезапускаешь цикл Majordomo, то видно, что прилетает неправильный запрос от машинки с Majordomo (именно тот, с лишними пустыми строками и пробелами перед HOST, MAN и ST. Возможно, этот запрос и не используется, но он отправляется в неправильной форме. Если всё правильно реализовать, то можно за несколько секунд получить информацию о всех активных устройствах Yeelight (как я уже писал выше, у меня есть работающий код). В текущей версии обнаружение работает непонятно как. У меня долго не появлялся прикроватный светильник. Цикл особо не нужен, можно даже руками указать на каких IP висят устройства, но с его помощью можно обновлять состояния устройств и понимать, когда они в последний раз подавали признаки жизни.

Gelezako commented 6 years ago

В текущей реализации модуля есть только возможность включать,выключать, менять яркость и цвет лампочек. Обратная связь от них не реализована вообще. Т.е. корректная индикация к примеру на сцене не будет работать. Эту проблему я хотел решить с использованием цикла, но не хватило знаний. Если вы уже реализовали получение состояния от лампочки, то буду признателен если поделитесь опытом. Вижу что вы уже достаточно много проделали работы, предлагаю всё таки скооперироваться и создать один модуль, а не делать разрозненно.

fsa commented 6 years ago

Кстати, похоже плагин не имеет особого смысла. miIO делает всё тоже самое, только через обычный протокол, а не протокол для разработчиков.

Gelezako commented 6 years ago

для miIO нужно иметь токен, лично у меня нет телефона с рутом. Для этого модуля не нужны никакие токены.

fsa commented 6 years ago

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

Gelezako commented 6 years ago

а зачем мне всё это городить, что-то ставить, какие-то левые приложения, искать токен, если я могу просто поставить модуль и получить управление над всеми Yeelight лампочками? :)

skysilver-lab commented 6 years ago

Однозначно модуль должен быть и развиваться. Если есть открытое официальное API, то им и нужно пользоваться. А miIO это не официально, проблемно из-за токенов, и еще и могуть прикрыть (или изменить) в любой момент, когда вздумается китайцам.