# Automação baseado em localizações

**URL:** <https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341>\
**Category:** Dúvidas\
**Created:** [6 Novembro , 2018 10:52 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341 "2018-11-06T10:52:04Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Nelson\_Oliveira](https://forum.cpha.pt/user_avatar/forum.cpha.pt/nelson_oliveira/32/1065_2.png) [@Nelson\_Oliveira](https://forum.cpha.pt/u/Nelson_Oliveira)\
**Post date:** [6 Novembro , 2018 10:52 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/1 "2018-11-06T10:52:04Z")

</div>

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.

Conselhos e dicas sobre a melhor forma de fazer?

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [6 Novembro , 2018 11:03 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/2 "2018-11-06T11:03:40Z")

</div>

A primeira coisa que salta à vista é a formatação estar toda errada.

Depois o `trigger` também está errado porque o que queres saber é quando não está ninguém em casa.

A entrada das condições está mal pois tem entradas a mais, o `device_tracker` já serve de `trigger` não tem de estar em `condition`.

De resto a `action` parece estar bem.

O que eu uso é isto:

```
#### LIGHTS OFF IF NO ONE IS HOME
  - alias: 'Luzes apagadas se ninguem em casa'
    trigger:
      - platform: time
        minutes: '/2'
    condition:
      condition: and
      conditions:
        - condition: state
          entity_id: group.familia
          state: 'not_home'
        - condition: state
          entity_id: input_boolean.modo_ferias
          state: 'off'
        - condition: state
          entity_id: group.all_lights
          state: 'on'
    action:
      - service: light.turn_off
        entity_id: group.all_lights
      - service: script.notify_zanzito_jorge
        data:
          title: '{{ as_timestamp (now()) | timestamp_custom("%d/%b/%Y %T") }}'
          message: 'Luzes Apagadas - NINGUÉM EM CASA'

```

No teu caso deve bastar alterar a `action` para aquilo que queres.

---

<div class="post-metadata">

**Author:** ![Nelson\_Oliveira](https://forum.cpha.pt/user_avatar/forum.cpha.pt/nelson_oliveira/32/1065_2.png) [@Nelson\_Oliveira](https://forum.cpha.pt/u/Nelson_Oliveira)\
**Post date:** [6 Novembro , 2018 11:17 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/3 "2018-11-06T11:17:12Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [6 Novembro , 2018 11:24 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/4 "2018-11-06T11:24:35Z")

</div>

> [@Nelson\_Oliveira](#):
>
> O trigger no teu caso faz uma verificaçpão de 2 e 2 minutos em loop?

Sim, no meu caso é o suficiente.

> [@Nelson\_Oliveira](#):
>
> `condition: and`  
> Isso define que as condições seguintes como um “tambem” correcto?

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.

> [@Nelson\_Oliveira](#):
>
> Quanto ao state ‘not\_home’ funciona mesmo que o state seja uma das zonas predefinidas?

`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.

---

<div class="post-metadata">

**Author:** ![Nelson\_Oliveira](https://forum.cpha.pt/user_avatar/forum.cpha.pt/nelson_oliveira/32/1065_2.png) [@Nelson\_Oliveira](https://forum.cpha.pt/u/Nelson_Oliveira)\
**Post date:** [6 Novembro , 2018 11:25 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/5 "2018-11-06T11:25:32Z")

</div>

Muito obrigado… agora é hora de testar 😃

---

<div class="post-metadata">

**Author:** ![Nelson\_Oliveira](https://forum.cpha.pt/user_avatar/forum.cpha.pt/nelson_oliveira/32/1065_2.png) [@Nelson\_Oliveira](https://forum.cpha.pt/u/Nelson_Oliveira)\
**Post date:** [6 Novembro , 2018 12:44 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/6 "2018-11-06T12:44:09Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [6 Novembro , 2018 13:13 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/7 "2018-11-06T13:13:59Z")

</div>

Tenta assim:

```
- id: 'notifalarmeqaundofora'
  alias: Alerta_sobre_alarme_quando_ausentes
  trigger:
  - platform: state
    entity_id: device_tracker.nelson
    from: 'home'
    to: 'not_home'
  - platform: state
    entity_id: device_tracker.sofia
    from: 'home'
    to: 'not_home'
  condition:
    condition: and
    conditions:
      - 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'
```

---

<div class="post-metadata">

**Author:** ![Nelson\_Oliveira](https://forum.cpha.pt/user_avatar/forum.cpha.pt/nelson_oliveira/32/1065_2.png) [@Nelson\_Oliveira](https://forum.cpha.pt/u/Nelson_Oliveira)\
**Post date:** [6 Novembro , 2018 13:35 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/8 "2018-11-06T13:35:08Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [6 Novembro , 2018 13:40 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/9 "2018-11-06T13:40:16Z")

</div>

Mas a automação assim funciona?

---

<div class="post-metadata">

**Author:** ![Nelson\_Oliveira](https://forum.cpha.pt/user_avatar/forum.cpha.pt/nelson_oliveira/32/1065_2.png) [@Nelson\_Oliveira](https://forum.cpha.pt/u/Nelson_Oliveira)\
**Post date:** [6 Novembro , 2018 13:47 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/10 "2018-11-06T13:47:19Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Nelson\_Oliveira](https://forum.cpha.pt/user_avatar/forum.cpha.pt/nelson_oliveira/32/1065_2.png) [@Nelson\_Oliveira](https://forum.cpha.pt/u/Nelson_Oliveira)\
**Post date:** [6 Novembro , 2018 14:45 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/11 "2018-11-06T14:45:24Z")

</div>

O problema está mesmo no “not\_home”

```
- 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?

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [6 Novembro , 2018 15:01 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/12 "2018-11-06T15:01:55Z")

</div>

Engraçado que comigo funciona perfeitamente o `not_home` e uso em várias automações…

---

<div class="post-metadata">

**Author:** ![Nelson\_Oliveira](https://forum.cpha.pt/user_avatar/forum.cpha.pt/nelson_oliveira/32/1065_2.png) [@Nelson\_Oliveira](https://forum.cpha.pt/u/Nelson_Oliveira)\
**Post date:** [6 Novembro , 2018 15:08 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/13 "2018-11-06T15:08:46Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [6 Novembro , 2018 15:19 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/14 "2018-11-06T15:19:27Z")

</div>

Agora enquanto testas experimenta adicionar o seguinte no final da action: `delay: '00:02:00'`

```
action:
  - service: notify.telegram_ne_p20
    data:
      title: "Alerta"
      message: "O alarme está desativado sem ninguem em casa. Armar?"
      data:
        keyboard:
          - '/armar'
          - '/desarmar'
  - delay: '00:02:00'
```

---

<div class="post-metadata">

**Author:** ![Nelson\_Oliveira](https://forum.cpha.pt/user_avatar/forum.cpha.pt/nelson_oliveira/32/1065_2.png) [@Nelson\_Oliveira](https://forum.cpha.pt/u/Nelson_Oliveira)\
**Post date:** [6 Novembro , 2018 15:19 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/15 "2018-11-06T15:19:54Z")

</div>

A questão de receber as notificações a cada segundo resolve-se assim:

```
  - platform: time
    minutes: '/10'
    seconds: 00

```

Acrescentando os segundos, caso contrario ele faz a verificação 60 vezes a cada minuto

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [6 Novembro , 2018 15:22 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/16 "2018-11-06T15:22:42Z")

</div>

É isso mesmo! Tenho isso na automação seguinte e não tinha reparado…

---

<div class="post-metadata">

**Author:** ![Nelson\_Oliveira](https://forum.cpha.pt/user_avatar/forum.cpha.pt/nelson_oliveira/32/1065_2.png) [@Nelson\_Oliveira](https://forum.cpha.pt/u/Nelson_Oliveira)\
**Post date:** [6 Novembro , 2018 15:34 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/17 "2018-11-06T15:34:22Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [6 Novembro , 2018 15:39 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/18 "2018-11-06T15:39:19Z")

</div>

Mas eu utilizo também para trackers de pessoas individuais e funciona.

Seja como for a opção de criar o grupo família é a melhor e alias na minha automação que publiquei acima é como está feito.

---

<div class="post-metadata">

**Author:** ![Nelson\_Oliveira](https://forum.cpha.pt/user_avatar/forum.cpha.pt/nelson_oliveira/32/1065_2.png) [@Nelson\_Oliveira](https://forum.cpha.pt/u/Nelson_Oliveira)\
**Post date:** [6 Novembro , 2018 15:55 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/19 "2018-11-06T15:55:26Z")

</div>

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”.

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [6 Novembro , 2018 16:05 UTC](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341/20 "2018-11-06T16:05:25Z")

</div>

Penso que te enganaste a escrever, querias dizer que em casa o grupo mostra `home`, certo?

Sim, se estiverem os dois em casa vai mostrar home, se um de vocês sair continua `home`. Se saírem os dois passa a `not_home`.

Quando um dos dois regressa a casa passa para `home` e quando o segundo elemento da família chegar continua `home`.

Comigo a automação de desligar todas as luzes funciona perfeitamente com 4 elementos na família

[Próxima página](https://forum.cpha.pt/t/automacao-baseado-em-localizacoes/1341.md?page=2)
