Continuando nessa ideia, para quem realizar uma programação manual para o arduino e deseja ter o memso tipo de informação basta realizar o seguinte:
switch:
- platform: mqtt
name: “Relais”
state_topic: “ha/switch1/status”
command_topic: “ha/switch1/set”
availability_topic: “ha/switch1/lwt”
payload_on: “ON”
payload_off: “OFF”
payload_available: “ONLINE”
payload_not_available: “OFFLINE”
optimistic: false
qos: 1
retain: true
Na parte de programação do arduino:
const char* ha_command = "ha/switch1/set";
const char* ha_state = "ha/switch1/status";
const char* ha_availability = "ha/switch1/lwt";
const char* payload_on = "ON";
const char* payload_off = "OFF";
const char* payload_available = "ONLINE";
const char* payload_not_available = "OFFLINE";
E a parte de ligação ao mqtt:
void reconnect() {
// Loop until we're reconnected
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
if (client.connect(mqtt_id, mqtt_username, mqtt_password, ha_availability, 0, true, payload_not_available )) {
Serial.println("connected");
client.subscribe(ha_command);
client.subscribe(ha_state);
client.publish(ha_availability, payload_available, true);
} else {
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
// Wait 5 seconds before retrying
delay(5000);
}
}
}
è possivel criar um sensor para mostrar se o sonoff esta ligado ou desligado ?
Estou tentando com o codigo abaixo, mas ele só mostra como LIGADO.
sensor:
- platform: mqtt
name: "Sonoff Luz"
state_topic: "tele/sonoff/LWT"
value_template: "{{ value }}"
payload_on: "Online"
payload_off: "Offline"
Podes usar assim:
sensor:
- platform: mqtt
name: "Luz de Fundo (TV)"
state_topic: "home/indoor/switch/SONOFF_BASIC_B440BD/relay/0"
command_topic: "home/indoor/switch/SONOFF_BASIC_B440BD/relay/0"
availability_topic: "home/indoor/switch/SONOFF_BASIC_B440BD/status"
qos: 1
payload_on: 1
payload_off: 0
payload_available: 1
payload_not_available: 0
optimistic: false
retain: true
Apenas troquei o nome do SONOFF para o meu, e nao funcionou.
Oq seria home/indoor/switch/ ?
O que tens de escrever depende do firmware que utilizas e como está configurado.
No meu caso ficou assim, e nao funcionou:
- platform: mqtt
name: "Sonoff Bia"
state_topic: "stat/sonoffBia/POWER"
command_topic: "cmnd/sonoffBia/power"
availability_topic: "tele/sonoffBia/LWT"
qos: 1
payload_on: 1
payload_off: 0
payload_available: 1
payload_not_available: 0
optimistic: false
retain: true
O Switch funciona perfeitamente.
E o payload qual é? 0/1, Ligado/Desligado, Online/Offline…
Funcionou
- platform: mqtt
name: "Sonoff Bia"
state_topic: "stat/sonoffBia/POWER"
command_topic: "cmnd/sonoffBia/power"
availability_topic: "tele/sonoffBia/LWT"
qos: 1
payload_on: "ON"
payload_off: "OFF"
payload_available: "Online"
payload_not_available: "Offline"
optimistic: false
retain: true
Boa! Marca a resposta certa como solução para que todos saibam que existe resposta à tua questão.
Como o topico nao foi criado por mim, nao aparece a opcao para marcar como resolvido.
Ja informei isso para o @RodolfoVieira
Eu alterei essa opção. Podes confirmar se, no tópico onde está a resposta correcta, ao clicares nos três pontos (...
) no fundo da publicação aparece a opção de marcar como solução (um quadrado com um visto dentro)?
Ainda nao aparece a opcao para marcar como resolvido.
Vou ver isso melhor. Entretanto já marquei eu.
Aqui tenho 2 sonoff com essa config:
platform: mqtt
name: "sonoff2"
command_topic: "cmnd/sonoff2/power"
state_topic: "stat/sonoff2/POWER"
qos: 1
payload_on: "ON"
payload_off: "OFF"
retain: true
availability_topic: "tele/sonoff2/LWT"
payload_available: "Online"
payload_not_available: "Offline"
Estão funcionando OK. Porem quando o HA é reiniciado os sonoffs não voltam com o estado correto.
Por exemplo:
Sonoff 1 - Ligado
Reboot no HA
Status do Sonoff 1 - Desligado
Update: Está as vezes entra em “Indisponivel” e volta…
É tasmota que tens no sonoff?
Se sim vai a consola pela pagina web do sonoff e escreve isso e faz enter:
PowerRetain 1
Cria essa automação q em todo Reboot ele vai “reler” os status dos sonoff.
INICIALIZACAO
- alias: Atualizar sonoffs ao reiniciar HA
hide_entity: True
trigger:
- platform: homeassistant
event: start
action:
- service: mqtt.publish
data:
payload: ""
topic: "cmnd/sonoffs/power"
qos: 0
retain: 0
- service: mqtt.publish
data:
topic: "cmnd/sonoffs/power1"
payload: ""
qos: 0
retain: 0
- service: mqtt.publish
data:
topic: "cmnd/sonoffs/power2"
payload: ""
qos: 0
retain: 0