Страница 14 из 14

Re: Подключение BroadLink без RM-brige и BroadlinkHTTPBrige

Добавлено: Ср авг 02, 2017 8:13 pm
nick7zmail
vshuka911 писал(а):извените,было getProperty. Но результат тот же.
Для начала я хочу включить и выключить без изменения тем-р.
И как у вас в таком случае получается свойство power? Оно как-то записывается? Можно всю цепочку событий, которые должны происходить?

Re: Подключение BroadLink без RM-brige и BroadlinkHTTPBrige

Добавлено: Ср авг 02, 2017 8:16 pm
vshuka911
ой ёй ей....я забыл прилепить метод....все получилось,спасибо большое за терпение

Re: Подключение BroadLink без RM-brige и BroadlinkHTTPBrige

Добавлено: Ср авг 02, 2017 8:17 pm
nick7zmail
vshuka911 писал(а):ой ёй ей....я забыл прилепить метод....все получилось,спасибо большое за терпение
Ну вот)) Собственно примерно так оно и бывает))

Re: Подключение BroadLink без RM-brige и BroadlinkHTTPBrige

Добавлено: Пт май 04, 2018 11:44 am
onestat
Подскажите, есть у кого расшифрованнве пакеты от кондея или как снимать с него состояния?

Подключение BroadLink без RM brige и BroadlinkHTTPBrige

Добавлено: Вт июл 24, 2018 10:05 am
ArenScalpSr
Спасибо большое, Alexey_Palich . Это мой просто первый опыт с АДР вот разбираюсь. Получаеться "3";"6";"8". Правильно я понял?

Re: Подключение BroadLink без RM-brige и BroadlinkHTTPBrige

Добавлено: Вт июл 24, 2018 10:17 am
olehs
onestat писал(а):
Пт май 04, 2018 11:44 am
Подскажите, есть у кого расшифрованнве пакеты от кондея или как снимать с него состояния?
Я расшифровывал свой Zanussi.
Сценарий прикладываю. Думаю, можете из него взять часть, связанную с Broadlink, ну а протокол самого кондея лучше поискать в интернете (в моем случае - NEC).
СпойлерПоказать

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

$brcode = $params['code'];
//$brcode = '2600d40014351734161114101511160f153616341538143613361634153714351635151215101510151114111510153515361634161114111511141114121411160f15101512151213111412150f1634170f1535171113111611131016101510170f160f151214111510151015111536151114111512131114121410161015111412141114111511160f15111411151016101510151115111510160f160f15361611151014111512141015101512141114101511151116351633161114101511160f16101512141114111436151213121412131215000d05';

$brcodes = str_split($brcode, 2);
$type = hexdec($brcodes[0]);
if($type != 0x26)
 return ["type"=> "unknown"];

$repeats = hexdec($brcodes[1]);
$len = hexdec($brcodes[3].$brcodes[2]);
//echo $len;

$data = array_slice($brcodes, 4);
//print_r($data);

$rawdata = [];
for($i=0; $i<$len; $i++) {
  if($data[$i] == '00') {
   $rawdata[] = hexdec($data[++$i].$data[++$i]);
  } else {
   $rawdata[] = hexdec($data[$i]);
  }
}
//print_r($rawdata);
$s1 = $rawdata[0];
$s2 = $rawdata[1];

if($s2 && round($s1 / $s2) == 2) { // NEC
 $pulse_len = $s2 / 8;
} else {
 $res = [
   "type" => "IR",
   "repeats" => $repeats,
   "length" => $len,
   "IR" => [
  	"protocol" => "unknown",
    "rawdata" => $rawdata
   ]
 ];
// print_r($res);
 return $res;
}
//echo $pulse_len;

$bdata = array_map(function($value) use ($pulse_len) { return round($value / $pulse_len); }, $rawdata);
//print_r($bdata);

$bcodes = '';
for($i=0; $i<count($bdata); $i++) {
  if($bdata[$i] == 1 || $bdata[$i] == 3) {
    $i++;
    if($bdata[$i] == 1) 
     $bcodes .= '0';
    else if($bdata[$i] == 3) 
     $bcodes .= '1';
  }
}

$codes = str_split($bcodes, 8);
$bincodes = array_map('strrev', $codes);
$deccodes = array_map('bindec', $bincodes);
$hexcodes = array_map(function($v) { return sprintf('%02X', $v); }, $deccodes);
$hexstr = join(' ', $hexcodes);
//echo $codes;
$res = [
 "type" => "IR",
 "repeats" => $repeats,
 "length" => $len,
 "IR" => [
  	"protocol" => "NEC",
    "rawdata" => $bdata,
  	"hexstr" => $hexstr,
  	"bincodes" => $bincodes,
  	"deccodes" => $deccodes,
  	"hexcodes" => $hexcodes
 ]
];
//print_r($res);
return $res;
А вот результат выполнения скрипта для некоторых команд моего кондиционера

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

ACCool16	C3 47 E0 00 A0 00 20 00 00 20 00 06 D0
ACCool22	C3 77 E0 00 A0 00 20 00 00 20 00 01 FB
ACCool22SW	C3 70 E0 00 A0 00 20 00 00 20 00 06 F9
ACCool23	C3 7F E0 00 A0 00 20 00 00 20 00 06 08
ACCool24	C3 87 E0 00 A0 00 20 00 00 20 00 06 10
ACCool24S	C3 87 E0 00 A0 80 20 00 00 20 00 05 8F
ACCool24_5	C3 87 E0 80 A0 00 20 00 00 20 00 08 92
ACCool24_5S	C3 87 E0 80 A0 80 20 00 00 20 00 08 12
ACCool25	C3 8F E0 00 A0 00 20 00 00 20 00 06 18
ACCool25S	C3 8F E0 00 A0 80 20 00 00 20 00 06 98
ACDisp		C3 87 E0 00 00 00 00 00 00 00 00 00 00
ACHeat24	C3 87 E0 00 A0 00 80 00 00 30 00 05 7F
ACHeat24_5	C3 87 E0 80 A0 00 80 00 00 30 00 00 FA
ACHeat32	C3 C0 E0 00 A0 00 80 00 00 30 00 05 B8
ACOff		C3 70 E0 00 A0 00 80 00 00 00 00 05 38
Здесь https://github.com/ToniA/Raw-IR-decoder-for-Arduino есть декодеры для разных производителей. Для моего по длине и первому байту подошел протокол AUXAC