Após ter comprado o Sonoff Bride e aplicado o Tasmota, notei ao tentar clonar meus comandos ele não conseguia ler o sinal RF. Ao ler na documentação oficial da Tasmota notei que existem dois firmwares para esse dispositivo, um é o firmware do tasmota para o controle do Sonoff e um para o chip de RF chamado de Portisch firmware.
O firmware original só tem suporte a poucos modelos de equipamentos e apenas aceita um protocolo de RF de 24 bits que é utilizado pelos sensores da Sonoff. Com a atualização é possível usar o modo RfRaw, que possibilita a leitura e envio de sinais com mais bits e adiciona novas features.
São necessários os seguintes materiais.
FT232RL FTDI USB To TTL Serial Converter Adapter
02 Jumper Wires Macho - Femea | 02 Jumper Wire Macho - Macho
São os mesmo materiais necessários para fazer o flash do Sonoff Bridge, porém com adição de dois fios macho - macho.
Para fazer o upgrade para o Portisch firmware é necessário fazer o flashing do tasmota (não vou dizer aqui pois já temos no forum um tutorial para isso) e ter o módulo já configurado para Sonoff Bridge (Configuration → Configure Module)
Agora é necessário fazer a seguinte ligação física na placa. (Esse guia é para a versão R2 V1.0 mas é possível fazer na versão antiga)
Não foi feita qualquer solda, os fios ficam apenas encaixados no momento do upgrade.
O botão ON - OFF deve estar na posição OFF e a alimentação deve ser feita da mesma forma que no upgrade para o Tasmota mas sem a necessidade do TX e RX ( apenas o
3.3V & GND)
Foto retirada do tutorial do Rodolfo Vieira
Feito isso seu Tasmota deve iniciar da forma usual e já deve ter o acesso via browser.
É necessário baixar o arquivo .hex para o upgrade. Pode ser baixado no github dentro do projecto Tasmota (/Tasmota-development/tools/fw_efm8bb1) ou alternativamente aqui no link.
https://github.com/arendst/Tasmota/tree/master/tools/fw_efm8bb1
Após isso entra no Bridge via browser em Firmware Upgrade > Upgrade by File Upload, apontar o arquivo .hex e apertar Start Upgrade, leva mais ou menos um minuto.
Eu utilizei o mais novo “RF-Bridge-EFM8BB1-20181127.hex”
Já podes desligar o Sonoff, remover os cabos, colocar a chave na posição ON e ligar novamente o Sonoff pelo USB, aparentemente nada de nova aparece.
Com o Portisch instalado, na consola do Tasmota das o seguinte comando “RfRaw 177” ele vai entrar em modo sniffer usando 0XB1, depois é só apertar o comando que quer clonar (por uns 2 segundos) que deve aparecer algo assim na consola do Tasmota.
“RfRaw”:{“Data”:“AA B1 03 01D6 038E 25BC 01010101010101010010110010101101001010110100110102 55”}}
“RfRaw”:{“Data”:“AA B1 03 01E0 0384 25C6 01010101010101010010110010101101001010110100110102 55”}}
“RfRaw”:{“Data”:“AA B1 03 01CC 038E 25BC 01010101010101010010110010101101001010110100110102 55”}}
“RfRaw”:{“Data”:“AA B1 03 01D6 0384 25BC 01010101010101010010110010101101001010110100110102 55”}}
“RfRaw”:{“Data”:“AA B1 03 01D6 0384 25BC 01010101010101010010110010101101001010110100110102 55”}}
“RfRaw”:{“Data”:“AA B1 03 01CC 038E 25B2 01010101010101010010110010101101001010110100110102 55”}}
“RfRaw”:{“Data”:“AA B1 03 01CC 0398 25E4 01010101010101010010110010101101001010110100110102 55”}}
“RfRaw”:{“Data”:“AA B1 03 01C2 0398 25E4 01010101010101010010110010101101001010110100110102 55”}}
Esses são os códigos B1. Eles são compostos por um data values ( 01010101010101010010110010101101001010110100110102) que é sempre igual no mesmo comando, terminam em 55 e no início tem alguns valores de 2 bytes chamados de ‘buckets’. Não vou entrar aqui em detalhes da função deles pois isso deixaria o guia muito grande, mas tem muito material online a explicar a função de cada um deles.
Agora é necessário achar o valor certo para o vosso comando, no exemplo os 3 primeiros buckets são sempre iguais AA B1 03 os 3 últimos sempre variam, uma dica para escolher para os testes e observar os que têm maior repetição entre eles. Em último caso vai um por um até achar um que funcione bem .
Agora para testar é necessário transformar os códigos B1 em códigos de transmissão B0, para isso podem usar um script ‘BitBucketConverter.py’ que está no projecto Tasmota no Github ou usar uma ferramenta on line, no meu caso fiz on line.
Com o código B0 agora é testar na linha de comando do Tasmota da seguinte forma RfRaw ->Codigo B0<; RfRaw 0
*Tirar os espaços
RfRaw AAB021030801D6038E25BC0101010101010101001011001010110100101011010011010255; RfRaw 0
Se tiver o código correcto o equipamento que recebe o sinal do comando deve funcionar, aqui é uma questão de sorte e paciência para testar todos os códigos.
Com o código correto agora e fazer o HA mandar esse sinal quando necessário. Aqui usei uma sugestão do @RodolfoVieira e criei uma switch com os seguintes parâmetros.
- platform: mqtt
name: "Teste"
state_topic: "BridgeRF/tele/RESULT"
command_topic: "BridgeRF/cmnd/Backlog"
qos: 1
payload_on: "RfRaw AAB021030801D6038E25BC0101010101010101001011001010110100101011010011010255; RfRaw 0"
payload_off: "OFF"
retain: false
Essa informação está dentro do arquivo switches.yaml
No Lovelace criei dois ‘Entity Button Card’ (no meu caso são para abrir dois portões de garagem).
E além de usar os botões para comandar o portões criei uma automação no Node Red para mandar pelo Telegram uma mensagem quando meu status muda de not_home para home a perguntar se deve ou não abrir os portões.
- AIDA (Artificial Intelligent Digital Assistant)
Tenho isso a funcionar a mais ou menos duas semanas e encontrei um problema. Coloquei o Bridge na garagem, porém o sinal lá é fraco, o status do WiFi no Brigde estava entre 30% e 40%. Algumas vezes ele simplesmente trava e apesar de ver o o comando chegar a console do Tasmota o led vermelho estava sempre ligado e só depois de um reboot ele voltava a funcionar.
Para resolver coloquei o Bridge dentro de casa com um sinal mais forte (80%) e já tenho 4 dias sem problemas. Como o sinal RF 433 ter um alcance grande não foi problema mudar de lugar. Não sei se a mensagem MQTT chegava mal (afinal são “muitos” bits no payload) e ele travava em algum lugar. Ainda sou muito novo com isso e ainda não sei muito bem com as mensagens são armazenadas e tratadas.
Espero que ajude a malta que tem problemas ao identificar os comando no Sonoff Bridge e se ainda assim não funcionar o @RodolfoVieira tem um projeto interessante.