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

Re: Модуль Broadlink

Добавлено: Вт июл 18, 2017 11:07 pm
igorewa
nick7zmail писал(а):Итак...как и обещал - презентую добавленные функции MS1

Теперь по карнизам dooya. Дописал класс "вслепую", функций пока не вводил никаких...надо потестить как работает...для этого откройте \modules\dev_broadlink\broadlink_debug_scr.php, измените строку $payload = $rm->some_req(); на $payload = $rm->set_level(<число>); где число попробовать от 0 до 255, и откройте в браузере http://<ваш_IP>/modules/dev_broadlink/broadlink_debug_scr.php?ip=<айпи_штор>
(естественно перед этим добавить шторы в модуль, если ещё не добавлены).
сделал , в браузере - payload decrypted: и все

Re: Модуль Broadlink

Добавлено: Вт июл 18, 2017 11:09 pm
nick7zmail
В браузере понятно...я в return ничего не выводил)) А со шторами происходит что нить?? если в 0,1,10,240,255 поставить?

Re: Модуль Broadlink

Добавлено: Вт июл 18, 2017 11:13 pm
igorewa
return? есть только это-
Пробовал 0,1,10,240,255 шторы не реагируют

Re: Модуль Broadlink

Добавлено: Вт июл 18, 2017 11:39 pm
nick7zmail
Да да...там так и должно быть...хм...надеялся, что сработает)))
Давай попробуем тогда воссоздать пакет, который он шлёт (что бы там не скрывалось)))
Зайди в broadlink.class.php, найди в конце class DOOYA extends Broadlink
и допиши в функцию set_level

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

    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[4] = $lvl; замени на $packet[4] = 0x2b; или на 0xb2 (в одном из пакетов точно было такое число) и попробуй так же (но тут число 0-255 бесполезно будет вставлять...оно роли не будет играть)...с любым значением можно попробовать(с пустым сругнется скорее всего, так что с 255 пробуй к примеру)...

Re: Модуль Broadlink

Добавлено: Вт июл 18, 2017 11:48 pm
igorewa
Все выше перечисленное перепробовал, тишина. А с пустым значением ругнулось.

Re: Модуль Broadlink

Добавлено: Ср июл 19, 2017 6:01 am
nick7zmail
igorewa писал(а):Все выше перечисленное перепробовал, тишина. А с пустым значением ругнулось.
хм...думал сканает...ладно, поизучаю ещё твои пакеты на досуге))

Re: Модуль Broadlink

Добавлено: Ср июл 19, 2017 2:55 pm
vitt76
nick7zmail, спасибо за MS1, вернусь домой - буду все пробовать!
Подскажи, а чем можно проверить, онлайн колонка или нет, перед тем как слать плей? Я жаловался чуть выше, что колонка пропадает и не появляется вновь. Я дергаю метод плей, система думает, что колонка играет, а она молчит.

Re: Модуль Broadlink

Добавлено: Ср июл 19, 2017 3:35 pm
nick7zmail
Ну чисто теоретически - на каждую команду по идее ответ приходит...это раз...но как перед отправкой команды узнать...хм...можно типа пинга сделать...типа если есть ответ - выставлять online, если нет -offline

Re: Модуль Broadlink

Добавлено: Ср июл 19, 2017 4:11 pm
VooDooN
Есть новости по SP3S и отлову мощности.

Если отправить SP3S запрос в байтах

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

$packet = bytearray(10);
     $packet[0x00] = 0x08;
    $packet[0x02] = 0xFE;
    $packet[0x03] = 0x01;
    $packet[0x04] = 0x05;
    $packet[0x05] = 0x01;
    $packet[0x09] = 0x2D; 
То в ответ придут такие байты (после расшифровки)

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

08 00 fe 01 01 80 12 00  00 a0 00 00 00 00 00 00
Где 6-й и 7-й байт отвечают за целое число (нужно потестить еще в больших числах, чтобы понять как их объеденить), а 5-й байт отвечает за число после запятой. Байты считаю с 0. В данном случае в E-Control было значение 12,8
Сложно пока оформить в виде кода. Попытаюсь, но сложнее всего придумать как 2 байта объеденить, чтобы получить целое число. Вечером попытаюсь еще поэкспериментировать с большими значениями.

Использовал такой драфт-код:

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

 function SP_Check_energy(){
     $packet = bytearray(10);
     $packet[0x00] = 0x08;
    $packet[0x02] = 0xFE;
    $packet[0x03] = 0x01;
    $packet[0x04] = 0x05;
    $packet[0x05] = 0x01;
    $packet[0x09] = 0x2D;
    
    $response = send_packet(0x6a, $packet);
    $err = hexdec(sprintf("%x%x", $response[0x23], $response[0x22]));
//    if($err == 0){
        $enc_payload = array_slice($response, 0x38);
//        if(count($enc_payload) > 0){
            $payload = byte2array(aes128_cbc_decrypt(key2str(), byte($enc_payload), iv2str()));
//               $energy = ????;
//          }
//    }
      return $payload;
//    return $energy;
 } 

Re: Модуль Broadlink

Добавлено: Ср июл 19, 2017 5:05 pm
nick7zmail
Что подразумевается под объединить? Сложить или просто склеить?

Отправлено с моего Xperia Z через Tapatalk