Today I updated to 2025.12 and i got this message:
this message
The legacy platform: template syntax for sensor is being removed. Please migrate power_import_oben to the modern template syntax.
Step 1 - Remove legacy configuration
Remove the power_import_oben template definition from the configuration.yaml sensor: section.
Note: If you are using sensor: !include <filename>.yaml in configuration.yaml, remove the sensor definition from the included <filename>.yaml.
Step 2 - Add the modern configuration
Add new template definition inside configuration.yaml:
template:
- sensor:
- unit_of_measurement: W
default_entity_id: sensor.power_import_oben
availability: '{{ [ states(''sensor.shellypro3em_oben_phase_a_active_power''),
states(''sensor.shellypro3em_oben_phase_b_active_power''), states(''sensor.shellypro3em_oben_phase_c_active_power'')
] | map(''is_number'') | min }}'
name: Power Import oben
state: "{% if (states('sensor.shellypro3em_oben_phase_a_active_power')|float +
states('sensor.shellypro3em_oben_phase_b_active_power')|float + states('sensor.shellypro3em_oben_phase_c_active_power')|float)
> 0 %}\n {{ states('sensor.shellypro3em_oben_phase_a_active_power')|float +
states('sensor.shellypro3em_oben_phase_b_active_power')|float + states('sensor.shellypro3em_oben_phase_c_active_power')|float
}}\n{% else %}\n {{ 0 }}\n{% endif %}"
Note: If there are any existing template: sections in your configuration, make sure to omit the template: line from the yaml above. There can only be 1 template: section in configuration.yaml. Also, ensure the indentation is aligned with the existing entities within the template: section.
Step 3 - Restart Home Assistant or reload template entities
Okay, I made the recommend changes and i get this error in the developer tools now:
Configuration warnings
Invalid config for ‘sensor’ at packages/saldieren.yaml, line 3: required key ‘platform’ not provided
Invalid config for ‘sensor’ at packages/saldieren.yaml, line 17: required key ‘platform’ not provided
I took the script from here:
Why:
e.g. if i get 3kw consumption and 3kw gain from solar power, don’t calculate this to zero.
from https://community.shelly.cloud/topic/3027-verständnisfrage-zum-saldieren/
This is my script:
sensor:
- platform: template
sensors:
# Template sensor for values of power import (active_power > 0)
power_import_oben:
friendly_name: "Power Import oben"
unit_of_measurement: 'W'
value_template: >-
{% if (states('sensor.shellypro3em_oben_phase_a_active_power')|float + states('sensor.shellypro3em_oben_phase_b_active_power')|float + states('sensor.shellypro3em_oben_phase_c_active_power')|float) > 0 %}
{{ states('sensor.shellypro3em_oben_phase_a_active_power')|float + states('sensor.shellypro3em_oben_phase_b_active_power')|float + states('sensor.shellypro3em_oben_phase_c_active_power')|float }}
{% else %}
{{ 0 }}
{% endif %}
availability_template: "{{
[ states('sensor.shellypro3em_oben_phase_a_active_power'),
states('sensor.shellypro3em_oben_phase_b_active_power'),
states('sensor.shellypro3em_oben_phase_c_active_power')
] | map('is_number') | min
}}"
# Template sensor for values of power export (active_power < 0)
power_export_oben:
friendly_name: "Power Export oben"
unit_of_measurement: 'W'
value_template: >-
{% if (states('sensor.shellypro3em_oben_phase_a_active_power')|float + states('sensor.shellypro3em_oben_phase_b_active_power')|float + states('sensor.shellypro3em_oben_phase_c_active_power')|float) < 0 %}
{{ (states('sensor.shellypro3em_oben_phase_a_active_power')|float + states('sensor.shellypro3em_oben_phase_b_active_power')|float + states('sensor.shellypro3em_oben_phase_c_active_power')|float) * -1 }}
{% else %}
{{ 0 }}
{% endif %}
availability_template: "{{
[ states('sensor.shellypro3em_oben_phase_a_active_power'),
states('sensor.shellypro3em_oben_phase_b_active_power'),
states('sensor.shellypro3em_oben_phase_c_active_power')
] | map('is_number') | min
}}"
# Template sensor for values of power consumption
power_consumption_oben:
friendly_name: "Power Consumption oben"
unit_of_measurement: 'W'
value_template: >-
{% if (states('sensor.power_export_oben')|float(0)) > 0 and (states('sensor.power_solargen_oben')|float(0) - states('sensor.power_export_oben')|float(0)) < 0 %}
{{ 0 }}
{% elif (states('sensor.power_export_oben')|float(0)) > 0 and (states('sensor.power_solargen_oben')|float(0) - states('sensor.power_export_oben')|float(0)) > 0 %}
{{ (states('sensor.power_solargen_oben')|float(0)) - states('sensor.power_export_oben')|float(0) }}
{% else %}
{{ states('sensor.power_import_oben')|float(0) + states('sensor.power_solargen_oben')|float(0) }}
{% endif %}
# Template sensor for values of energy Solar generation (solar_power > 0)
# YOU NEED TO UPDATE THE NAMES BELOW!!!
power_solargen_oben:
friendly_name: "Power Solar Generation oben"
unit_of_measurement: 'W'
value_template: >-
{% if (states('sensor.wechselrichter_1_power')|float(0) + states('sensor.wechselrichter_2_power')|float(0)) > 0 %}
{{ (states('sensor.wechselrichter_1_power')|float(0) + states('sensor.wechselrichter_2_power')|float(0)) }}
{% else %}
{{ 0 }}
{% endif %}
# Sensor for Riemann sum of energy import (W -> Wh)
- platform: integration
source: sensor.power_import_oben
name: energy_import_oben_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy export (W -> Wh)
- platform: integration
source: sensor.power_export_oben
name: energy_export_oben_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy consumption (W -> Wh)
- platform: integration
source: sensor.power_consumption_oben
name: energy_consumption_oben_sum
unit_prefix: k
round: 2
method: left
utility_meter:
energy_import_oben_daily:
source: sensor.energy_import_oben_sum
name: Energy Import oben Daily
cycle: daily
energy_import_oben_monthly:
source: sensor.energy_import_oben_sum
name: Energy Import oben Monthly
cycle: monthly
energy_export_oben_daily:
source: sensor.energy_export_oben_sum
name: Energy Export oben Daily
cycle: daily
energy_export_oben_monthly:
source: sensor.energy_export_oben_sum
name: Energy Export oben Monthly
cycle: monthly
energy_consumption_oben_daily:
source: sensor.energy_consumption_oben_sum
name: Energy Consumption oben Daily
cycle: daily
energy_consumption_oben_monthly:
source: sensor.energy_consumption_oben_sum
name: Energy Consumption oben Monthly
cycle: monthly
This is how i "converted it:
sensor:
# Template sensor for values of power import (active_power > 0)
- sensor:
- unit_of_measurement: W
default_entity_id: sensor.power_import_oben
availability: '{{ [ states(''sensor.shellypro3em_oben_phase_a_active_power''),
states(''sensor.shellypro3em_oben_phase_b_active_power''), states(''sensor.shellypro3em_oben_phase_c_active_power'')
] | map(''is_number'') | min }}'
name: Power Import oben
state: "{% if (states('sensor.shellypro3em_oben_phase_a_active_power')|float +
states('sensor.shellypro3em_oben_phase_b_active_power')|float + states('sensor.shellypro3em_oben_phase_c_active_power')|float)
> 0 %}\n {{ states('sensor.shellypro3em_oben_phase_a_active_power')|float +
states('sensor.shellypro3em_oben_phase_b_active_power')|float + states('sensor.shellypro3em_oben_phase_c_active_power')|float
}}\n{% else %}\n {{ 0 }}\n{% endif %}"
# Template sensor for values of power export (active_power < 0)
- sensor:
- unit_of_measurement: W
default_entity_id: sensor.power_export_oben
availability: '{{ [ states(''sensor.shellypro3em_oben_phase_a_active_power''),
states(''sensor.shellypro3em_oben_phase_b_active_power''), states(''sensor.shellypro3em_oben_phase_c_active_power'')
] | map(''is_number'') | min }}'
name: Power Export oben
state: "{% if (states('sensor.shellypro3em_oben_phase_a_active_power')|float +
states('sensor.shellypro3em_oben_phase_b_active_power')|float + states('sensor.shellypro3em_oben_phase_c_active_power')|float)
< 0 %}\n {{ (states('sensor.shellypro3em_oben_phase_a_active_power')|float
+ states('sensor.shellypro3em_oben_phase_b_active_power')|float + states('sensor.shellypro3em_oben_phase_c_active_power')|float)
* -1 }}\n{% else %}\n {{ 0 }}\n{% endif %}"
# Template sensor for values of power consumption
power_consumption_oben:
friendly_name: "Power Consumption oben"
unit_of_measurement: 'W'
value_template: >-
{% if (states('sensor.power_export_oben')|float(0)) > 0 and (states('sensor.power_solargen_oben')|float(0) - states('sensor.power_export_oben')|float(0)) < 0 %}
{{ 0 }}
{% elif (states('sensor.power_export_oben')|float(0)) > 0 and (states('sensor.power_solargen_oben')|float(0) - states('sensor.power_export_oben')|float(0)) > 0 %}
{{ (states('sensor.power_solargen_oben')|float(0)) - states('sensor.power_export_oben')|float(0) }}
{% else %}
{{ states('sensor.power_import_oben')|float(0) + states('sensor.power_solargen_oben')|float(0) }}
{% endif %}
# Template sensor for values of energy Solar generation (solar_power > 0)
# YOU NEED TO UPDATE THE NAMES BELOW!!!
power_solargen_oben:
friendly_name: "Power Solar Generation oben"
unit_of_measurement: 'W'
value_template: >-
{% if (states('sensor.wechselrichter_1_power')|float(0) + states('sensor.wechselrichter_2_power')|float(0)) > 0 %}
{{ (states('sensor.wechselrichter_1_power')|float(0) + states('sensor.wechselrichter_2_power')|float(0)) }}
{% else %}
{{ 0 }}
{% endif %}
# Sensor for Riemann sum of energy import (W -> Wh)
- platform: integration
source: sensor.power_import_oben
name: energy_import_oben_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy export (W -> Wh)
- platform: integration
source: sensor.power_export_oben
name: energy_export_oben_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy consumption (W -> Wh)
- platform: integration
source: sensor.power_consumption_oben
name: energy_consumption_oben_sum
unit_prefix: k
round: 2
method: left
utility_meter:
energy_import_oben_daily:
source: sensor.energy_import_oben_sum
name: Energy Import oben Daily
cycle: daily
energy_import_oben_monthly:
source: sensor.energy_import_oben_sum
name: Energy Import oben Monthly
cycle: monthly
energy_export_oben_daily:
source: sensor.energy_export_oben_sum
name: Energy Export oben Daily
cycle: daily
energy_export_oben_monthly:
source: sensor.energy_export_oben_sum
name: Energy Export oben Monthly
cycle: monthly
energy_consumption_oben_daily:
source: sensor.energy_consumption_oben_sum
name: Energy Consumption oben Daily
cycle: daily
energy_consumption_oben_monthly:
source: sensor.energy_consumption_oben_sum
name: Energy Consumption oben Monthly
cycle: monthly
It’s imported into the configuration.yaml via this last lines:
homeassistant:
packages: !include_dir_named packages
Thanks.

