Como obter dispositivo e função de um código de controle remoto NEC

Eu me deparei com esse problema ao chegar a essa página do RemoteCentral que lista os comandos como sendo compostos de dispositivo, sub-dispostitivo e função.

Depois eu me deparei com esta outra que faz o mesmo.

Por exemplo, o código para Power é descrito como:
Protocol NECx2, device 7, subdevice 7, OBC 2

Mas de onde vem isso? Eu sempre decodifiquei esse código como sendo E0E040BF. Como um número tão complexo esconde apenas os números 7, 7 e 2?

Eu encontrei a resposta ao analisar o funcionamento do programa SamsungBlinkie para Arduino

O código hexadecimal é dividido em três partes (as duas primeiras em conjunto formam o chamado “endereço”):

E0 -> dispositivo 7
E0 -> sub-dispositivo 7
40BF -> função 2

Vendo esses números em binário a coisa começa a fazer sentido.

E0 = 11100000. Note que se você espelhar esse número, vira 00000111, que é 7. Já sabemos então de onde vem o dispositivo e o sub-dispositivo.

A função é codificada de forma ainda mais confusa, mas se você olhar em binário rapidamente entende.

O primeiro byte corresponde a um 2 binário espelhado e o segundo byte é uma inversão bit a bit do primeiro e funciona como um “checksum” para que o dispositivo tenha certeza de que leu corretamente.

Note que a Samsung usa um código NEC estendido. Nos códigos NEC tradicionais ou a segunda parte do endereço também é um checksum da primeira ou não existe segunda parte no endereço.

Postado em Sem categoria | Tags: , | Deixe um comentário (responderei para o seu e-mail)

Códigos discretos de controle remoto para TVs Samsung

Códigos ou comandos “discretos” são comandos cujo resultado não depende do atual estado do aparelho. Por exemplo, quando você manda um comando “Power” para uma TV, esse comando pode ser “Power On” ou “Power Off”, dependendo do estado atual da TV. Se a TV já estiver ligada e você mandar um comando Power querendo ligá-la, vai desligar.

Então para ter certeza de que você vai ligar quando quer ligar, precisa do código discreto de PowerON da TV. Códigos discretos são essenciais  para uma automação sem falhas.

Convertendo os códigos no formato Pronto Hex publicados no RemoteCentral usando a informação que dei no post anterior, chegamos a essa lista:

 

Não há garantia de que todos os códigos funcionem no seu modelo Samsung e eu só testei até agora PowerOn e PowerOff.

Postado em Sem categoria | Tags: , | Deixe um comentário (responderei para o seu e-mail)

Como converter comandos no formato Pronto Hex para o formato da irLib

No momento eu vou apenas mostrar como se faz para comandos NEC.

No RemoteCentral você vai encontrar muitos códigos de controle remoto infravermelho, mas num formato difícil de armazenar na limitada memória do Arduino: O Pronto Hex. Esse formato tem a vantagem de descrever completamente como é o sinal transmitido, mas é muito inconveniente.  Vou tomar por base os comandos de TV Samsung.

Por exemplo, vamos decodificar o comando discreto para selecionar a porta HDMI4:

Device Code: 7.7 Function: 197HDMI 4 (SIDE)
0000 006D 0000 0022 00AC 00AB 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0016 0015 0016 0015 0016 0015 0041 0015 0041 0015 0016 0015 0041 0015 0016 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0689

Os primeiros seis valores podem ser ignorados, porque são parte do protocolo NEC.

0000 006D 0000 0022 00AC 00AB

O código mesmo só começa a partir do sétimo valor e devem ser organizados em grupos de dois. Cada grupo que tenha dois números iguais ou próximos é um “0”. Cada uma cujo segundo valor seja cerca do dobro do primeiro é um “1”

Os dois últimos grupos são ignorados porque são a finalização do protocolo.

O código é 11100000111000001010001101011100 ou E0E0A35C

Veja a minha lista de comandos discretos para TVs Samsung.

Postado em Sem categoria | Tags: , | Deixe um comentário (responderei para o seu e-mail)

Cuidado ao usar o ESP8266 no modo AP_STA

Certas operações podem falhar silenciosamente nesse modo porque duas redes são criadas: a do AP e a do STA.

Por exemplo, se o ESP8266 estiver conectado a um roteador WiFi na sua rede (modo STA) e estiver com o modo AP habilitado, se o ESP8266 enviar um broadcast UDP para 255.255.255.255 esse broadcast não vai ser transmitido para a sua rede e sim para a rede criada pelo AP.

Mas se você mandar um broadcast para o endereço de broadcast da sua sub-rede, funciona, porque aí a biblioteca UDP sabe para onde mandar.

Por exemplo, se sua rede for da faixa 10.0.0.x:

resultado=udp.beginPacket(IPAddress(255, 255, 255, 255), 2391); //Não funciona

resultado=udp.beginPacket(IPAddress(10, 0, 0, 255), 2391); //Funciona mesmo com o AP habilitado

Claro, há situações em que mandar um broadcast para a sub-rede não é o bastante, pois você pode estar procurando o ESP8266 em outra sub-rede e não vai receber a mensagem. No momento eu não conheço outro jeito que não seja desligar o AP para enviar o broadcast.

Postado em Sem categoria | Tags: | Deixe um comentário (responderei para o seu e-mail)

Como testar o envio de notificações para o Pushbullet

Neste texto eu vou usar o complemento Postman do Google Chrome para enviar notificações para dispositivos com o Pushbullet configurado para a minha conta. Enviar notificações para outras pessoas será abordado em outra oportunidade.

Você vai precisar do Access Token que é obtido na sua conta em Settings -> Account -> Create Access Token

Digamos que seu AccessToken seja

Com o Postman:

Selecione “POST” e coloque o endereço “https://api.pushbullet.com/v2/pushes”

Chrome_Postman_Pushbullet_detalhe1_automalabs.com.br

Em Headers, acrescente um key de nome Authorization com o conteúdo

Chrome_Postman_Pushbullet_detalhe2_automalabs.com.br

Em Body, selecione “raw” e na caixa de seleção à direita escolha JSON

Cole na caixa diretamente abaixo o texto a seguir:

{“type”: “note”, “title”: “Enviado pelo Postman”, “body”: “Sucesso!”}

Chrome_Postman_Pushbullet_detalhe3_automalabs.com.br

Você verá que em Headers foi acrescentado um key de nome “Content-Type” e valor “application/json”

Chrome_Postman_Pushbullet_detalhe4_automalabs.com.br

Clique em SEND. Você deverá receber uma resposta do tipo:

E seus dispositivos conectados à mesma conta deverão receber a notificação

Se a resposta for do tipo “Invalid Token” como esta:

e você tiver certeza de que o Token está certo, experimente limpá-lo de caracteres estranhos (invisíveis).
Para isso você pode colar o Access Token no notepad e salvar como ANSI. Se for esse mesmo problema você verá uma mensagem sobre a conversão. Confirme e o Token já deverá estar limpo.

Porém essa “limpeza” às vezes dá mais trabalho. Eu notei que a versão anterior do Postman, quando ainda se chamava “Postman REST client” não tem esse problema.

Postado em Sem categoria | Deixe um comentário (responderei para o seu e-mail)

Códigos do controle remoto do DVR ControlBR iDVR CBR-ST16H

controle_remoto_DVR_ControlBR_iDVR_CBR-ST16H_DSC02640_640_automalabs.com.br

Protocolo NEC de 32 bits

 

Postado em Sem categoria | Tags: , | Deixe um comentário (responderei para o seu e-mail)

Códigos do controle remoto do receptor de satélite ASAMÉRICA

Nota: Eu não anotei o modelo do receptor onde esse controle funcionava. Não sei se funciona com todos ASAMÉRICA.

Protocolo NEC de 32 bits

 

Postado em Sem categoria | Tags: , | Deixe um comentário (responderei para o seu e-mail)

Códigos do controle remoto do receptor de satélite OI TV SD

Este controle remoto não tem a palavra “HD”. Os códigos do receptor HD são estes.

Protocolo RC6 de 36 bits

 

Postado em Sem categoria | Tags: , | Deixe um comentário (responderei para o seu e-mail)

Códigos do controle remoto do receptor de satélite OI TV HD

Protocolo RC6 de 36 bits

 
 Controle_Remoto_OI_small_automalabs.com.br

 

Postado em Sem categoria | Tags: , | Deixe um comentário (responderei para o seu e-mail)

Códigos do controle remoto lennox RC-109

Este remoto é usado em uma TV Lenoxx cujo modelo ainda não sei.

Protocolo NEC 32 bits

 

 

Postado em Sem categoria | Tags: , | Deixe um comentário (responderei para o seu e-mail)