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

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

Модератор: immortal

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

Re: [Модуль] Broadlink

Сообщение nick7zmail » Ср мар 07, 2018 1:20 pm

skyrider писал(а): Как заставить выключатели Sesoo работать с кодами от ТС2 в МЖД после патча, куда копать?
для начала посмотрите в логи на предмет ошибок. В основной лог, и лог цикла бродлинк...ну скорее всего не в цикле будут...
Потом попробуйте найти логи апача и php (понятия не имею где они в винде...с линуксом в этом плане проще). Ищите так же любые ошибки в момент попытки отправки команды....

ПС: На php7.0 в малинке пашет нормально...проблема по ходу именно в виндовой сборке...Я всё до экспериментов на виртуалке не доберусь...геморно как то =D...да и приболел немного к тому же.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: [Модуль] Broadlink

Сообщение dmw » Ср мар 07, 2018 2:28 pm

olehs писал(а):

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

OPENSSL_ZERO_PADDING
в данном случае делает то же самое, что и

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

$data = str_pad($data, 16, chr(0), STR_PAD_RIGHT);
Так что это ни на что не должно влиять.
Пока только мысли в слух:
Вот сейчас только что попробовал у себя на 7.0.25 этот код:

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

$data = 'hello';
$key = implode(array_map("chr", array(0x09, 0x76, 0x28, 0x34, 0x3f, 0xe9, 0x9e, 0x23, 0x76, 0x5c, 0x15, 0x13, 0xac, 0xcf, 0x8b, 0x02)));
$iv = implode(array_map("chr", array(0x56, 0x2e, 0x17, 0x99, 0x6d, 0x09, 0x3d, 0x28, 0xdd, 0xb3, 0xba, 0x69, 0x5a, 0x2e, 0x6f, 0x58)));
$data_pad = str_pad($data, 16, chr(0), STR_PAD_RIGHT);
$result_1 = base64_encode(openssl_encrypt($data_pad, 'AES-128-CBC', $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $iv));
$result_2 = base64_encode(openssl_encrypt($data_pad, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv));
$result_3 = base64_encode(openssl_encrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $iv));
$result_4 = base64_encode(openssl_encrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv));
$result_5 = base64_encode(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv));
echo "1:".$result_1."<br>2:".$result_2."<br>3:".$result_3."<br>4:".$result_4."<br>5:".$result_5."<br>"; 
Выводит совершенно разные результаты, причем $result_5 - какбы эталонный с которым все работало до некоторого времени и ни один с ним не совпал, странно все это:
1:0xvj8lfXyQZT8g6H8MGMUw==
2:0xvj8lfXyQZT8g6H8MGMU5GZer23vVPF7F24LCfdbVI=
3:
4:E3m4kfM5ld8sG9UMIpe2uA==
5:0EdmLv3oKPs3qJwldEagQw==
За это сообщение автора dmw поблагодарил:
olehs (Ср мар 07, 2018 2:37 pm)
Рейтинг: 1.16%
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: [Модуль] Broadlink

Сообщение olehs » Ср мар 07, 2018 2:39 pm

у ваc в эталоне mcrypt_decrypt вместо mcrypt_encrypt.
Если поменять - совпадет с вариантом 1
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: [Модуль] Broadlink

Сообщение dmw » Ср мар 07, 2018 2:53 pm

а да точно.
Теперь все ок должно быть.
Ваходит что

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

function aes128_cbc_encrypt($key, $data, $iv) {
    $data = str_pad($data, 16, chr(0), STR_PAD_RIGHT);
    return openssl_encrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $iv);
}
правильней будет чем щас там.
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: [Модуль] Broadlink

Сообщение olehs » Ср мар 07, 2018 2:59 pm

ага. еще бы decrypt сравнить
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: [Модуль] Broadlink

Сообщение olehs » Ср мар 07, 2018 3:16 pm

olehs писал(а):ага. еще бы decrypt сравнить
Проверил. trim - нужен.
Предлагаю так

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

function aes128_cbc_decrypt($key, $data, $iv) {
    return rtrim(openssl_decrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $iv), chr(0));
}
За это сообщение автора olehs поблагодарил:
bat86 (Ср мар 07, 2018 10:31 pm)
Рейтинг: 1.16%
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: [Модуль] Broadlink

Сообщение olehs » Ср мар 07, 2018 3:41 pm

Ну и конечно же encrypt правильней будет так

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

function aes128_cbc_encrypt($key, $data, $iv) {
  $data = str_pad($data, ceil(strlen($data) / 16) * 16, chr(0), STR_PAD_RIGHT);    
  return openssl_encrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $iv);
} 
За это сообщение автора olehs поблагодарил:
bat86 (Ср мар 07, 2018 10:31 pm)
Рейтинг: 1.16%
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] Broadlink

Сообщение nick7zmail » Ср мар 07, 2018 7:21 pm

Принял реквест.
Если честно - на всех операционках проверять не в состоянии сейчас.
Так что не пинайте если что не пашет))

Отправлено с моего Xperia XZ1 Compact через Tapatalk
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Cashmarik
Сообщения: 55
Зарегистрирован: Вс дек 18, 2016 7:29 am
Благодарил (а): 5 раз
Поблагодарили: 2 раза

Re: [Модуль] Broadlink

Сообщение Cashmarik » Ср мар 07, 2018 7:26 pm

Здравствуйте, в лог постоянно сыпется такая запись:
PHP Warning: socket_recvfrom(): unable to recvfrom [10060]: Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера.
in C:\_majordomo\htdocs\modules\dev_broadlink\broadlink.class.php on line 553

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

$ret = socket_recvfrom($cs, $response, 2048, 0, $from, $port); 
В чем может быть трабл?
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] Broadlink

Сообщение nick7zmail » Ср мар 07, 2018 7:39 pm

Проверьте правильно ли убиты параметры устройства...мож ip поменялся или ещё что....ошибка возникает, когда до устройства сервер не может достучаться.

Отправлено с моего Xperia XZ1 Compact через Tapatalk
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить