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