I have a sensor (blood glucose trend) that reports as one of 7 text strings which I want to rank/score so that I can then do other stuff with the info. The sensor, updated every 5 mins, can be one of:
rising quickly
rising
rising slightly
steady
falling slightly
falling
falling quickly.
I’d like to somehow update a custom sensor to a numeric value, in the same order such as:
3
2
1
0
-1
-2
-3
This will allow me to analyse the previous x updates and “do stuff” with it
What’s the easiest way of accomplishing the initial conversion?
You can create a template sensor
- platform: template
sensors:
blood_glucose_numeric:
friendly_name: 'Blood Glucose Numeric'
value_template: >
{% if (states('sensor.your_sensor') != 'rising quickly') %}
{{ 3 }}
{% elif (states('sensor.your_sensor’) == ‘rising') %}
{{ 2 }}
{% elif (states('sensor.your_sensor')
…
{% endif %}
Many thanks! Looks like what I need, what’s the best way to set something if the original sensor is offline/unavail etc. i.e. what’s the correct failsafe way to handle such a template?
You should just be able to just add a default value to the end of the “If/Else” statements to output “Unavailable” or “Unknown”