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

Re: Модуль Broadlink

Добавлено: Ср авг 23, 2017 5:50 pm
ovcher
Сек, по моему до меня дошло, Вы предлагаете сделать подмену в broadlink.class.php так?

Re: Модуль Broadlink

Добавлено: Ср авг 23, 2017 5:52 pm
nick7zmail
Почти...не обязательно там...можете в вашей функции подставить
$data= (dechex($payload[0x7])*10000+dechex($payload[0x6])*100+dechex($payload[0x5]))/100;
И посмотреть чему data равно получится, и будет ли мощности соответствовать, отображаемой на данный момент в e-control.

Re: Модуль Broadlink

Добавлено: Ср авг 23, 2017 6:01 pm
ovcher
Да я уж сделал в Вашем файле :) за одно и проверил байты.
По байтам, нет у Вас там 7,6,5. Я заменил так:

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

public function Check_Energy(){

        $packet = self::bytearray(16);
/*            $packet[0x00] = 0x08;
            $packet[0x02] = 0xFE;
            $packet[0x03] = 0x01;
            $packet[0x04] = 0x05;
            $packet[0x05] = 0x01;
            $packet[0x09] = 0x2D; */
     $packet[0x00] = 0x04;

    $packet[0x04] = 0xF2;

    $packet[0x05] = 0x20;

    $packet[0x06] = 0x02;

        $response = $this->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 = $this->byte2array(aes128_cbc_decrypt($this->key(), $this->byte($enc_payload), $this->iv()));
                $data= (dechex($payload[0x6])*10000+dechex($payload[0x5])*100+dechex($payload[0x4]))/100; 
                return $data;
            }

        }
 
И тут же на выходе получил: https://yadi.sk/i/4KEeweJ33MGQEi что практически соответствует действительности, и да появились и часы: https://yadi.sk/i/opIXOMwx3MGQWP которых естественно раньше не было.

Re: Модуль Broadlink

Добавлено: Ср авг 23, 2017 6:03 pm
nick7zmail
Ну круто)) понял, добавим при обновлении...

Re: Модуль Broadlink

Добавлено: Ср авг 23, 2017 6:08 pm
ovcher
Стоп, у меня фигня какая то. Обратите внимание на первый скрин https://yadi.sk/i/4KEeweJ33MGQEi это поле добавилось после обновления но оно похоже на команду и как после его добавления там однажды появились правильные 1900 так они больше и не меняются, даже несмотря на нажатие кнопки обновить и на 5 секундный таймер. Больше я данные нигде не видел свойств по понятным причинам пока не делал.

Re: Модуль Broadlink

Добавлено: Ср авг 23, 2017 6:26 pm
VooDooN
Попробуйте пока на маленьких нагрузках и обязательно сравнивайте с еКонтрол в ту же секунду, когда скрипт отработал. Чтобы понять по какой формуле вообще нужно это лепить. Попробуйте маленькие, средние и большие. И будем думать, как оно получается в байтах

Re: Модуль Broadlink

Добавлено: Ср авг 23, 2017 6:31 pm
nick7zmail
Обновление
Поддержка запроса энергии sp2 - проверьте...

Благодаря уважаемому Maxmudjon и его пострадавшему карнизу (надеюсь он заработает) мы таки узнали команды, которые, как минимум, умеют открывать/закрывать карниз...
Как проверить:
1) Добавить карниз в модуль
2) Нажать обновить (в устройстве периодическое обновление не включать...либо включить (раз в 5 сек к примеру), и потом поставить None)
3) Глянуть данные - должна появится строка state
4) Связать с любым объектом/свойством
5) Выставить свойство - 1 - закрыть 2 - открыть...
Что делать далее:
Меня интересуют следующие моменты:
1) В функции set_level в broadlink.class.php закоментить все байты кроме 1 и 4

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

        $packet[0] = 0x09;
        //$packet[2] = 0xbb;
        $packet[3] = $val;
        //$packet[9] = 0xfa;
        //$packet[10] = 0x44;     
И проверить работает ли...потом возвращать по 1 - надо вычислить нужны ли они вообще или нет.
2) Во время движения попробовать выставить свойства помимо 1/2 - 0, 3, 4, 5, 6...6 - как я понял это просто запрос статуса...а если какая либо из остальных остановит карниз - то я кажется разгадал этот алгоритм протокола))

Re: Модуль Broadlink

Добавлено: Ср авг 23, 2017 6:34 pm
ovcher
Ок. пробуем на вашем скрипте? Я с дуру ума убрал поле пауэр в мажоре теперь никак не получается его вернуть обратно я уже и цикл передергивал и обновлял, ни фига не могу вернуть и все.
ОК. Пойду попробую потестить на разных нагрузках.

Re: Модуль Broadlink

Добавлено: Ср авг 23, 2017 6:35 pm
nick7zmail
Поле power должно восстановится автоматически.

Re: Модуль Broadlink

Добавлено: Ср авг 23, 2017 6:50 pm
ovcher
После обновления все вернулось воткнул зарядку от вейпа, стабильные 4.94Вт. Вот так они выглядят в Вашем скрипте:

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

payload decrypted:
0000   004 000 000 000 074 019 000 000  000 000 000 000 000 000 000 000 
0000   04 00 00 00 4a 13 00 00  00 00 00 00 00 00 00 00
Вот что при этом единожды показал мажор, далее ничего не менялось, такое ощущение что он тупо берет шстнадцатеричку
: https://yadi.sk/i/JvM3NZ_M3MGUod