Bom dia,
Precisava de opinião/ajuda em criar uma automação.
O objectivo é o HA detectar quando ambos os device trackers estão fora de casa e verificar se o alarme está desarmado. Caso esteja desarmado enviar notificação com acções.
Até aqui tudo simples, mas precisava de opiniões sobre o que usar como trigger. E tambem há um senão: definir as condiçoes para “away” tambem não chega pois se estiver dentro de uma zona, o estado não é away mas sim o nome da zona.
Estava a criar a automação desta forma (a qual não é funcional):
- id: '154149aa8119974'
alias: Alerta quando alarme esta desarmado e ambos fora
trigger:
- entity_id: device_tracker.nelson
from: home
platform: state
- entity_id: device_tracker.sofia
from: home
platform: state
condition:
- condition: state
entity_id: device_tracker.nelson
state: away
- condition: state
entity_id: device_tracker.sofia
state: away
- condition: state
entity_id: alarm_control_panel.casa
state: disarmed
action:
- service: notify.telegram_ne_p20
data:
title: "Alerta"
message: "O alarme está desativado sem ninguem em casa. Armar?"
data:
keyboard:
- '/armar'
- '/desarmar'
Desta forma, tanto o trigger como as condições não são ideais pois o trigger baseia-se na alteração da localização. O problema é que se ja ambos estivermos fora de casa o home assistant não vai detectar a mudança de localizaçao llogo não vai fazer a verificação. Por isso talvez seja ideal outro tipo de trigger.
Quanto às condições, desta forma não são funcionais pois caso eu esteja dentro de uma zona predefinida, o estado não será away mas sim o nome da zona.
A minha formatação está correcta para a minha config.
Será que me podias esclarecer uns pontos?
O trigger no teu caso faz uma verificaçpão de 2 e 2 minutos em loop?
Depois em condition tens tambem:
condition: and
Isso define que as condições seguintes como um “tambem” correcto?
Quanto ao state ‘not_home’ funciona mesmo que o state seja uma das zonas predefinidas?
Sim e mesmo que não ponhas o and ele assume automaticamente. Podes trocar para or e ele retorna verdadeiro se qualquer uma das condições for verdadeira.
not_home é a negação de home. Caso tenhas uma zona pré-definida para o HA será sempre not_home embora te mostre o nome da zona.
Tudo está aparentemente bem, mas não recebo as notificações…
O meu código é o seguinte:
#################################################### Notifica Sobre Alarme
- id: 'notifalarmeqaundofora'
alias: Alerta_sobre_alarme_quando_ausentes
trigger:
- platform: time
minutes: '/2'
condition:
condition: and
conditions:
- condition: state
entity_id: device_tracker.nelson
state: 'not_home'
- condition: state
entity_id: device_tracker.sofia
state: 'not_home'
- condition: state
entity_id: alarm_control_panel.casa
state: 'disarmed'
action:
- service: notify.telegram_ne_p20
data:
title: "Alerta"
message: "O alarme está desativado sem ninguem em casa. Armar?"
data:
keyboard:
- '/armar'
- '/desarmar'
Se fizer verificação do código, diz que está tudo direito. As automações carregam e estão todas ligadas. Mas não recebi nenhuma notificação ainda. Neste momento o alarme está no estado disarmed e ambos os trackers estão numa localização predefenida “trabalho”.
Uso o seguinte codigo para me notificar quando uma luz se liga e funciona na perfeição:
#################################################### Notifica com Pergunta
- id: '154091sdff2062137'
alias: teste telegram
trigger:
- entity_id: light.kitchen
platform: state
to: 'on'
condition: []
action:
- service: notify.telegram_ne_p20
data:
title: "Alerta"
message: "A luz da cozinha acendeu Desligar?"
data:
keyboard:
- '/Sim'
- '/Não'
Está a escapar-se-me algo? Suponho k o problema esteja ou no trigger ou nas condições. pois a automação das luzes funciona.
Essa forma não é a ideal por se basear na alteração da localização, a qual não funcionará caso já estejamos fora de casa. A ideia anterior baseada numa verificação de X em X tempo era melhor.
Não testei, mas antes disso vou tentar alterar primeiro só o trigger, começar a fazer exclusão do que possa ser. Não testei assim pois mesmo que funcione não será o ideal, daí querer primeiro tentar perceber qual o problema na outra. Se não estiver a chegar lá tento dessa forma afim de despistar qual o problema.
- id: 'notifalarmeqaundofora'
alias: Alerta_sobre_alarme_quando_ausentes
trigger:
# - entity_id: light.kitchen
# platform: state
# to: 'on'
- platform: time
minutes: '/2'
condition:
condition: and
conditions:
- condition: state
entity_id: device_tracker.nelson
state: 'TRABALHO'
- condition: state
entity_id: device_tracker.sofia
state: 'TRABALHO'
- condition: state
entity_id: alarm_control_panel.casa
state: 'disarmed'
action:
- service: notify.telegram_ne_p20
data:
title: "Alerta"
message: "O alarme está desativado sem ninguem em casa. Armar?"
data:
keyboard:
- '/armar'
- '/desarmar'
com isto deparei-me com outra questão, é que ele envia-me notificação praticamente a cada segundo até neste caso o armar. não deveria receber notificação de 2 em 2mins?
comigo tambem vai ter de funcionar…
O que me está a deixar tambem curioso é o facto de me estar a floodar com notificações a cada segundo em vez de enviar uma a cada 2 mins.
penso que o problema do not_home tem a ver com não ser um grupo. Os grupos só apresentam home e not_home . Ou seja, terei de criar um grupo com o tracker e definir as condiçoes pelo estado desse grupo. Após testar dou novidades
O grupo parece-me bem. Mas esclarece-me isto:
Vamos supor que no teu grupo familia estás tu e a tua mulher e estão os dois em casa. o grupo mostra como not_home. se um de voces sair de casa, o grupo mostra qual estado? o ultimo que sofreu alteração? ou mantem o home por o outro se manter em casa?
Se ele mantiver o home mesmo alguem saindo penso que se adaptará, mas se ele alterar o estado do grupo em função da ultima localizaçao de um dos 2 para not_home, já não se aplica.
Uma forma de dar a volta a isto era criar um sensor que altera o estado para away quando a localizaçao for diferente de “home” e enviar a notificaçao mediante o estado do sensor. Mas queria uma forma mais “limpa”.