Binary Sensor - MQTT

Ter ele tem, tenho uns 6 aqui em casa e a central reporta aberto e fechado. Ele nunca volta para fechado após 15 segundos igual vc reportou, talvez seja uma limitação da forma que vc usa.

Essas 4 linhas são do mesmo sensor?
Se for o mesmo, o inicio 28 não quer dizer aberto e 18 fechado?

Tenta algo assim, criando um sensor ao invés de sensor binário e vê se vc esta recebendo no HA o Data completo

- platform: mqtt
    name: 'Janela Escritorio - Lado Esquerdo'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {{value_json.RfRaw.Data}}

Acho que achei o problema, testa um validador de configuration
Não é mais pra usar dentro da categoria binary_sensor com platform mqtt agora
É
mqtt:
binary_sensor:

Acho que matou a charada.

Eu tento manter atualizado justamente para não cair nos breakchanges antigos.

Defining manually configured MQTT entities directly under the respective platform keys (e.g., fan , light , sensor , etc.) is deprecated, and support will be removed in Home Assistant Core 2022.9.

mqtt:
  sensor:
    - name: "My sensor"
      state_topic: "some-state-topic"

isso parou antes mesmo dessa atualização, depois ja mudei tambem e continuou igual ;-(

mas não é ele parou la no passado, quando era, mas como mandei acima ja mudei isso
no meu mqtt tenho
sensor:
binarry_sensor:
switch:

ja ta tudo la :wink:

Meu HA não tem nenhum problema de log kkkk corrigi todos sempre que da um pepino.

Se alguem quiser e puder, até abre um teamview para me dar uma força. Por que olha, to a um ano tentando arrumar isso e me arrebentou isso, por que eu quando viajo isso me ajudava a monitorar a casa

Eu usei o tutorial do Leonardo para fazer e atualizei e ate criei um topico na epoca

Posta o seu mqtt.yaml, mas coloca ele como código se não fica todo zuado.

Testou o sensor comum?

    name: 'Janela Escritorio - Lado Esquerdo'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {{value_json.RfRaw.Data}}
1 curtida

Hoje especificamente estou sem tempo, porém se quiser entrar no nosso discord (disponível na barra superior do site), consigo tentar te ajudar por chamada domingo ou segunda

1 curtida

Segue meu mqtt.yaml da parte do RF

#     _____ ______ _   _  _____  ____  _____  
#    / ____|  ____| \ | |/ ____|/ __ \|  __ \ 
#   | (___ | |__  |  \| | (___ | |  | | |__) |
#    \___ \|  __| | . ` |\___ \| |  | |  _  / 
#    ____) | |____| |\  |____) | |__| | | \ \ 
#   |_____/|______|_| \_|_____/ \____/|_|  \_\
#                                             
#                                             
sensor:
#    _____  ______   _  _  ____ ____  
#   |  __ \|  ____| | || ||___ \___ \ 
#   | |__) | |__    | || |_ __) |__) |
#   |  _  /|  __|   |__   _|__ <|__ < 
#   | | \ \| |         | | ___) |__) |
#   |_|  \_\_|         |_||____/____/ 
#                                     
#   LE OS RECEPTORES RF 433                                  
  - name: "rf 433 casa"
    state_topic: "tele/rf_433_casa/RESULT"
    value_template: "{{ value_json.RfRaw.Data }}"
    expire_after: 60
    name: "rf 433 edicula"
    state_topic: "tele/rf_433_edicula/RESULT"
    value_template: "{{ value_json.RfRaw.Data }}"
    expire_after: 60
#     _______          _______ _______ _____ _    _ 
#    / ____\ \        / /_   _|__   __/ ____| |  | |
#   | (___  \ \  /\  / /  | |    | | | |    | |__| |
#    \___ \  \ \/  \/ /   | |    | | | |    |  __  |
#    ____) |  \  /\  /   _| |_   | | | |____| |  | |
#   |_____/    \/  \/   |_____|  |_|  \_____|_|  |_|
#                                                   
#                                                   
switch:
# RF 433
## CASA
  - name: Sonoff Bridge - Receptor rf 433 casa Raw 177
    command_topic: "cmnd/rf_433_casa/Backlog"
    state_topic: "stat/rf_433_casa/RESULT"
    value_template: "{{ value_json.RfRaw }}"
    state_on: "ON"
    state_off: "OFF"
    payload_on: "RfRaw 177"
    payload_off: "RfRaw OFF"
## EDICULA
  - name: Sonoff Bridge - Receptor rf 433 edicula Raw 177
    command_topic: "cmnd/rf_433_edicula/Backlog"
    state_topic: "stat/rf_433_edicula/RESULT"
    value_template: "{{ value_json.RfRaw }}"
    state_on: "ON"
    state_off: "OFF"
    payload_on: "RfRaw 177"
    payload_off: "RfRaw OFF"
#    ____ _____ _   _          _______     __   _____ ______ _   _  _____  ____  _____  
#   |  _ \_   _| \ | |   /\   |  __ \ \   / /  / ____|  ____| \ | |/ ____|/ __ \|  __ \ 
#   | |_) || | |  \| |  /  \  | |__) \ \_/ /  | (___ | |__  |  \| | (___ | |  | | |__) |
#   |  _ < | | | . ` | / /\ \ |  _  / \   /    \___ \|  __| | . ` |\___ \| |  | |  _  / 
#   | |_) || |_| |\  |/ ____ \| | \ \  | |     ____) | |____| |\  |____) | |__| | | \ \ 
#   |____/_____|_| \_/_/    \_\_|  \_\ |_|    |_____/|______|_| \_|_____/ \____/|_|  \_\
#                                                                                       
#                                                                                       
binary_sensor:
# SENSORES JANELAS E PORTAS
# EDICULA
  - name: 'Porta - Video Games'
    state_topic: 'tele/rf_433_edicula/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:82] == '2818090909090918091809180918090918090918180909181809180918' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 10
    device_class: door
# CASA
  - name: 'Botão do Pânico - Rodrigo - A'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:74] == '28190818181819081908190909081909090908181818190818' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 0
    device_class: safety
  - name: 'Botão do Pânico - Rodrigo - B'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:74] == '28190818181819081908190909081909090908181908181818' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 0
    device_class: safety
  - name: 'Botão do Pânico - Rodrigo - C'
    state_topic: 'tele/rf_433_casa/RESULT' #28190818181819081908190909081909090908181818181908
    value_template: >-
      {% if value_json.RfRaw.Data[24:74] == '28190818181819081908190909081909090908181818181908' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 0
    device_class: safety
  - name: 'teste status rf'
    state_topic: 'tele/rf_433_edicula/RESULT' #28190818181819081908190909081909090908181818181908
    value_template: >-
      {% if value_json.RfRaw.Data[24:74] == '28190818181819081908190909081909090908181818181908' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 0
    device_class: safety
    availability:
      - topic: "tele/rf_433_casa/LWT"
        payload_available: "Online"
        payload_not_available: "Offline"
#  binary_sensor:
#  - name: 'Botão do Pânico - Rodrigo - C'
#    state_topic: 'tele/rf_433_casa/RESULT' #28190818181819081908190909081909090908181818181908
#    value_template: '{{value_json.RfReceived.Data}}'
#    value_template: >-
#      {% if states('binary_sensor.botao_do_panico_rodrigo_c') == 'unknown' | states('binary_sensor.botao_do_panico_rodrigo_c') == 'UNKNOWN' | states('binary_sensor.botao_do_panico_rodrigo_c') == '' %}
#        {{'off'}}
#      {% else %}
#        {{'value_json.RfReceived.Data'}}
#      {% endif %}
#    payload_on: "42BBC1"
#    payload_off: "42BBC1"
#    device_class: safety
  - name: 'Botão do Pânico - Rodrigo - D'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:74] == '28190818181819081908190909081909090908181819081818' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 0
    device_class: safety
  - name: 'Botão do Pânico - Bárbara - A'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:74] == '28181908190909090818190819090909090908190909081909' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 0
    device_class: safety
  - name: 'Botão do Pânico - Bárbara - B'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:74] == '28181908190909090818190819090909090908190819090909' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 0
    device_class: safety
  - name: 'Botão do Pânico - Bárbara - D'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:74] == '28181908190909090818190819090909090908190908190909' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 0
    device_class: safety
  - name: 'Janela Escritorio - Lado Direito'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:82] == '2818180909090918090918091818091809180918090909181809180918' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 15
    device_class: window
  - name: 'Janela Escritorio - Lado Esquerdo'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:82] == '2818180909180909091818090918090918181818180909181809180918' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 15
    device_class: window
  - name: 'Janela Lavabo'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:82] == '2809090918091809090909091809091818181818180909181809180918' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 15
    device_class: window
  - name: 'Janela Bar'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:82] == '2809180918091809090918180918091818181818180909181809180918' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 15
    device_class: window
  - name: 'Janela Sala Estar'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:82] == '2818090909180918090909180909090918181818180909181809180918' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 15
    device_class: window
  - name: 'Janela Sala TV - Lado Direito'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:82] == '2809091818181818181818180918091818181818180909181809180918' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 15
    device_class: window
  - name: 'Janela Sala TV - Lado Esquerdo'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:82] == '2809091818090918181818181818091818181818180909181809180918' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 15
    device_class: window
  - name: 'Porta Varanda'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:82] == '2818091818180909091818181818091818091809180909181809180918' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 15
    device_class: door
  - name: 'Porta Dispensa 1'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:82] == '2809091818181809090918181809091818180918090909181809180918' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 15
    device_class: door
  - name: 'Porta Dispensa 2'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:82] == '2809090918180918090909090909180918090918180909181809180918' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 15
    device_class: door
  - name: 'Porta Lavanderia'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:82] == '2818091809081809180918181809091818181818180909181809180918' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 15
    device_class: door
  - name: 'Porta Entrada'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:82] == '2809181818181818090918090909091809090909090909181809180918' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 15
    device_class: door
  - name: 'Janela Cozinha'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:82] == '2818181809091809090918090909090909181818090909181809180918' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 15
    device_class: window
  - name: 'Movimento Sala TV'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[24:82] == '2818090909091818090909091818091809090918090909181809180918' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 30
    device_class: motion

Obrigado, terça e quinta trabalho de casa ou a noite, se conseguir ajuda agradeço mesmo! Valeu garoto!

Recebeu alguma coisa nesse sensor?

Tarde, para informação
Sim ele recebe

Ai até para teste eu mudei meu mqtt

  - name: 'Janela Escritorio - Lado Direito'
    state_topic: 'tele/rf_433_casa/RESULT'
    value_template: >-
      {% if value_json.RfRaw.Data[01:02] == 'AA' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 15
    device_class: window

e mesmo assim ele não vai

image

Aqui funcionou normal.

Peguei o valor no outro tópico e enviei via mqtt:

tele/rf_433_casa/RESULT
{
"Time":"2019-10-28T01:03:18",
"RfRaw":{
"Data":"AA B1 03 0226 03A2 303E 2818090918091818091809180905090909180918180909181809180918 55"
}
}

Mudei um pouco o sensor, mas não deveria influenciar no seu resultado.
Com regex ele vai procurar pelo valor que vc quiser, independente da posição que ele esteja:

  sensor:
  - name: "rf 433 casa"
    state_topic: "tele/rf_433_casa/RESULT"
    value_template: >-
      {% if value_json.RfRaw.Data|regex_search('2818090918091818091809180905090909180918180909181809180918') %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    expire_after: 60

Para simular coloquei uma letra “a” no meio do código para ficar off:

on:

Corrigindo a resposta acima… funcionou como sensor, depois lembrei que tinha que ser sensor binário, ai deu ruim, rsrsrs

Assim funcionou como sensor binário:

  binary_sensor:
  - name: "rf 433 casa"
    state_topic: "tele/rf_433_casa/RESULT"
    payload_on: 'true'
    payload_off: 'false'
    value_template: >-
      {% if value_json.RfRaw.Data|regex_search('2818090918091818091809180905090909180918180909181809180918') %}
        {{'true'}}
      {% else %}
        {{'false'}}
      {% endif %}
    expire_after: 60

KUDOS

Resolvido da seguinte forma

na verdade coloquei assim:

  - name: 'Janela Escritorio - Lado Direito'
    state_topic: 'tele/rf_433_casa/RESULT'
    payload_on: 'off'
    value_template: >-
      {% if value_json.RfRaw.Data|regex_search('2818180909090918090918091818091809180918090909181809180918') %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 15

Assim defini o status payload on = off (seria janela fechada)

Ou seja para quem tinha isso, precisa adicionar somente o payload_on: ‘off’ que resolve tudo!!!

VALEU MANO, vou atualizar meu tutorial. Mas quebrei a cabeça ual!!!

referencia

não 100%
agora ele mudou todos os status quando era 1 so kkk
deixa eu pensar mais

vou tentar mudar isso

value_template: >-
  {% if value_json.RfRaw.Data|regex_search('2818180909090918090918091818091809180918090909181809180918') %}
    {{'on'}}
  {% else %}
    {{'off'}}
  {% endif %}

Para isso

value_template: >-
  {% if value_json.RfRaw.Data|regex_search('2818180909090918090918091818091809180918090909181809180918') %}
    {{'on'}}
  {% endif %}

vamos ver

Não é o state_topic repetido não?

Mas ai que tá todos tem o mesmo
state_topic: ‘tele/rf_433_casa/RESULT’

Por que vem dele e so pega um pedaço do .DATA

Algo de errado não está certo. Kkk

Cada sensor tem um data diferente mas todos estão no mesmo tópico, certo?

Então vc tem que mudar o regex pelo que entendi.

Exato, mas já está

Por isso não entendi por que mudou todos.
To fazendo o teste so com 2 para ver

  - name: 'Janela Escritorio - Lado Direito'
    state_topic: 'tele/rf_433_casa/RESULT'
    payload_on: 'off'
#    payload_off: 'on'
    value_template: >-
      {% if value_json.RfRaw.Data|regex_search('2818180909090918090918091818091809180918090909181809180918') %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 15
#    expire_after: 1
    device_class: window
  - name: 'Janela Escritorio - Lado Esquerdo'
    state_topic: 'tele/rf_433_casa/RESULT'
    payload_on: 'off'
    value_template: >-
      {% if value_json.RfRaw.Data|regex_search('2818180909180909091818090918090918181818180909181809180918') %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 15
    device_class: window