MQTT - Colocar em OFF switch de um sonoff se perder ligação

Boas,

tenho um sonoff com Tasmota a usar mqtt. Está configurado no HA como switch.
Imaginando o seguinte cenário:

  • Ligo o sonoff
  • Coloco em ON no HA
  • Tiro a ficha do sonoff

A partir deste momento, o HA vê sempre o sonoff como ligado, porque o último comando enviado pelo sonoff era “ON”.
Existe alguma forma, sem recorrer a automação (como, fazer ping ao sonoff, caso indisponivel marcar como OFF). Por exemplo, o protocolo MQTT não tem nada do tipo “Keep Alive” que funcione para este cenário?

O mesmo se passa para um ESP8266 que tenho, que está a servir de programador de rega e também usa MQTT para abrir e fechar os sectores.

2 Curtiram

Existe… Tens de ter configurado no HA o tópico de LWT do sonoff… Quando o desligas, ele aparece com indisponível…

para fazer o que tu dizes, é utilizando as automations?

O problema poderá ser do tópico estar com retain. No Espurna existe uma opção, no Tasmota também mas não sei onde, para indicar o que fazer em caso de falha de energia. Ao voltar a energia podes forçar a ligar, a desligar, a utilizar o último estado ou inverter o último estado.

Nada disto é feito com automações mas sim nas definições dos switch no HA ou na interface do equipamento.

Não, configura o switch assim:

switch:
  - platform: mqtt
    name: "Sonoff power"
    state_topic: "stat/sonoff/POWER"
    command_topic: "cmnd/sonoff/POWER"
    availability_topic: "tele/sonoff/LWT"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "Online"
    payload_not_available: "Offline"

Altera para corresponder aos teus… Basicamente tens de incluir a parte do availability… O retain, pelo menos no tasmota, não tem nada a ver…

Atenção à formatação do código! Selecciona o texto e clica em </>

Desculpa, @j_assuncao, mas no telemóvel não há maneira de conseguir formatar, não sei porquê… Quando estiver num PC edito o Post…

Não há problema @Maddoctor!

Se não conseguires formatar porque ao seleccionar o texto a barra onde aparecem as opções {cortar, colar, copiar, etc} fica a tapar o menu, experimenta com o dedo mover a barra para cima ou para baixo para destapar o menu.

Não é isso… Isso eu sei… O problema, pelos vistos, é que tenho de deixar uma linha em branco antes e depois…

Isso mesmo, precisas de uma linha em branco antes e depois do bloco de código.

O Discourse usa uma linguagem de marcação chamada Markdown para a formatação de texto. Se quiseres podes ler mais sobre Markdown neste link.

https://daringfireball.net/projects/markdown/syntax#precode


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


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