Projeto Campainha RF Com Som no Google Mini + Imagem Câmera Telegram

Bom dia galera, vou mostrar como fiz o meu projeto da campainha, super fácil com apenas RF.

O que vc vai precisar:

1 - Qualquer interruptor RF
2 - Receptor do código RF (no meu caso utilizei o Sonoff Bridge)
3 - Node-red instalado

Vamos lá.

Vou considerar que vc já tem o SonoffBridge com tasmota e o Node-red instalado funcionando ok?

1º Passo - Ao receber o seu interruptor RF, pressione o mesmo e verifique o console no tasmota do Bridge, pra ver qual código ele vai enviar, no meu caso foi esse, vamos usar ele de exemplo.

Ex: 471F01 (lembre-se de mudar os códigos dos exemplos para os seus!)

2º Passo - Anote esse código ai em algum lugar, vá nas suas configurações do HA e adicione um binary_sensor com ele, desse jeito:

Ex:

- platform: mqtt
  name: 'Campainha'
  state_topic: 'tasmota_sonoff_bridge/tele/RESULT'
  value_template: '{{value_json.RfReceived.Data}}'
  payload_on: '471F01'
  payload_off: '471F01off'

Explicação o pq do “payload_off”: adicionei esse código por uma simples razão, pense que vc irá apertar o seu botão, o HA vai identificar “Apertado”, e nunca mais volta…por essa razão nós vamos utilizar uma automação, pra depois de 5 segundos voltar ao estado de OFF a sua campainha.

3º Passo - Vá até suas automações e adicione o seguinte:

Ex:

- alias: Reset Sensor Campainha
  initial_state: 'on'
  trigger:
  - platform: state
entity_id: binary_sensor.campainha
from: 'off'
to: 'on'
for:
  seconds: 5
  action:
  - service: mqtt.publish
data:
  topic: tasmota_sonoff_bridge/tele/RESULT
  payload: 471F01off  

Basicamente o que expliquei acima, ele vai identificar quando o sensor da campainha mudar pra ON, depois de 5 segundos vai mudar pra OFF, pq queremos que esteja no OFF toda vez que alguém apertar, para conseguirmos identificar novamente, ok?

4º Passo - Feito isso, reinicie seu HA e faça o teste.

5º Passo - Identificado que o seu binary_sensor está mudando para ON (quando aperta) e depois de 5 segundos muda para OFF, vamos ao NODE-RED.

6º Passo - Importe o código seguinte no node-red, e ajuste para as suas configurações.

https://drive.google.com/file/d/1d4xCMRsmYUSXJ7hDLqumT0NjsFxy3X29/view?usp=sharing

Note que vai ter algumas configs pra fazer nesse fluxo ai, seu HA, IP do seu GH, câmeras e etc, vou exemplificar o mais importante.

Node FUNCTION:

msg.payload = {
ip: ‘192.168.1.11’,
url:‘http://www.orangefreesounds.com/wp-content/uploads/2016/10/Doorbell-ringtone.mp3’,
contentType: ‘audio/mp3’
}

return msg;

Aqui vem a parte mais chatinha onde temos 2 situações.
Se você acessa seu HA externo (nabucasa ou duckdns), você poderá seguir esses tutoriais:


Caso você não tenha isso (meu caso), é necessário que ache uma URL do som que você quer, eu encontrei esse site ali depois de bastante tempinho procurando…é beeem chatinho mesmo!

Nesses tutoriais também mostram a configuração do node do SNAPSHOT!

7º Passo - Considerando que já ajustou as configs no seu fluxo, agora basta vc dar Deploy e testar.

2 Likes

Legal o projeto, mas como vc tá usando sensor com RF, tem uns truques a mais que vc pode fazer e daí vc não vai precisar da automação e ainda permitir que vc tenha outros sensores usando a mesma bridge.

  1. crie o sensor “bridge” que vai receber o código do RF:

    sensor:
      - platform: mqtt
        name: "rfbridge"
        state_topic: "tasmota_sonoff_bridge/tele/RESULT"
        value_template: '{{ value_json.RfReceived.Data }}'
        expire_after: 1
    

O truque aqui é o “expire_after” que vai “limpar” o valor do tópico após 1s.

  1. agora vc pode criar os sensores que quiser usando templates, incluindo o da campainha:

    binary_sensor:
      - platform: template
        sensors:
          campainha_rf:
            friendly_name: campainha
            value_template: '{{ is_state("sensor.rfbridge", "471F01") }}'
            delay_off: '00:00:05'
            device_class: sound
    

Aqui o “delay_off” vai considerar que esse sensor está off após o tempo no qual o template não tem mais aquele valor (ele não vai ter mais o valor após aquele 1 segundo do passo anterior). Ajuste o delay_off a gosto para permitir toques mais rapidos ou não :).

Essa estratégia funciona bem tb para sensores de movimento, já que só enviam um único valor tb.

update: uma pequena correção. O “expire_after” não “zera” o topico do mqtt, mas ele considera o sensor como indisponivel caso o valor não seja atualizado dentro do tempo indicado.

2 Likes

Show mesmo! Não sabia dessa técnica…Valeu!!

1 Like