Sonoff Bridge (Tasmota) lendo sensor sem fio Intelbras (RF 433 Hz)

Fala Galera,

Com a ajuda do pessoal grupo do telegram e princialmente do Nelson que passou o link do Firmware para Portisch, segue as dicas para conseguir ler sensores da Intelbras sem fio com o Sonoff Bridge e enviar por MQTT as informações para o Home Assistant.

Este tutorial é como fiz para o Sonoff Bridge ler este sensor de porta da intelbras (433 Hz ):
sensor_abertura_sem_fio_intelbras_xas_4010_smart_portas_e_janelas_622_1_20170831115315

Eu segui 3 tutoriais para fazer:
1 - Como nunca tinha feito flash com Tasmota, assisti o vídeo do Marcio, recomendo se é a primeira vez que vai trocar o firmware do Sonoff:

2 - Segui o tutorial do Forum da Comunidade Portuguesa para fazer o Tasmota, já que ele é mais específico para o Sonoff Bridge:
https://forum.cpha.tech/t/flashar-e-configurar-o-sonoff-bridge/148
Dica: Antes de enviar o .bin, deve colocar a chave no OFF e antes de ligar o USB para fazer o flash, deve ficar apertando o botão na lateral.

3 - Com o Tasmota no Sonoff Bridge ainda os sensores da intelbras não são lidos, é necessário atualizar o Firmware para Portisch, para isto segui este outro turorial:
https://github.com/arendst/Tasmota/wiki/Sonoff-RF-Bridge-433
Dica: O meu modelo é o R2, não precisa cortar a placa. Se for igual o meu modelo, só fazer o jumper, com 2 fios:

  1. Conectar o 3v e o GND por USB ( igual quando fez para enviar o Tasmota), ligando desta maneira não precisa cortar a placa.
  2. Eu fiz download do projeto completo: https://github.com/arendst/Tasmota/tree/master, e acessei a pasta: Tasmota/tools/fw_efm8bb1/
  3. Escolhi o arquivo mais novo, no caso o: RF-Bridge-EFM8BB1-20191006.hex, e enviei através do botão: Firmware Updgrade
  4. Assim que atualizar o Firmware, deve configurar novamente sua rede Wifi, e configurar o MQTT também. Se for usar minhas configurações, em Topic no MQTT usei: sonoff_bridge e Full Topic usei: %prefix%/%topic%/ (default)
  5. Após terminar a configuração, entre no Console do Tasmota e digite: rfraw 177

Se tudo ocorrer bem, ao abrir o sensor da porta da intelbras que vai aparecer o as informações do sensor no console, algo como:

01:03:18 MQT: tele/sonoff_bridge/RESULT = {“Time”:“2019-10-28T01:03:18”,“RfRaw”:{“Data”:“AA B1 03 0226 03A2 303E 2818090918091818091809180905090909180918180909181809180918 55”}}

Se vc abrir o sensor diversas vezes vai notar que a parte inicial sempre muda, o que acabei fazendo foi um filtro para pegar apenas a informação que foi a mesma todas as vezes que abri o sensor:
No caso foi o numero: 2818090918091818091809180905090909180918180909181809180918

Os 24 primeiros caracteres eu descartei e os 3 ultimos (" 55") também. Eu fiz um filtro no próprio Home Assistant ao ler a informação, exemplo que fiz de automação:

automation:
    - alias: Sensor Porta 433 Esquerda Edicula
      hide_entity: true
      trigger:
        platform: mqtt
        topic: tele/sonoff_bridge/RESULT
      condition:
        condition: template
        value_template: '{{ trigger.payload_json.RfRaw.Data[24:82] == "2818090918091818091809180905090909180918180909181809180918" }}'      
      action:
        service: tts.google_translate_say
        entity_id: "all"
        data:
          message: 'A porta esquerda da edicula foi aberta'

Perceba que ao ler a trigger.payload_json.RfRaw.Data**[24:82]** usei um filtro no final [24:82], isto significa que vai descartar as 24 caracteres inicias e vai até a caracter 82. ( Dependendo do seu sensor talvez tenha que alterar a posição de leitura, em todos os meus sensor da intelbras funcionaram este mesmo filtro, e não ocorreu nenhum repetido).

E por último, eu fiz uma gambiarra, para rodar o rfraw 177, eu não manjo de Tasmota e não consegui jogar o comando ao iniciar, achei este post, ensinando assim que ele reiniciar, mas não consegui fazer. Acabei fazendo um switch que joga o código rfraw 177 do Home Assistant para o sonoff bridge por mqtt. Porque toda a vez que o sonoff Bridge reiniciar é necessário rodar o rfraw 177, senão ele não vai ler os sensores.

switch:
  - platform: mqtt
    name: "rfraw177"
    state_topic: tele/sonoff_bridge/INFO3
    value_template:  "{% if trigger.payload_json.RestartReason == 'Power on' %} ON {% else %} OFF {% endif %}"
    state_on: "ON"
    state_off: "OFF"
    availability_topic: tele/sonoff_bridge/LWT
    command_topic: cmnd/sonoff_bridge/Backlog
    qos: 1
    payload_on: "rfraw 177"
    payload_off: "rfraw177"
    payload_available: "Online"
    payload_not_available: "Offline"
    retain: false

E como eu quero que rode este switch toda a vez que o sonoff bridge ligue eu fiz uma automação, que reconhece que o sonoff está online e ele liga este switch de cima:

automation:
    - alias: Usar rfraw177
      hide_entity: true
      trigger:
        platform: mqtt
        topic: tele/sonoff_bridge/INFO3
      condition:
        condition: template
        value_template: '{{ trigger.payload_json.RestartReason == "Power on" }}'      
      action:
        - service: tts.google_translate_say
          entity_id: "all"
          data:
            message: 'Sonoff Bridge configurado para RFRAW 177' 
        - service: switch.turn_on
          data:
            entity_id: switch.rfraw177

Acredito que deve ter maneiras muito melhores para fazer executar o rfraw 177 no Tasmota, deixe sua sugestão nos comentários :slight_smile:

Abraço!

4 curtidas

Leonardo, obrigado por compartilhar.
Segui e consegui com sucesso flashear o Sonoff RF Bridge.
Tive uns problemas durante os testes pois, quando você coloca em modo RfRaw, ele depois de um tempo parece que trava, e no console do Tasmota, não aparece nada com relação ao OFF do RfRaw, parece que não desativa, trava mesmo. Se você der o comando de RfRaw 177 no console novamente, ele volta a operar normal, escutando os sinais emitidos pelos sensores.
Passei a tarde toda quebrando a cabeça e cheguei na solução abaixo que compartilho:

Em sensor do home assistant inserir o sensor:

  - platform: mqtt
    name: "sensor sonoffbridge"
    state_topic: "tele/sonoff_bridge/RESULT"
    value_template: "{{ value_json.RfRaw.Data }}"
    expire_after: 60

Em switch do home assistant inserir o switch abaixo:

  - platform: mqtt
    name: Sonoff Bridge - Receptor RF Raw 177
    command_topic: "cmnd/sonoff_bridge/Backlog"
    state_topic: "stat/sonoff_bridge/RESULT"
    value_template: "{{ value_json.RfRaw }}"
    state_on: "ON"
    state_off: "OFF"
    payload_on: "RfRaw 177"
    payload_off: "RfRaw OFF"
    availability_topic: "tele/sonoff_bridge/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"

Em automation do home assistant inserir a automação abaixo:

  - id: ativa_rfraw_automatico
    alias: Sonoff RF Bridge - Reativacao Automatica
    trigger:
    - platform: state
      entity_id: sensor.sensor_sonoffbridge
      to: "unknown"
      for: "00:00:15"
    action:
      - service: switch.turn_on
        entity_id: switch.sonoff_bridge_receptor_rf_raw_177

Criar uma rule via console do Tasmota do Sonoff RF Bridge, que ativa o modo RfRaw 177 assim que o mesmo é ligado na energia e ativa o switch do Home assistant com o status:

Rule1 ON System#Boot DO RfRaw 177 ENDON

Ativar a rule no console do Tasmota do Sonoff RF Bridge:

Rule1 1

É isso, aparentemente está funcionando perfeitamente.

1 curtida

Consegui chegar até esse passo, estou com Sonoff Brige com o tasmota instalado, agora não estou entendendo como faço pra gravar controles e ler os sensores no sonoff… Existe algum passo a passo ensinando a fazer isto?

Para ler os controles, vai no home assistant em serviços e chama o serviço: broadlink.learn e aperta o controle, vai aparecer o código no HA, (resumi aqui, mas tem que procurar um tutorial)

Olá Antonio, vc poderia me indicar algum tutorial que expique como faço pra gravar constroles no sonoff brige com tasmota? Consegui colocar o Tasmota nele seguindo este tutorial, mas não encontrei nenhum tutorial explicando como faço pra gravar os controles apos o tasmota instalado

Tenta este aqui: https://community.home-assistant.io/t/guide-how-to-learn-broadlink-rf-codes/62119/50

Basicamente vai em Serviços no Home Assisten, chama o broadlink.learn e na linha deixo vc coloca o IP do seu broadlink, usando este formato: { “host”:“192.168.1.128" }
image

Assim que chamar o serviço o seu broadlink vai acender a luz laranja ( vai estar escutando o sinal ), vc aperta o botão que quer ler, e vai no Home Assistent que vai aparecer o código lido.

Eu tentei bastante adicionar o protocolo do sensor da intelbras no firmware do Portisch, mas sem sucesso.

Se alguém quiser dar um help:

Achei muito confuso como descobrir os parâmetros que ele precisa no código

Olá Márcio,
Quando fiz alguns testes nos sensores da intelbras, descobri 2 info importantes:

  1. Que os sensores podem trabalhar de 2 maneiras: OOK ou FSK. No FSK ele funciona informado para a central do alarme se a zona está aberta ou fechada, no OOK ele só informa na abertura. Quando opera em OOK( no meu caso) o código lido no sonoff bridge é o padrão deste tutorial. No FSK o código é menor.
  2. Este sensor da Intelbras tem um sistema anti clonagem (não sei o nome correto), e por isto ele fica gerando um novo código cada atualização, mas este código existe um padrão que no caso do código em OOK ele fica após os 24 primeiros caracteres (que eu acabo descartando estes primeiros números pois eles sempre mudam por segurança)

Não sei se foi esta a questão, mas pode ser que o seu sensor está em FSK e esteja informando mais informações como se zona esta aberta ou carga da bateria do sensor.

Eu recebe diversos códigos aqui tb que não reconheço, no começo achei que estava lendo os sensores dos vizinhos hehehe… Mas eu acho que são as leituras do monitoramento da carga da bateria, mas não tenho certeza, e eu acabo ignorando estas informações desconhecidas.

So pra eu entender melhor. Toda vez que um sensor 433 emite um sinal o Sonoff Brige lesse código e se esse codigo coincidir com uma automação pre-existente no Home Assistant essa automação será executada?

É isto aí :+1: o Sonoff Bridge tudo

Boa noite Leonardo tudo bem? seguindo seu tutorial estou quase finalizando, mas estou com algumas dúvidas, fiz a parte do tasmota a atz do firmware para Portisch, só travei na parte de fazer aquelas automações de fazer filtro dos caracteres e fazer ele iniciar com rfraw 177, isso eu coloco tudo dentro do configuration.yaml ou em outro arquivo?

Parabens pelo tutorial…

Wesley

Boa Tarde Wesley, beleza?

Você tem que adicionar apenas o código que inicia com switch: vai no configuration.yaml. Os códigos que Começam com automation: tem que adicionar no arquivo automation.yaml :+1:

Blz Leonardo, tudo bem deu certo… só que para entender aquele código que foi filtrado ele tem que aparecer no HA no sensor de porta no meu caso coloquei porta entrada ?

Pois não apareceu nada…

value_template: ‘{{ trigger.payload_json.RfRaw.Data[24:82] == “0101010011010011001100110011010101010011001011010011001102” }}’

image

Obrigado pela ajuda que você está dando.

Wesley

Oi Wesley,

Como que está o console do sonoff bridge quando vc recebe o código do sensor?
Tem que ver se este filtro [24:82] no final está correto…
No caso o [24:82] Ele vai ignorar os 23 primeiros caracteres do código ( pois no caso da Intelbras ele sempre muda) e vai considerar do caracter 24 até o 82 …
Tem que ver no console como é o codigo completo que está lendo.

Uma observação, na terceira parte, antes de carregar o arquivo .hex, deixar a chave do sonoff bridge no ON.

Pessoal eu não consegui fazer, alguem tem um vídeo mostrando passo a passo

Infelizmente não tem vídeo, mas se quiser descreva qual a dificuldade que tentamos ajudar :+1:

Leonardo, já instalei o TASMOTA e atualizei o Firmware para Portisch. Meu equipamento é uma Esquadria Udinese, já pesquisei sobre e é possível pq usa rfraw166. Mas eu não consigo o código do controle.

Eu não conheço este equipamento, mas para ler o código, no sonoff bridge no menu Console e digita: rfraw 166

É para reconhecer o equipamento… assim que ler um controle ele vai aparecer uma linha com o código, algo assim:
01:03:18 MQT: tele/sonoff_bridge/RESULT = {“Time”:“2019-10-28T01:03:18”,“RfRaw”:{“Data”:“AA B1 03 0226 03A2 303E 2818090918091818091809180905090909180918180909181809180918 55”}}

Boa Noite,

Tem que fazer um binary_sensor:

  - platform: mqtt
    name: 'Sensor Porta 1'
    state_topic: 'tele/sonoff_bridge/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:74] == '01101001101010010101101010011001101010100110011012' %}
        {{'ON'}}
      {% else %}
        {{states('binary_sensor.sensor_porta_1') | upper}}
      {% endif %}
    off_delay: 15
    device_class: Door

Ele vai detectar a abertura e manter por 15seguntos aberto, depois ele fecha.

1 curtida