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

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

Модератор: immortal

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

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

Сообщение nick7zmail »

Ошибки пишет какие нить? Что вообще пишет?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

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

Сообщение nick7zmail »

Гугленье показало что в РМ4 добавили какие-то хедеры при отправке и запросах...Проверьте, если в /modules/dev_broadlink/broadlink.class.php
строки 1026-1115 заменить на
Немного кодаSPOILER_SHOW

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

class RM extends Broadlink{

	function __construct($h = "", $m = "", $p = 80, $d = 0x2712) {

		 parent::__construct($h, $m, $p, $d);

	}

	public function Enter_learning(){

		$packet = self::bytearray(16);
		$packet[0] = 0x04;
		$packet[1] = 0x00;
		$packet[2] = 0x03;
		$this->send_packet(0x6a, $packet);

	}

	public function Send_data($data){

		$packet = self::bytearray(4);
		$packet[0] = 0xd0;
		$packet[1] = 0x00;
		$packet[2] = 0x02;

		if(is_array($data)){
			$packet = array_merge($packet, $data);
		}
		else{
			for($i = 0 ; $i < strlen($data) ; $i+=2){
				array_push($packet, hexdec(substr($data, $i, 2)));
			}
		}

		$this->send_packet(0x6a, $packet);
	}	

	public function Check_data(){

		$code = array();

		$packet = self::bytearray(16);
		$packet[0] = 0x04;
		$packet[1] = 0x00;
		$packet[2] = 0x04;
		$response = $this->send_packet(0x6a, $packet);
		if (empty($response))
			return false;

		$err = hexdec(sprintf("%x%x", $response[0x23], $response[0x22]));

		if($err == 0){
			$enc_payload = array_slice($response, 0x38);

			if(count($enc_payload) > 0){

				$payload = $this->byte2array(aes128_cbc_decrypt($this->key(), $this->byte($enc_payload), $this->iv()));
				
				$code = array_slice($payload, 0x04);
			}
		}

		return $code;
	}
	public function Check_temperature(){

		$temp = false;

		$packet = $this->bytearray(16);

		$packet[0] = 0x01;
		$response = $this->send_packet(0x6a, $packet);
		if (empty($response))
			return false;

		$err = hexdec(sprintf("%x%x", $response[0x23], $response[0x22]));

		if($err == 0){
			$enc_payload = array_slice($response, 0x38);

			if(count($enc_payload) > 0){

				$payload = $this->byte2array(aes128_cbc_decrypt($this->key(), $this->byte($enc_payload), $this->iv()));
				
				$temp = ($payload[0x4] * 10 + $payload[0x5]) / 10.0;

			}
		}

		return $temp;

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

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

Сообщение mrsavelio »

nick7zmail писал(а): Пн апр 13, 2020 11:05 am Гугленье показало что в РМ4 добавили какие-то хедеры при отправке и запросах...Проверьте, если в /modules/dev_broadlink/broadlink.class.php
строки 1026-1115 заменить на
Немного кодаSPOILER_SHOW

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

class RM extends Broadlink{

	function __construct($h = "", $m = "", $p = 80, $d = 0x2712) {

		 parent::__construct($h, $m, $p, $d);

	}

	public function Enter_learning(){

		$packet = self::bytearray(16);
		$packet[0] = 0x04;
		$packet[1] = 0x00;
		$packet[2] = 0x03;
		$this->send_packet(0x6a, $packet);

	}

	public function Send_data($data){

		$packet = self::bytearray(4);
		$packet[0] = 0xd0;
		$packet[1] = 0x00;
		$packet[2] = 0x02;

		if(is_array($data)){
			$packet = array_merge($packet, $data);
		}
		else{
			for($i = 0 ; $i < strlen($data) ; $i+=2){
				array_push($packet, hexdec(substr($data, $i, 2)));
			}
		}

		$this->send_packet(0x6a, $packet);
	}	

	public function Check_data(){

		$code = array();

		$packet = self::bytearray(16);
		$packet[0] = 0x04;
		$packet[1] = 0x00;
		$packet[2] = 0x04;
		$response = $this->send_packet(0x6a, $packet);
		if (empty($response))
			return false;

		$err = hexdec(sprintf("%x%x", $response[0x23], $response[0x22]));

		if($err == 0){
			$enc_payload = array_slice($response, 0x38);

			if(count($enc_payload) > 0){

				$payload = $this->byte2array(aes128_cbc_decrypt($this->key(), $this->byte($enc_payload), $this->iv()));
				
				$code = array_slice($payload, 0x04);
			}
		}

		return $code;
	}
	public function Check_temperature(){

		$temp = false;

		$packet = $this->bytearray(16);

		$packet[0] = 0x01;
		$response = $this->send_packet(0x6a, $packet);
		if (empty($response))
			return false;

		$err = hexdec(sprintf("%x%x", $response[0x23], $response[0x22]));

		if($err == 0){
			$enc_payload = array_slice($response, 0x38);

			if(count($enc_payload) > 0){

				$payload = $this->byte2array(aes128_cbc_decrypt($this->key(), $this->byte($enc_payload), $this->iv()));
				
				$temp = ($payload[0x4] * 10 + $payload[0x5]) / 10.0;

			}
		}

		return $temp;

	}
}
И проверить заработает ли обучение и отправка команд.
мини завелся, прошка так же пишет ошибку кода
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

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

Сообщение nick7zmail »

А до этого мини не работал? И записывает и шлёт команды?
Модель у ПРО-шки какую кажет при поиске? Пробовали на ИК командах или на RF?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
mrsavelio
Сообщения: 17
Зарегистрирован: Пн май 15, 2017 9:15 pm

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

Сообщение mrsavelio »

nick7zmail писал(а): Пн апр 13, 2020 3:40 pm А до этого мини не работал? И записывает и шлёт команды?
Модель у ПРО-шки какую кажет при поиске? Пробовали на ИК командах или на RF?
До этого мини тоже не работали, после замены кода на ваш и замены кода устройства мини заработали
Прошка с кодом устройства родным (0x6026) пишет тайм аут, с двумя другими (0х272а и 0х2787) пишет ошибка кода
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

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

Сообщение nick7zmail »

Так...мини значит добавлю...а вот с про-вопрос. Можете трафик отснифить, и, желательно, расшифровать? Где то в теме тут инструкция есть.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
mrsavelio
Сообщения: 17
Зарегистрирован: Пн май 15, 2017 9:15 pm

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

Сообщение mrsavelio »

nick7zmail писал(а): Вт апр 14, 2020 12:03 am Так...мини значит добавлю...а вот с про-вопрос. Можете трафик отснифить, и, желательно, расшифровать? Где то в теме тут инструкция есть.
Привет!
Очень странная фигня, один мини работает на ура, второй пишет ошибка кода..
Phantomhive
Сообщения: 6
Зарегистрирован: Вт апр 14, 2020 4:47 am

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

Сообщение Phantomhive »

Порошка не работает, мини работает, но почему то только один, второй так же как и прошка ошибки пишет
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

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

Сообщение nick7zmail »

Попробовал оформить поддержку RM4. Пробуйте. С Pro пока вопрос открытый...но вроде всё указывает на то, что она должна так же работать, как и mini. В общем попробуйте, отпишитесь.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Mikik
Сообщения: 111
Зарегистрирован: Ср апр 26, 2017 11:44 am
Откуда: Москва

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

Сообщение Mikik »

С возвращением! :D
Столкнулся с проблемой. Находясь на самоизоляции на даче, решил навести порядок в оборудовании. Создал специальную WiFi сеть для IoT и сгруппировал железяки по IP адресам. Естественно, что в модуле поменял IP адреса на текущие. Возникла проблема с SC1, А1, SPmini и RM pro (первые версии). Модуль их не видел напрочь! Проблема решилась удалением текущих железяк из модуля и добавлением абсолютно аналогичных. После этого модуль их увидел и всё заработало.
Ответить