Automação Led Gateway

Boas caro Rodolfo, já integrei a hora e data no home assistent. Mas a hora tanto UTC como a “normal” têm 1 hora de atraso. É normal isso acontecer? Já descobri o que está a aconteceu, está a fazer o efeito contrário, ou seja só acende o led 2 mim após a abertura da porta. Mas não sei como resolver a situação. Muito obrigado pela atenção. :sleepy:Cumps.

Boa tarde @maxcalavera, pegando no código que o @RodolfoVieira te indicou será mais facil explicar o que se passa do que andares sempre a perguntar, até porque convem perceber para poderes fazer tudo o que no futuro queiras:

#teste bruno.
#Nome da automação
  - alias: liga luz gateway
#estado inicial quando arrancas com o HA
    initial_state: true
#trigger aka o que despoleta esta automação
    trigger:
#plataforma, neste caso é state porque é o estado do sensor da porta da entrada que vai mudar de "off" para "on" (de fechado para aberto)
      platform: state
#o nome do sensor, entidade, device, etc que queres monitorizar para despoletar os eventos
      entity_id: COLOCA AQUI O ENTITY DO TEU SENSOR DE PORTA
#no caso da plataforma estado passa dum estado para o outro, cada entidade tem um estado diferente, no caso dos sensores de porta são on-off, mas se for o estado dum device tracker será home-away
      to: 'on'
#O "lapso" para o que pediste, neste caso o @RodolfoVieira indica que o estado tem de se manter por 2 minutos, não é o que queres (a porta aberta 2 minutos) 
	  for:
        minutes: 2
#Ok, temos o sensor no estado que pretendes, mas queres mais uma condição, só entre as 19h e as 07h30, pode ser desde anoitecer até amanhecer, pode ser só se a porta for aberta e o sensor de lux indicar um valor inferior a 10lux...o que quiseres
    condition:
      condition: time
      after: '19:00:00'
      before: '07:30:00'
#O resto deves ter percebido
#Então o que queremos fazer? uma acção, despoletar um evento, ligar algo, desligar algo, avisar alguem, mudar o estado duma variavel, etc
    action:
#qual é o serviço? light, notification, device_tracker, ha_restart, etc podes "automatizar" o que quiseres
#neste caso ligar led (a entidade é do tipo light e queres mudar o estado para on)
      - service: light.turn_on
        data_template:
#entity_id (em quem queres efetuar esta acção?)
          entity_id: COLOCA AQUI O ENTITY DO TEU GATEWAY
#estas duas são propriedades dos LED's, mas não existem em switch ou outras)
          brightness: 20
          color_name: blue

Relativamente ao que queres (ligar por 2 minutos) só tens duas formas de o fazer:

  • 2 automações, a primeira que te deram e outra para desligar sendo que neste caso o trigger será o estado da luz ter passado para on, e passado 2minutos a acção é turn_off

  • Outra uma automação que corre um script e esse sim tem duas linhas com isto:

  - delay:
          seconds: 10

Basicamente tens de perceber o que cada “cenário” representa em termos de decomposição de acções:
1 a porta abriu e o sensor passou para “aberto”
2 mas é entre as 19h e as 07h30?
3 ligar a luz
4 contar 2 minutos
5 mandar desligar a luz

Mas mesmo neste caso podemos aumentar a complexidade até aos 1000% (a porta ficou aberta? a porta foi fechada? A porta foi aberta nos últimos 2 minutos? a luz já estava acessa? é inverno (provavelmente queres a luz a partir das18h), etc etc)

Vai vendo exemplos, vai perguntando e tenta perceber como aceder aos logs e como interpretar.

BV à Comunidade Portuguesa do HA.

1 Curtiu

Boa tarde jpm, comecei agora nestas andanças e também pretendia entender um pouco da matéria mas estou a ver que não é fácil. então o que eu pretendo com esta automação é: na porta da rua tenho um sensor de porta e janela e o gateway numa tomada perto dessa mesma porta. O que gostava de automatizar era o led do gateway está apagado e quando eu abrisse a porta num determinado período (por exemplo 19h - 7 da manhã) o led acendesse por 2 mim para iluminar o caminho e depois ao fechar a porta o led se desligasse ao fim desse tempo automaticamente…
Não sei se me fiz entender…
Muito obrigado pela ajuda.

#teste bruno.
  - alias: liga luz gateway
    initial_state: true
    trigger:
      platform: state
      entity_id: COLOCA AQUI O ENTITY DO TEU SENSOR DE PORTA
      to: 'on'
    condition:
      condition: time
      after: '19:00:00'
      before: '07:30:00'
    action:
      - service: light.turn_on
        data_template:
          entity_id: COLOCA AQUI O ENTITY DO TEU GATEWAY
          brightness: 100
          color_name: blue


#teste bruno.
  - alias: desliga luz gateway
    initial_state: true
    trigger:
      platform: state
      entity_id: COLOCA AQUI O ENTITY DO TEU SENSOR DE PORTA
      to: 'off'
	  for:
        minutes: 2
    action:
      - service: light.turn_off
        data_template:
          entity_id: COLOCA AQUI O ENTITY DO TEU GATEWAY

Boas, agora obtenho este erro.

Configuração inválidaVERIFICAR A CONFIGURAÇÃO

Invalid config for [automation]: [for] is an invalid option for [automation]. Check: automation->for. (See /config/configuration.yaml, line 83). Please check the docs at https://home-assistant.io/components/automation/

na linha 83 tenho isto:

83: group: !include groups.yaml
84: automation: !include automations.yaml
85: script: !include scripts.yaml

obrigado

Cola aqui no https://hastebin.com/ tudo o que tens dentro do teu automations.yaml guarda e manda o link

https://hastebin.com/coponizebo.bash

a inha 24 desse link que é o “for” tem que estar por baixo do “to” tal como te mostrei na automação acima

#teste bruno.
  - alias: desliga luz gateway
    initial_state: true
    trigger:
      platform: state
      entity_id: COLOCA AQUI O ENTITY DO TEU SENSOR DE PORTA
      to: 'off'
	  for:
        minutes: 2
    action:
      - service: light.turn_off
        data_template:
          entity_id: COLOCA AQUI O ENTITY DO TEU GATEWAY

vou ter de instalar tudo de novo. apaguei todos os ficheiros e continua a dar erros…

Obrigado malta, a primeira de muitas automações está feita.
obrigado do fundo do coração.
Cumps

1 Curtiu

Para uma situação igual, existe forma de colocar a hora de sunset no “after” e uma hora fixa no “before” numa mesma automatação?

Isto basicamente é uma forma “simples” de programar o que muitos chamam de cenário por isso:

Respondendo directamente @azougado: Claro que sim:

    platform: sun
    event: sunset # por do sol 
    event: sunrise # nascer do sol
    offset: "-00:45:00" ## caso queiras definir 45 minutos antes ou qq outro desfazamento.

Pois mas isso eu sei, agora o que pretendo é utilizar duas condições - sun e time - na mesma automation, tipo o seguinte cenário que não me dá:

#teste bruno.
- alias: liga luz gateway
  initial_state: true
  trigger:
    platform: state
    entity_id: COLOCA AQUI O ENTITY DO TEU SENSOR DE PORTA
    to: 'on'
condition:
  condition: or
  conditions:
    - condition: sun
      after: sunset
    - condition: time
      before: '23:00:00'
action:
- service: light.turn_on
    data_template:
      entity_id: COLOCA AQUI O ENTITY DO TEU GATEWAY
      brightness: 100
      color_name: blue  

Log:
Invalid config for [automation]: extra keys not allowed @ data[‘condition’][0][‘conditions’][1][‘before’]. Got None
not a valid value for dictionary value @ data[‘condition’][0][‘conditions’][1][‘condition’]. Got None
required key not provided @ data[‘condition’][0][‘conditions’][1][‘entity_id’]. Got None. (See /home/homeassistant/.homeassistant/configuration.yaml, line 25). Please check the docs at https://home-assistant.io/components/automation/

Experimenta colocar o valor de before dentro de aspas ou de plicas.

Ok, resolveu a colocação de plicas. Obrigado mais uma vez.

2 Curtiram

Não sei se contigo é igual mas comigo tive de usar o horário com 1 hora de atraso. Pois o meu Hass.io está com uma hora de atraso.

Se o teu está com uma hora de atraso é porque não tens a time zone definida ou está mal definida.

A configuração que tenho é esta.

sensor:
  - platform: time_date
    display_options:
      - 'time'
      - 'time_utc'

Tanto uma como outra está em horário igual. Obrigado

Isso não tem nada a ver com a timezone…

A configuração da timezone encontra-se dentro do ficheiro configuration.yaml dentro da entrada homeassistant:. Algo assim:

homeassistant:
## NAME OF LOCATION
  name: Casa
## LOCATION COORDINATES
  latitude: !secret ha_latitude
  longitude: !secret ha_longitude
## ALTITUDE ABOVE SEA LEVEL (IN METERS)
  elevation: 150
## METRIC, IMPERIAL FOR IMPERIAL
  unit_system: metric
## C FOR CELCIUS, F FOR FAHRENHEIT
  temperature_unit: C
## TIME_ZONES
  time_zone: Europe/Lisbon

A hora do time e do time_utc são iguais porque estamos ainda no horário de verão, senão seriam diferentes.

obrigado por este post.

Ajudo-me numa automação com timer.

Também tinha a time zone mal configurada.


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


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