Garagem - Cover State

No meu caso, acontece o mesmo, basta reiniciar o HA e já perco o status. Porém, no APP MQTT Buddy tudo permanece normal. Então, o problema está no HA.

@j_assuncao, como o @souzaathales disse, no mqtt fx ta tudo normal… E msmo alguma cena no ha. Acho q tem haver com aquelas configs q mandei. Mas ja tentei e n consigo

Ok, dá-me uma hora ou duas para ver isso.

Acho que isto vai resolver:

  - alias: teste portao da rua
    initial_state: true
    trigger:
      platform: event
      event_type: homeassistant_start
    action:
      service: mqtt.publish
      data:
        topic: cmnd/sonoff11/OFF
	    payload: ON

testa so para o portão da rua.

Ó @joaocosme, estava agora aqui a ver o teu código que o Rodolfo pôs no publicação #6 e parece-me que o problema está mesmo à vista.

Embora tenhas o powerretain = 1 no Tasmota, na definição da cover (tanto no insidegarage como no outsidegarage) tens configurado o retain: false e assim o HA vai ignorar o tópico ao arrancar.

Além disso a opção optimistic: false não faz falta, pois tens o state topic definido.

Na página original pode ler-se:

If a state topic is not defined, the cover will work in optimistic mode. In this mode, the cover will immediately change state (open or closed) after every command sent by Home Assistant. If a state topic is defined, the cover will wait for a message on state_topic matching state_open or state_closed before changing state in Home Assistant.

Optimistic mode can be forced, even if a state_topic is defined. Try to enable it if experiencing incorrect cover operation.

The mqtt cover platform optionally supports an availability_topic to receive online and offline messages (birth and LWT messages) from the MQTT cover device. During normal operation, if the MQTT cover device goes offline (i.e. publishes payload_not_available to availability_topic), Home Assistant will display the cover as “unavailable”. If these messages are published with the retain flag set, the cover will receive an instant update after subscription and Home Assistant will display correct availability state of the cover when Home Assistant starts up. If the retain flag is not set, Home Assistant will display the cover as “unavailable” when Home Assistant starts up.

Altera então para o código corrigido abaixo e diz se funcionou.

cover:
  - platform: mqtt
    name: "insidegarage"
    #POWER2 cooresponde ao switchX no ip do sonoff(neste caso, switch2 = POWER2)
    state_topic: "cmnd/2/POWER2"
    command_topic: "cmnd/sonoff8/POWER"
    availability_topic: "tele/sonoff8/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    payload_open: "ON"
    payload_close: "ON"
    payload_stop: "ON"
    state_open: "OFF"
    state_closed: "ON"
    retain: true

  - platform: mqtt
    name: "outsidegarage"
    #POWER2 cooresponde ao switchX no ip do sonoff(neste caso, switch1 = POWER1)
    state_topic: "cmnd/2/POWER1"
    command_topic: "cmnd/sonoff11/OFF"
    availability_topic: "tele/sonoff11/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    payload_open: "ON"
    payload_close: "ON"
    payload_stop: "ON"
    state_open: "OFF"
    state_closed: "ON"
    retain: true

Mas o que estou a achar estranho no meio disto tudo é que as tuas configurações do payload (open, close e stop) são todas iguais ou seja os comandos para abrir, fechar e parar são os mesmos… Isso estava a funcionar bem?

Sim esta a funcionar bem eu testei com ele… e ele ja testou isso do Retain: True depois de eu ver que estava em False.
Mas o problema penso estar mesmo aqui:

Considerations
If you are using the state of a platform that takes extra time to load, the Template Cover may get an unknown state during startup. This results in error messages in your log file until that platform has completed loading. If you use is_state() function in your template, you can avoid this situation. For example, you would replace {{ states.switch.source.state == 'on' }} with this equivalent that returns true/false and never gives an unknown result: {{ is_state('switch.source', 'on') }

Só não sei como transformar esta explicação.

Boas eu para o meu portão estou a usar isto aqui https://github.com/marthoc/GarHAge

E a seguinte automação para manter informar sempre do estado do portão.

  • id: xyz
    alias: Update garage door state on startup
    trigger:
    • platform: homeassistant
      event: start
      action:
    • service: mqtt.publish
      data:
      topic: “garage/door/1/action”
      payload: “STATE”
    • service: mqtt.publish
      data:
      topic: “garage/door/2/action”
      payload: “STATE”

Esta tudo explicado na pagina acima referida.

E é uma excelente opção!

Não pode ser isso… Se o tópico é publicado com retain e o HA vai ler o tópico quando reinicia não pode dar unknown…

@Mervoes, quando publicares código, selecciona o texto e depois clica no ícone </>.

Mas o facto é que retorna o valor unknown.
Contudo por vezes o topico fica la retido no servidor , e não se consegue mudar já me aconteceu a mim tenho coisas lá retidas e para as fazer funcionar tive que mudar o nome.

O retain ja mudei parq true ai tb… Na altura tava false masbja testei com true e n deu… Sim estava. Pq na verdade isso e para ativar o rele. Por isso tem q ser on acho eu

Não precisas de mudar o nome do tópico! Basta enviar um comando vazio para o tópico que tem mensagens retidas e que queres limpar…

@j_assuncao a mim tb ja aconteceu. Fica ca retido o topico e tive que mudar o nome do sonoff nas configs mqtt do tasmota… Como e q resolvo isso do topico retido ja agora?

Para limpar o tópico?

Por exemplo. Chegou me a acontecer ficar um topico la retido para power on. E sempre q a luz ia abaixo, qd voltava ele fazia power on. E eu tinha powerretain off, poweronstate 0… Ficava retido. E nao conseguia limpar. Tive q mudar o nome nas configuracoes mqtt… No hassbian ha uma maneira d linpar os topicos retidos. No hassio n sei como se faz… Tavas a dizer ao rodolfo q dava. Nao sei se te referias a isto ou nao

Era isso mesmo. Basta enviar uma mensagem vazia para o tópico que queres limpar!

@j_assuncao essa menssagem e enviada pela consola do tasmota certo? E na consola o que escrevo? Eu sou novo nestas coisas e não percebo bem isto. Ando a aprender :slight_smile:

Não @joaocosme. É enviado atraves do mqttFX que ja tens instalado.

Também pode ser enviado pelo HA, no MQTT do Developer Tools (no menu do lado esquerdo em baixo, segundo ícone a contar da direita).

Depois basta escrever o tópico que queres limpar na linha de cima, deixar a linha de baixo em branco e carregar no botão Publish/Publicar

2 Curtiram

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


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