Hi I am trying to create a sensor to calculate my daily ev efficiency. I have daily numbers for kwh used and miles so I just need to divide the 2 daily.
However, it doesn’t guard against the possibility that the divisor can be zero. When it attempts to divide a number by zero, the result is an error message:
Try this version. It reports 0 if the daily energy use is 0 otherwise it performs the division.
{% set mileage = states('sensor.test_tesla_daily_mileage') | float(0) %}
{% set energy = states('sensor.tesla_model_3_daily_energy_used') | float(0) %}
{{ 0 if energy == 0 else (mileage / energy) | round(2) }}
In that case, you will need to create a Trigger-based Template Sensor (not a Template Sensor helper). Currently, trigger-based Template entities can only be defined via YAML, not the UI.
Example:
template:
- triggers:
- trigger: time
at: '23:59:00'
sensor:
- name: Whatever you want to call it
state: >
{% set mileage = states('sensor.test_tesla_daily_mileage') | float(0) %}
{% set energy = states('sensor.tesla_model_3_daily_energy_used') | float(0) %}
{{ 0 if energy == 0 else (mileage / energy) | round(2) }}
unit_of_measurement: mi/kWh
state_class: measurement