Duvida configuração - desabilitar trigger


(César Lopes) #1

Boa noite,
O que deverei acrescentar para que os seguintes triggers apenas estejam “enable” por exemplo entre as 20:00 e as 07:00h ?
vi automations.yaml
# Example automations.yaml entry

- alias: "Quarto2 Aquecimento desligar"
  trigger:
   platform: numeric_state
   entity_id: sensor.quarto_2_temp
   above: 18.0
  action:
   service: switch.turn_off
   entity_id: switch.Quarto2_aquecimento

- alias: "Quarto2 Aquecimento ligar"
  trigger:
   platform: numeric_state
   entity_id: sensor.quarto_2_temp
   below: 16.0
  action:
   service: switch.turn_on
   entity_id: switch.Quarto2_aquecimento

(Nuno Neves) #2

Faltam conditions…


(César Lopes) #3

Olá

Acrescentei o seguinte:

- alias: "Quarto2 Aquecimento desligar"
  trigger:
   platform: numeric_state
   entity_id: sensor.quarto_2_temp
   above: 19.0
  action:
   service: switch.turn_off
   entity_id: switch.Quarto2_aquecimento  

- alias: "Quarto2 Aquecimento ligar"
  trigger:
   platform: numeric_state
   entity_id: sensor.quarto_2_temp
   below: 17.0
  action:
   service: switch.turn_on
   entity_id: switch.Quarto2_aquecimento  
  condition:      
    - condition: time
      after: '20:30:00'
      before: '07:30:00'

Duvidas:

  1. o trigger nem sempre ativa, por exemplo a esta hora 21:0 estão 15º no quarto e o trigger não activou, nem tenho nada nos logs.
  2. Que condition utilizo para garantir que o interruptor é desligado após as 7:30?

Obrigado


(Jorge Assunção) #4
  1. Não tens nada nos logs porque a automação não correu pois a estrutura da automação não é essa. Deve ser usada a estrutura trigger-condition-action.
  1. Para garantires que o interruptor é desligado deves utilizar com trigger um time e passar o valor da temperatura para dentro das conditions. Algo assim (foi feito de cabeça, não testei):
- alias: "Quarto2 Aquecimento ligar"
  trigger:
    - platform: time
      minutes: '/2'
      seconds: 30
  condition:
    condition: and
      conditions:
        - condition: time
          after: '20:30:00'
          before: '07:30:00'
        - condition: numeric_state
          entity_id: sensor.quarto_2_temp
          below: 17.0
  action:
   service: switch.turn_on
   entity_id: switch.Quarto2_aquecimento  

(César Lopes) #5

Olá @j_assuncao,
Antes de mais agradeço a teu resposta, pelo que indicas será algo deste género, certo?

- alias: "Quarto2 Aquecimento desligar"
  trigger:
    - platform: time
      minutes: '/2'
      seconds: 30
  condition:
    condition: or
    conditions:
      - condition: time
        after: '07:31:00'
        before: '20:31:00'
      - condition: numeric_state
        entity_id: sensor.quarto_2_temp
        above: 19.0
  action:
   service: switch.turn_off
   entity_id: switch.Quarto2_aquecimento
   
- alias: "Quarto2 Aquecimento ligar"
  trigger:
    - platform: time
      minutes: '/2'
      seconds: 30
  condition:
    condition: and
    conditions:
      - condition: time
        after: '20:30:00'
        before: '07:30:00'
      - condition: numeric_state
        entity_id: sensor.quarto_2_temp
        below: 17.0
  action:
   service: switch.turn_on
   entity_id: switch.Quarto2_aquecimento

(Jorge Assunção) #6

Porque é que na primeira automação tens o OR? Assim o que estás a dizer é que a acção é realizada se for entre as 7H31 e as 20h31 OU se a temperatura for superior a 19º. Não era suposto ser entre as 7H31 e as 20h31 E se a temperatura for superior a 19º??


(César Lopes) #7

Eu pretendo desligar o aquecimento se a temperatura for superior a 19º ou se estivermos entra as 07:31h e as 20:31, tem de ser com o OR, certo?


(Jorge Assunção) #8

Nesse caso sim, está certo.


(César Lopes) #9

Obg @j_assuncao.
Vou rever as outras configurações.


(Nuno Neves) #10

Sei que não é resposta à tua pergunta, mas porque é que não usas um generic thermostat? Ficavas muito mais bem servido… :wink:


(César Lopes) #11

Olá @Maddoctor, podes dar-me um exemplo do que falas sff?


(Jorge Assunção) #12

(César Lopes) #13

Parece ser bem mais adequado, obg pela pela dicas @j_assuncao @Maddoctor


(César Lopes) #14
climate:
  - platform: generic_thermostat
    name: Quarto2_Climate
    heater: switch.Quarto2_aquecimento
    target_sensor: sensor.quarto_2_temperature
    min_temp: 17
    max_temp: 19
    ac_mode: false
    target_temp: 18
    cold_tolerance: 0.3
    hot_tolerance: 0
    min_cycle_duration:
      seconds: 5
    keep_alive:
      minutes: 3
    initial_operation_mode: "auto"
    precision: 0.1
    condition:
      condition: and
      conditions:
        - condition: time
          after: '20:30:00'
          before: '07:30:00

As conditions irão funcionar aqui? Não dá erro no HA :disappointed_relieved:


(Nuno Neves) #15

Não… Isto não é uma automação nem um script…
Precisas de fazer automações para activar ou desactivar o termostato conforme as horas…