Ajuda para criar um simples template

Olá,
Estou a tentar criar um template simples, mas não parece funcionar. Eu tenho um sensor de porta (d-link) que informa o estado on/off, gostaria de alterá-lo para aberto/fechado. Se eu colocar o value_template no editor de templates do HA, funciona, mas na UI, aparece sempre como off. Alguma ajuda?

#Templates para os sensores das portas
 - platform: template
   sensors:
     porta_entrada:
        value_template: '{% if is_state("binary_sensor.door_window_sensor_57", "on") %}Aberta{% else %}Fechada{% endif %}'
        friendly_name: "Porta Entrada"
        device_class: opening

Mostra como tens o sensor de porta configurado.

O sensor vem do vera z-wave, apenas coloquei dentro de um grupo, depois no configuration.yaml, 1 linha com “binary_sensor: !include binary_sensor.yaml” e no ficheiro binary_sensor.yaml é que tem este código.

Estou a descobrir os templates agora… é provável que esteja a fazer alguma coisa mal…

Não te esqueças, que “on” é diferente de “On”…
Coloca exactamente como aparece no sensor z-wave…

Já tentei mas tb não dá :frowning:

Tens algum erro no log relativo a isso?

nada… eu so queria mudar o output, em vez de dizer on/off dizer aberto/fechado

Sim, eu percebi. Abre o ficheiro .log e vê bem se tens algum erro, não vejas dentro do próprio HA.

testa assim

  - platform: template
    sensors:
      porta_entrada:
         value_template: '{% if is_state("binary_sensor.door_window_sensor_57", "on") %}Aberta{% else %}Fechada{% endif %}'

poe sem

friendly_name: "Porta Entrada"
device_class: opening

para que pores friendly_name name se ja o definiste em baixo de sensor:
porta_entrada:

Eu desconfio apenas do device_class por isso perguntei pelos erros no log.

De facto tenho este erro, que pouco percebo:

Invalid config for [binary_sensor.template]: expected a dictionary for dictionary value @ data[‘sensors’][‘porta_entrada’]. Got None expected a dictionary for dictionary value @ data[‘sensors’][‘value_template’]. Got ‘{% if is_state(“binary_sensor.door_window_sensor_57”, “On”) %}Aberta{% else %}Fechada{% endif %}’. (See ?, line ?). Please check the docs at https://home-assistant.io/components/binary_sensor.template/

Já tentei e dá o mesmo erro…

Eu bem disse que tinhas um erro…

O erro parece-me que tem a ver com o conteúdo do value_template mas agora não consigo confirmar.

ok, qd puderes diz alguma coisa. obrigado

o que postei ai em cima funciona, mas usei tipo sensor e nao binary_sensor

sensor:
  - platform: template

Tentei mas dá me erro de código no configuration.yaml …

@Fernmac

Primeiro, agora no PC reparei que tens um erro de indentação no código que publicas-te, a seguir a porta_entrada:.

Segundo, se isso te dá um erro no configuration.yaml é porque tens todo o código dentro do ficheiro de configuração, o que cria uma enorme confusão e dá azo a erros e problemas. Pensa seriamente em mudar as tuas configurações todas para packages.

Terceiro, experimenta o seguinte código:

#Templates para os sensores das portas
 - platform: template
   sensors:
     porta_entrada:
       value_template: >-
         {% if is_state("binary_sensor.door_window_sensor_57", "on") %}
           Aberta
         {% else %}
           Fechada
         {% endif %}'

Depois dá feedback.

Não é preferivel manteres-te com o binary_sensor e apenas adicionar o device_class para door?

Muito obrigado pela ajuda e feed-back.
Tenho tudo em packages, estava apenas na fase de testes e por isso coloquei no configuration, concordo que é indispensável, por uma questão de organização.
Não pensei que fosse tão complexo alterar a sintaxe do output, acho que vou me ficar pela mudança de classe…

1 Like

Copyright © 2017-2020. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade