Страница 176 из 376

Re: Модуль Broadlink

Добавлено: Вс авг 20, 2017 9:16 pm
Rad81
Еще раз обновился уже spmini нормально работает .

nick7zmail еще раз спасибо за модул

Re: Модуль Broadlink

Добавлено: Вс авг 20, 2017 9:55 pm
nick7zmail
Да пожалуйста =)
Рад, что хоть кому-то помогает он))

Re: Модуль Broadlink

Добавлено: Вс авг 20, 2017 9:58 pm
vitt76
nick7zmail, всем помогает, спасибо за труд! :)

Re: Модуль Broadlink

Добавлено: Пн авг 21, 2017 2:14 am
Maxmudjon
Как отправить на устройство payload ?
у меня Dooya DT360E

я уточнил что на ответы есть позиция мотора или карниза
SPOILERSPOILER_SHOW
111111111.png
111111111.png (104.42 КБ) 6008 просмотров

Re: Модуль Broadlink

Добавлено: Пн авг 21, 2017 8:12 am
nick7zmail
Эт хорошо)) А позиция от 0 до 100? или от 0 до 255? Или она вообще какими-то магическими единицами измеряется?)))может углом поворота...
Чтобы отправить - надо во-первых добавить его в модуль (не забыв выбрать тип устройства).
Во-вторых - сейчас есть команда set_level (её вы можете найти в broadlink.class.php)

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

    public function set_level($lvl){
        $packet = self::bytearray(16); 
        $packet[0] = 0x09;
        $packet[2] = 0xbb;
        $packet[3] = 0x06;
        $packet[9] = 0xfa;
        $packet[10] = 0x44;
        $packet[4] = $lvl;
        $this->send_packet(0x6a, $packet);
    }
Она пытается повторить байты в этом пакете, который вы привели, изменяя при этом позицию как раз. Но первый (точнее сказать нулевой $packet[0]) байт при отправке явно должен быть другой...мы его не нашли пока...его надо смотреть в апстриме.
И чтобы отправить эту команду - в broadlink_debug_scr.php ищем

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

$payload = $rm->some_req(); 
И меняем на

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

$payload = $rm->set_level(100); //100 - для примера...позиция, которую вы хотите выставить...       
И вызываем, как я и писал с broadlink_debug_scr.php?mode=debug&ip=<ip карниза>. При каждом вызове эта команда должна выполняться.
Можно добавить в функцию возврат ответа, чтобы видеть, что приходит в ответ.

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

//заменить $this->send_packet(0x6a, $packet); на
$response=$this->send_packet(0x6a, $packet);
return $response; 

Re: Модуль Broadlink

Добавлено: Пн авг 21, 2017 11:04 am
Maxmudjon
nick7zmail писал(а):Эт хорошо)) А позиция от 0 до 100? или от 0 до 255? Или она вообще какими-то магическими единицами измеряется?)))может углом поворота...
Чтобы отправить - надо во-первых добавить его в модуль (не забыв выбрать тип устройства).
Во-вторых - сейчас есть команда set_level (её вы можете найти в broadlink.class.php)

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

    public function set_level($lvl){
        $packet = self::bytearray(16); 
        $packet[0] = 0x09;
        $packet[2] = 0xbb;
        $packet[3] = 0x06;
        $packet[9] = 0xfa;
        $packet[10] = 0x44;
        $packet[4] = $lvl;
        $this->send_packet(0x6a, $packet);
    } 
Она пытается повторить байты в этом пакете, который вы привели, изменяя при этом позицию как раз. Но первый (точнее сказать нулевой $packet[0]) байт при отправке явно должен быть другой...мы его не нашли пока...его надо смотреть в апстриме.
И чтобы отправить эту команду - в broadlink_debug_scr.php ищем

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

$payload = $rm->some_req();
И меняем на

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

$payload = $rm->set_level(100); //100 - для примера...позиция, которую вы хотите выставить...        
И вызываем, как я и писал с broadlink_debug_scr.php?mode=debug&ip=<ip карниза>. При каждом вызове эта команда должна выполняться.
Можно добавить в функцию возврат ответа, чтобы видеть, что приходит в ответ.

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

//заменить $this->send_packet(0x6a, $packet); на
$response=$this->send_packet(0x6a, $packet);
return $response;
от 0 до 100

Re: Модуль Broadlink

Добавлено: Пн авг 21, 2017 11:14 am
nick7zmail
А кстати можно апстрим расшифрованный? На который приходит этот ответ?

Re: Модуль Broadlink

Добавлено: Пн авг 21, 2017 11:19 am
Maxmudjon
при вызове команда http://localhost/modules/dev_broadlink/ ... .168.100.2>
дает ошибка
Fatal error: Cannot redeclare aes128_cbc_encrypt() (previously declared in C:\_majordomo\htdocs\modules\dev_broadlink\broadlink_debug_scr.php:146) in C:\_majordomo\htdocs\modules\dev_broadlink\broadlink.class.php on line 5

Re: Модуль Broadlink

Добавлено: Пн авг 21, 2017 11:20 am
Maxmudjon
nick7zmail писал(а):А кстати можно апстрим расшифрованный? На который приходит этот ответ?
что меня показать ?

Re: Модуль Broadlink

Добавлено: Пн авг 21, 2017 11:28 am
nick7zmail
Maxmudjon писал(а):при вызове команда http://localhost/modules/dev_broadlink/ ... .168.100.2>
дает ошибка
Fatal error: Cannot redeclare aes128_cbc_encrypt() (previously declared in C:\_majordomo\htdocs\modules\dev_broadlink\broadlink_debug_scr.php:146) in C:\_majordomo\htdocs\modules\dev_broadlink\broadlink.class.php on line 5
Сори...мой недосмотр...закоментируй /* вот так */ эту функцию в скрипте broadlink_debug_scr.php (и другие, которые дублируются в broadlink.class.php)
Надо просто скрипт к нормальному виду привести...я всё никак не доберусь...
Maxmudjon писал(а): что меня показать ?
Ну как пакет пойман, который в расшифровке? Через ePacket Capture? Там, когда сохраняли - выбирали (наверное) DownStream (то что пришло от устройства)...так же надо сохранить UpStream (то что отправилось на устройство), и прогнать через decrypt...чтобы можно было постоянно считывать статус - надо знать, как его запросить.