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

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

Модератор: immortal

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

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

Сообщение nick7zmail » Пн апр 13, 2020 9:43 am

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

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

Сообщение nick7zmail » Пн апр 13, 2020 11:05 am

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

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

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
Благодарил (а): 0
Поблагодарили: 2 раза

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

Сообщение mrsavelio » Пн апр 13, 2020 2:14 pm

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

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

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
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

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

Сообщение nick7zmail » Пн апр 13, 2020 3:40 pm

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

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

Сообщение mrsavelio » Пн апр 13, 2020 8:24 pm

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

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

Сообщение nick7zmail » Вт апр 14, 2020 12:03 am

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

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

Сообщение mrsavelio » Вт апр 14, 2020 11:21 am

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

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

Сообщение Phantomhive » Вт апр 14, 2020 4:15 pm

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

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

Сообщение nick7zmail » Пн апр 20, 2020 3:21 pm

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

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

Сообщение Mikik » Пн апр 20, 2020 3:47 pm

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