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

Модератор: immortal

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

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

Сообщение nick7zmail » Ср авг 02, 2017 8:13 pm

vshuka911 писал(а):извените,было getProperty. Но результат тот же.
Для начала я хочу включить и выключить без изменения тем-р.
И как у вас в таком случае получается свойство power? Оно как-то записывается? Можно всю цепочку событий, которые должны происходить?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
vshuka911
Сообщения: 76
Зарегистрирован: Пт июн 02, 2017 11:02 am
Благодарил (а): 10 раз
Поблагодарили: 1 раз

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

Сообщение vshuka911 » Ср авг 02, 2017 8:16 pm

ой ёй ей....я забыл прилепить метод....все получилось,спасибо большое за терпение
Вложения
Capture4.PNG
Capture4.PNG (8.04 КБ) 5061 просмотр
Аватара пользователя
nick7zmail
Сообщения: 7528
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 1991 раз

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

Сообщение nick7zmail » Ср авг 02, 2017 8:17 pm

vshuka911 писал(а):ой ёй ей....я забыл прилепить метод....все получилось,спасибо большое за терпение
Ну вот)) Собственно примерно так оно и бывает))
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
onestat
Сообщения: 15
Зарегистрирован: Пн фев 26, 2018 9:51 pm
Благодарил (а): 9 раз
Поблагодарили: 0

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

Сообщение onestat » Пт май 04, 2018 11:44 am

Подскажите, есть у кого расшифрованнве пакеты от кондея или как снимать с него состояния?
ArenScalpSr
Сообщения: 2
Зарегистрирован: Вт июл 03, 2018 11:18 pm
Благодарил (а): 0
Поблагодарили: 0
Контактная информация:

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

Сообщение ArenScalpSr » Вт июл 24, 2018 10:05 am

Спасибо большое, Alexey_Palich . Это мой просто первый опыт с АДР вот разбираюсь. Получаеться "3";"6";"8". Правильно я понял?
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

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

Сообщение olehs » Вт июл 24, 2018 10:17 am

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
Ответить