Страница 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