[Модуль] Broadlink (dev_broadlink)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
ovcher
Сообщения: 183
Зарегистрирован: Сб сен 12, 2015 3:11 am
Откуда: Волгоград
Благодарил (а): 60 раз
Поблагодарили: 39 раз
Контактная информация:

Re: Модуль Broadlink

Сообщение ovcher » Ср авг 23, 2017 5:50 pm

Сек, по моему до меня дошло, Вы предлагаете сделать подмену в broadlink.class.php так?
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Ср авг 23, 2017 5:52 pm

Почти...не обязательно там...можете в вашей функции подставить
$data= (dechex($payload[0x7])*10000+dechex($payload[0x6])*100+dechex($payload[0x5]))/100;
И посмотреть чему data равно получится, и будет ли мощности соответствовать, отображаемой на данный момент в e-control.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
ovcher
Сообщения: 183
Зарегистрирован: Сб сен 12, 2015 3:11 am
Откуда: Волгоград
Благодарил (а): 60 раз
Поблагодарили: 39 раз
Контактная информация:

Re: Модуль Broadlink

Сообщение ovcher » Ср авг 23, 2017 6:01 pm

Да я уж сделал в Вашем файле :) за одно и проверил байты.
По байтам, нет у Вас там 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 которых естественно раньше не было.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Ср авг 23, 2017 6:03 pm

Ну круто)) понял, добавим при обновлении...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
ovcher
Сообщения: 183
Зарегистрирован: Сб сен 12, 2015 3:11 am
Откуда: Волгоград
Благодарил (а): 60 раз
Поблагодарили: 39 раз
Контактная информация:

Re: Модуль Broadlink

Сообщение ovcher » Ср авг 23, 2017 6:08 pm

Стоп, у меня фигня какая то. Обратите внимание на первый скрин https://yadi.sk/i/4KEeweJ33MGQEi это поле добавилось после обновления но оно похоже на команду и как после его добавления там однажды появились правильные 1900 так они больше и не меняются, даже несмотря на нажатие кнопки обновить и на 5 секундный таймер. Больше я данные нигде не видел свойств по понятным причинам пока не делал.
Аватара пользователя
VooDooN
Сообщения: 307
Зарегистрирован: Сб июн 11, 2016 12:02 am
Благодарил (а): 170 раз
Поблагодарили: 64 раза

Re: Модуль Broadlink

Сообщение VooDooN » Ср авг 23, 2017 6:26 pm

Попробуйте пока на маленьких нагрузках и обязательно сравнивайте с еКонтрол в ту же секунду, когда скрипт отработал. Чтобы понять по какой формуле вообще нужно это лепить. Попробуйте маленькие, средние и большие. И будем думать, как оно получается в байтах
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Ср авг 23, 2017 6:31 pm

Обновление
Поддержка запроса энергии 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 - как я понял это просто запрос статуса...а если какая либо из остальных остановит карниз - то я кажется разгадал этот алгоритм протокола))
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
ovcher
Сообщения: 183
Зарегистрирован: Сб сен 12, 2015 3:11 am
Откуда: Волгоград
Благодарил (а): 60 раз
Поблагодарили: 39 раз
Контактная информация:

Re: Модуль Broadlink

Сообщение ovcher » Ср авг 23, 2017 6:34 pm

Ок. пробуем на вашем скрипте? Я с дуру ума убрал поле пауэр в мажоре теперь никак не получается его вернуть обратно я уже и цикл передергивал и обновлял, ни фига не могу вернуть и все.
ОК. Пойду попробую потестить на разных нагрузках.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль Broadlink

Сообщение nick7zmail » Ср авг 23, 2017 6:35 pm

Поле power должно восстановится автоматически.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
ovcher
Сообщения: 183
Зарегистрирован: Сб сен 12, 2015 3:11 am
Откуда: Волгоград
Благодарил (а): 60 раз
Поблагодарили: 39 раз
Контактная информация:

Re: Модуль Broadlink

Сообщение ovcher » Ср авг 23, 2017 6:50 pm

После обновления все вернулось воткнул зарядку от вейпа, стабильные 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
Ответить