Binary Sensor - MQTT

Pessoal, tudo bem? Depois da mudança do state do binary sensor aonde tinhamos on/off e agora adicionara unknown, ele zoou todas minhas automações.

O que gostaria de fazer que já tentei e não consigo e definir o state off para eles, pois ai não aparece mais assim:

Outra coisa, quebrou meu binary_sensor.yaml
dentro dele eu tinha:

  - platform: mqtt
    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

simplesmente parou de funcionar, coloquei o teste no template e vai.
Somente foi aqui no mqtt se mudo para rfraw off, lendo o payload, so que nem todos eu tenho codigo, por isso optei pelo raw.

Alguem conseguiu solucionar isso?

OIha, vasculhei todos os forums possiveis, não achei nenhuma solução plausivel para esse assunto. Deveriam criar um outro sensor aonde poderiamos deixar sem o unknown, isso esta me quebrando na configuração dos sensores da intelbras

Ninguem com esse problema pessoal? Nossa estou desesperado para ter isso funcionando novamente.

Isso me interessa… conte-me mais

Nesse tópico tem um script que você pode mudar o estado de qualquer entidade… tem alguns diferentes mas acho que todos funcionam.

Seu script vai ficar mais ou menos assim:

- service: python_script.set_state
  data:
    entity_id: binary_sensor.some_other_one
    state: 'off'
    allow_create: true

Ai vc cria pode criar uma automação para quando estiver unknow mudar para off

EDIT:

Dependendo do seu problema vc pode colocar uns templates nas condições:

    value_template: '{{ trigger.from_state.state != trigger.to_state.state}}'

value_template: '{{ trigger.to_state.state not in [''unknown'', ''unavailable'',
      ''none''] }}'
    value_template: '{{ trigger.from_state.state not in [''unknown'', ''unavailable'',
      ''none''] }}'
1 Like

Vou analisar ver se consigo incorporar isso.
Se conseguir aviso e posto.
Se não vou gritar por ajuda.
Valeu

Aqui aconteceu de alguns sensores aparecem como Unknown, mas foi só acionar eles que voltou ao normal. Por exemplo, foi só abrir e fechar a Janela que voltou para on e off.

Será que é o mesmo problema?

Eu não entendi direito a pergunta original do tópico, qual foi o contexto naquele caso pra ficar unknown. Mas no seu caso como foi só reacionar parece ser falta de retain, o ha deve ter reiniciado e o sensor não tinha enviado nenhum dado ainda, como o topics n tinha nenhuma mensagem com retain quando ha deu subscribe broker não tinha nada pra enviar ai ficou unknown até o sensor da um publish.

Ola, então, eu tenho sensores intelbras que uso o RF da sonoff para ler com firmware do Portisch.
Ai quando o HA iniciava ele sempre deixava o sensor em OFF, uma vez que não é um sensor que manda sinal. Assim que o sonoff RF le o topico tele/rf_433_casa/RESULT e verifica se o RAW contem certo tipo de DADO ele muda o status para ON. Porém a mais de um ano, com a atualização do HA, ele deixou isso como unknown, e a partir dai nunca mais consegui ler meus sensores e me alertar caso alguem ara uma janela ou uma porta.

não é, mesmo se eu mudar ele manualmente para off, e quando le o binary nao muda para on. To perdido.

Mas então seu esquema intelbras > sonoff > ha parou totalmente, já que não esta recebendo os dados quando abre o sensor.
Se fosse apenas para forçar o estado no caso de uma reinicialização o script que mandei ajudaria, mas nesse caso vc vai ter que ver uma atualização do Portisch ou se alguma informação nos dados foi alterada.

O problema dificilmente esta no HA. O ha so esta lendo, o topico, o unknow quer dizer que nao chegou nenhuma menssagem no topico. Se fosse problema no ha seria problema de conexao com broker, e ai nenhum device mqtt estaria funcionando ou então pode ser erro de digitacao no nome do topico.

É muito mais provavel que o problema esteja entre o sensor e o hub RF, ou entre hub e o broker.

Mas como falei, o RF recebe um milhao de datas, eu leio parcial e se corresponder ao que quero mudava de off para on. so que agora ja sai no unknown, foi depois dessa atulizacao 2022.2.9, antes funcionava, eu nao mexi em nada. Depois disso cagou meu sistema todo e ja tentei de tudo ;-(

Usando o mqtt explorer por ex vc esta recebendo os dados corretamente?

Talvez essa mudança não afete apenas as luzes:

The MQTT lights no longer support, the previously deprecated, value_template;state_value_template should be used instead.

Eu acho que teria que mudar para:

  - platform: mqtt
    name: 'Janela Escritorio - Lado Esquerdo'
    state_topic: 'tele/rf_433_casa/RESULT'
    state_value_template : >-
      {% if value_json.RfRaw.Data[24:82] == '2818180909180909091818090918090918181818180909181809180918' %}
        {{'on'}}
      {% else %}
        {{'off'}}
      {% endif %}
    off_delay: 15
    device_class: window

Já testou?

Correlação nem sempre é causalidade, as vezes ter parado na atualização foi coincidência
Mesmo não mexendo em nada tem mtos problemas possíveis desde alguma interferência até container do broker corrompido

@Walber
De acordo c as docs é value_template ainda sim
Acredito que seja uma diferenciação semântica pois o sensor tem uma propriedade valor intrínseca que o que o sensor estiver mediando,
No caso de luz não tem essa propriedade do estado que possa ser considerado o valor principal, vc tem cor, brilho , on/off, etc
Entao vc define estado inteiro

Eu acredito que a questão provavelmente não está no template, o template sempre teria quer mostrar off pq é um else não um else if, me parece que não está chegando nenhum dado do rf no ha.

Realmente, passou desapercebido esse detalhe

Ele ja esta assim
mqtt.yaml

`binary_sentor

  • 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`

Segue tela do MQTT

No caso essa linha mudaria para state_value_template : >-
Mas segundo o Ariel não mudou.

Se vc mudar o sensor para exibir o payload completo no ha esta funcionando?

Qual a diferença 2818… para 0818…?? Aberto e fechado?

Vc tem outros devices que usam mqtt? Pode ser que o ha não está conectado no broker.

O ideal mesmo na minha opinião era essa tradução estar a nível de firmware e aí vc só mandar on ou off no mqtt.

Sim, tenho e esta funcionando. Veja o JE05 por exemplo, esta no mesmo mqtt.yaml