Calculo da função average em períodos de 15 minutos com fim forçado aos 0, 15, 30 e 45min

Sou novato no HA e tenho só feito alguns testes e muitas leituras para me inteirar das suas capacidades.
Num calculo com a função average deparei-me com o problema de não conseguir fixar o periodo da amostra ao minuto 0, 15, 30 e 45min como pretendido.

yaml

sensor:
  - platform: average
    name: Temperatura Media 15min
    entities:
      - sensor.real_house_temperature
    precision: 1
    end: '{{ now() }}'
    duration:
      minutes: 15
    scan_interval: 900

Desta forma consigo a média aos 15 minutos mas não consigo fixar o período de amostragem.

A minha intenção seria fazer uma condição if para devolver os quartos de hora e utilizar esse momento para entrar no end: da função average conforme se indica.

end: '{{ now().replace(minute= states('quarto_de_hora') | int ).replace(second=0) }}'

Isto é possível?
Como posso dar a volta a isto?
Obrigados

Solução “Brut force”

YAML

input_number:
  quarto_de_hora:
    name: Quarto de Hora
    initial: 0
    min: 0
    max: 45

No automations.yaml

- id: '1659979764050'
  alias: Quarto de Hora (minuto 0)
  description: ''
  trigger:
  - platform: time_pattern
    minutes: '0'
  condition: []
  action:
  - service: input_number.set_value
    data:
      value: 0
    target:
      entity_id: input_number.quarto_de_hora
  mode: single
- id: '1659545014164'
  alias: Quarto de Hora (minuto 15)
  description: ''
  trigger:
  - platform: time_pattern
    minutes: '15'
  condition: []
  action:
  - service: input_number.set_value
    data:
      value: 15
    target:
      entity_id: input_number.quarto_de_hora
  mode: single  
- id: '1659979811802'
  alias: Quarto de Hora (minuto 30)
  description: ''
  trigger:
  - platform: time_pattern
    minutes: '30'
  condition: []
  action:
  - service: input_number.set_value
    data:
      value: 30
    target:
      entity_id: input_number.quarto_de_hora
  mode: single
- id: '1659979863146'
  alias: Quarto de Hora (minuto 45)
  description: ''
  trigger:
  - platform: time_pattern
    minutes: '45'
  condition: []
  action:
  - service: input_number.set_value
    data:
      value: 45
    target:
      entity_id: input_number.quarto_de_hora
  mode: single

YAML

###### Calculo do consumo médio aos 15min ######
  - platform: average
    name: Casa Consumo Medio average 15min
    entities:
      - sensor.real_house_consuption
    precision: 1
#    end: '{{ now() }}'
    end: '{{ now().replace(minute= states("input_number.quarto_de_hora") | int ).replace(second=0) }}'
    duration:
      minutes: 15

Se alguém tiver uma solução melhor agradeço.
Este método tem uma falha no momento de restart fará um calculo a mais o que não deveria.


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


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