Se você deseja controlar ou integrar o RM4 Mini, pode usar APIs ou ferramentas específicas, como a biblioteca python-broadlink
Para controlar o dispositivo, você precisa conectá-lo à sua rede local, e configurar o dispositivo com o aplicativo Broadlink.
Identificação do RM4 (IP e MAC)
sudo nmap -sP 192.168.0.0/24
Nmap scan report for 192.168.0.21
Host is up (0.011s latency).
MAC Address: 24:DF:A7:F9:4D:84 (Hangzhou BroadLink Technology)
Configuração
Para fins de testes. iremos executar o seguinte comando:
docker run --rm -it python:3.12 /bin/bash
E dentro do container:
apt update && apt install vim -y
Instalação (Use o pip3 para instalar a versão mais recente deste módulo.)
pip3 install broadlink
Teste de conexão
cat << EOF > /opt/conexao.py
import broadlink
# Configurações do Broadlink
host = ('192.168.0.21', 80)
mac_address = bytearray.fromhex("24DFA7F94D84")
device_type = 0x61A2 # Tipo do dispositivo (RM4 Mini) / RM4 Pro: 0x648D
# Conectar ao dispositivo Broadlink
device = broadlink.gendevice(device_type, host, mac_address)
device.auth()
print("Conexão bem-sucedida!")
EOF
Execute
python /opt/conexao.py
Após mensagem de *Conexão bem-sucedida!* vamos capturar os comando do controle remoto.
cat << EOF > /opt/aprendizado.py
import broadlink
import time
# Configurações do Broadlink
HOST = ('192.168.0.21', 80)
MAC_ADDRESS = bytearray.fromhex("24DFA7F94D84")
DEVICE_TYPE = 0x61A2
# Inicializar o dispositivo Broadlink
print("Conectando ao dispositivo Broadlink...")
device = broadlink.gendevice(DEVICE_TYPE, HOST, MAC_ADDRESS)
device.auth()
print("Conexão bem-sucedida!")
print("\nO modo de aprendizado está ativo. Aponte o controle remoto e pressione os botões.")
print("Pressione Ctrl+C para encerrar o programa.\n")
try:
while True:
print("Aguardando código IR...")
device.enter_learning()
time.sleep(5) # Aguarda até 5 segundos para capturar o código
try:
learned_data = device.check_data()
if learned_data:
ir_code = learned_data.hex()
print("\nCódigo IR capturado:")
print(ir_code)
else:
print("Nenhum código foi capturado. Tente novamente.")
except broadlink.exceptions.StorageError:
print("Erro: O armazenamento do dispositivo está cheio. Reiniciando o modo de aprendizado.")
time.sleep(2) # Pequena pausa antes de tentar novamente
except KeyboardInterrupt:
print("\nEncerrando o programa.")
EOF
Execute
python /opt/aprendizado.py