Atrelar o estado de um sensor de porta a um botão


(Osmar Tavares Junior) #1

Bom dia a todos.
Mais uma vez, venho pedir ajuda da comunidade.

Existe a possibilidade de atribuir a função de um sensor de porta a um botão?
controlo a garagem de casa com o broadlink RF, mas eu não sei o real estado do botão (se abrir ou fechar via controle próprio, não muda o estado no HA). Será que existe a possiblidade de quando o sensor estiver em fechado, o botão ficar sempre desligado e vice e versa?

Obrigado pela ajuda!


(Nuno Neves) #2

Sim é possível usando um template switch:

  switch:
    - platform: template
      switches:
        garagemdecasa:
          value_template: "{{ is_state('sensor.sensordaporta', 'on') }}"
          turn_on:
            service: switch.turn_on
            data:
              entity_id: switch.botaogaragemrfabrir
          turn_off:
            service: switch.turn_on
            data:
              entity_id: switch.botaogaragemrffechar

Claro, no turn_on e no turn_off tens de pôr o serviço apropriado…
Depois diz coisas…


(Osmar Tavares Junior) #3

Maravilha!
muito obrigado.
assim que possível eu posto os resultados!


(Nuno Neves) #4

Ainda melhor seria usar um cover template…


(Osmar Tavares Junior) #5

tem algum exemplo desse cover template?


(Nuno Neves) #6

É parecido com o switch que pus antes…


(Osmar Tavares Junior) #7

MadDoctor…muito obrigado pela ajuda!
Sensacional!


(Nuno Neves) #8

Ficou a funcionar bem?!


(Osmar Tavares Junior) #9

sim, fiz o cover, funcionou.
o sensor ainda não esta instalado no portão, mas ele esta ativo e em posição de fechado (na minha bancada) por isso ainda não fiz um teste efetivo.

mas veja a imagem do meu HA22

as setas não deveriam estar com as cores invertidas?
o que eu entendo, é que a posição da seta pra cima esta ativada, e a pra baixo esta disponível para ativar.
ou estou errado?

segue a conver que eu fiz

    cover:
  - platform: template
    covers:
      portao_garagem:
        friendly_name: "Portao Garagem"
        position_template: "{{ states('binary_sensor.garagem') }}"
        open_cover:
          service: switch.turn_on
          data:
            entity_id: switch.portao
        close_cover:
          service: switch.turn_off
          data:
            entity_id: switch.portao
        stop_cover:
          service: switch.turn_on
          data:
            entity_id: switch.portao
        icon_template: >-
          {% if states('binary_sensor.garagem')|float > 0 %}
            mdi:garage-open
          {% else %}
            mdi:garage
          {% endif %}

(Osmar Tavares Junior) #10

consegui!

mudei o código.

no lugar de
position_template: "{{ states('binary_sensor.garagem') }}"

mudei para
value_template: "{{is_state('binary_sensor.garagem', 'closed')}}"

agora no STATES deu como CLOSED

a noite vou ver se consigo instalar o sensor no portão e fazer o teste definitivo.


(Nuno Neves) #11

Boa! Era exactamente isso que ia sugerir… Como disse, é parecido com o switch… :wink:


(Osmar Tavares Junior) #12

Bom, sensor instalado no portão, o código funciona…mas ainda tem um problema!

usando

position_template: "{{ states('binary_sensor.garagem') }}"

o template não deveria pegar o estado atual do sensor?
se eu uso dessa maneira, ele da o estado do sensor como aberto, mas ele esta fechado!
o que devo fazer para pegar o real estado do sensor?

Obrigado


(Nuno Neves) #13

Põe como puseste acima - com o value_template


(Osmar Tavares Junior) #14

então…seu eu por com o value_template, ele assume que ta fechado, mas não muda o estado para aberto.
não inverte a seta quando o portão abre.


(Nuno Neves) #15

O correcto será:
value_template: “{{is_state(‘binary_sensor.garagem’, ‘open’)}}”

Em princípio ele assume que a porta está aberta quando a condição que está no template é verdadeira e fechado quando é falsa…
Neste caso não deverá ser usado o position template…


(Osmar Tavares Junior) #16

Muito obrigado mais uma vez!
vamos testar!

daqui a pouco posto o resultado…


(Osmar Tavares Junior) #17

Bom…não funcionou.
o cover assumiu como “fechado” e não atualiza a opção mesmo com o estado real em aberto.

vou tentar ir por esse caminho: https://www.home-assistant.io/components/cover.mqtt/

o que vc acha?


(Nuno Neves) #18

Então o que está errado no template é o estado do sensor… Se calhar em vez de closed é off ou coisa parecida. Vê nos states da entity na secção <>.
O mqtt cover so funciona se os relés forem controlados por mqtt e o problema do state é igual…