Страница 352 из 376

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

Добавлено: Пн апр 13, 2020 9:43 am
nick7zmail
Ошибки пишет какие нить? Что вообще пишет?

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

Добавлено: Пн апр 13, 2020 11:05 am
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;

	}
}
И проверить заработает ли обучение и отправка команд.

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

Добавлено: Пн апр 13, 2020 2:14 pm
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;

	}
}
И проверить заработает ли обучение и отправка команд.
мини завелся, прошка так же пишет ошибку кода

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

Добавлено: Пн апр 13, 2020 3:40 pm
nick7zmail
А до этого мини не работал? И записывает и шлёт команды?
Модель у ПРО-шки какую кажет при поиске? Пробовали на ИК командах или на RF?

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

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

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

Добавлено: Вт апр 14, 2020 12:03 am
nick7zmail
Так...мини значит добавлю...а вот с про-вопрос. Можете трафик отснифить, и, желательно, расшифровать? Где то в теме тут инструкция есть.

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

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

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

Добавлено: Вт апр 14, 2020 4:15 pm
Phantomhive
Порошка не работает, мини работает, но почему то только один, второй так же как и прошка ошибки пишет

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

Добавлено: Пн апр 20, 2020 3:21 pm
nick7zmail
Попробовал оформить поддержку RM4. Пробуйте. С Pro пока вопрос открытый...но вроде всё указывает на то, что она должна так же работать, как и mini. В общем попробуйте, отпишитесь.

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

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