Hello,
this code in templates.yaml is never triggered after 15 minutes…
I would like to run this code every 15 minutes, to take the highest value.
- trigger:
- platform: time_pattern
minutes: "/15"
sensor:
- name: electricity_delivery_power_daily_15m_max
state: >
{% if is_number(states('sensor.electricity_delivery_power_daily_15m_max')) %}
{% if ((now().hour == 0) and (now().minute < 15)) %}
{{ states('sensor.electricity_delivery_power_15m') | float }}
{% else %}
{% if ((states('sensor.electricity_delivery_power_daily_15m_max') | float) < (states('sensor.electricity_delivery_power_15m')) | float) %}
{{ states('sensor.electricity_delivery_power_15m') or 0 | float }}
{% else %}
{{ states('sensor.electricity_delivery_power_daily_15m_max') | float }}
{% endif %}
{% endif %}
{% else %}
0
{% endif %}
unit_of_measurement: 'kW'
- name: electricity_delivery_power_monthly_15m_max
state: >
{% if is_number(states('sensor.electricity_delivery_power_monthly_15m_max')) %}
{% if ((now().day == 1) and (now().hour == 0) and (now().minute < 15)) %}
{{ states('sensor.electricity_delivery_power_15m') | float }}
{% else %}
{% if ((states('sensor.electricity_delivery_power_monthly_15m_max') | float) < (states('sensor.electricity_delivery_power_15m')) | float) %}
{{ states('sensor.electricity_delivery_power_15m') or 0 | float }}
{% else %}
{{ states('sensor.electricity_delivery_power_monthly_15m_max') | float }}
{% endif %}
{% endif %}
{% else %}
0
{% endif %}
unit_of_measurement: 'kW'
Could you please spot the issue?
Thanks!
Can you share the configuration for the source sensor.electricity_delivery_power_15m
? It may also be the source of your suspected triggering issue.
If that isn’t the cause, consider simplifying you template. Using variables can make your templates more legible, efficient, and reliable.
- trigger:
- platform: time_pattern
minutes: "/15"
sensor:
- name: electricity_delivery_power_daily_15m_max
state: >
{% set current = this.state | float(0) %}
{% set source = states('sensor.electricity_delivery_power_15m') | float(0) %}
{% if ((now().hour == 0) and (now().minute < 15)) %}
{{ source }}
{% else %}
{{ [source, current] | max }}
{% endif %}
unit_of_measurement: 'kW'
- name: electricity_delivery_power_monthly_15m_max
state: >
{% set current = this.state | float(0) %}
{% set source = states('sensor.electricity_delivery_power_15m') | float(0) %}
{% if ((now().day == 1) and (now().hour == 0) and (now().minute < 15)) %}
{{ source }}
{% else %}
{{ [source, current] | max }}
{% endif %}
unit_of_measurement: 'kW'
Of course.
in configuration.yaml
utility_meter:
electricity_delivery_15m:
source: sensor.electricity_delivery
cron: "*/15 * * * *"
In templates.yaml
- sensor:
- name: electricity_delivery
unit_of_measurement: "kWh"
#state: "{{ ( states('sensor.esphome1pmeter_energy_delivered_tariff_1') | float ) + ( states('sensor.esphome1pmeter_energy_delivered_tariff_2') | float ) }}"
state: "{{ ( states('sensor.esphome1pmeter_power_consumed') | float ) }}"
- sensor:
- name: electricity_delivery_power_15m
unit_of_measurement: "kW"
state: "{{ (states('sensor.electricity_delivery_15m') | float(0)) * 4 | float }}"
Hello,
I figured out the problem 
The trigger platform has been replaced by state on sensor.electricity_delivery_power_15m…
Now working perfectly.
thanks!
BenVDL
(Ben90)
5
Hello Tommy,
Could you share your code that is working? I"m still stuck with the trigger platform.
- sensor:
- name: electricity_delivery_power_15m
unit_of_measurement: "kW"
state: "{{ (states('sensor.electricity_delivery_15m') | float(0)) * 4 | float }}"
- trigger:
- platform: state
entity_id: sensor.electricity_delivery_power_15m
sensor:
- name: electricity_delivery_power_daily_15m_max
state: >
{% if is_number(states('sensor.electricity_delivery_power_daily_15m_max')) %}
{% if ((now().hour == 0) and (now().minute < 15)) %}
{{ states('sensor.electricity_delivery_power_15m') | float }}
{% else %}
{% if ((states('sensor.electricity_delivery_power_daily_15m_max') | float) < (states('sensor.electricity_delivery_power_15m')) | float) %}
{{ states('sensor.electricity_delivery_power_15m') or 0 | float }}
{% else %}
{{ states('sensor.electricity_delivery_power_daily_15m_max') | float }}
{% endif %}
{% endif %}
{% else %}
0
{% endif %}
unit_of_measurement: 'kW'
- name: electricity_delivery_power_monthly_15m_max
state: >
{% if is_number(states('sensor.electricity_delivery_power_monthly_15m_max')) %}
{% if ((now().day == 1) and (now().hour == 0) and (now().minute < 15)) %}
{{ states('sensor.electricity_delivery_power_15m') | float }}
{% else %}
{% if ((states('sensor.electricity_delivery_power_monthly_15m_max') | float) < (states('sensor.electricity_delivery_power_15m')) | float) %}
{{ states('sensor.electricity_delivery_power_15m') or 0 | float }}
{% else %}
{{ states('sensor.electricity_delivery_power_monthly_15m_max') | float }}
{% endif %}
{% endif %}
{% else %}
0
{% endif %}
unit_of_measurement: 'kW'