rafalolb
(Rafal)
February 20, 2023, 8:04pm
1
Hello,
My home assistant is connected to an external community sensor, but the sensor is sometimes offline (unavailable). I want to create my template sensor, who save last state of external sensor and show the last state if the external sensor is unavailable. If the external sensor works I want to show value from it.
I build my first template in my configuration.yaml:
template:
- sensor:
- unique_id: sensor_pm10_LastState
name: >
{% if "unavailable" != states("sensor.sensor_pm10") | string %}
{{ "Wrocław PM 10" }}
{% else %}
{{ "Wrocław PM 10 (offline)" }}
{% endif %}
unit_of_measurement: "μg/m³"
icon: "mdi:molecule"
state: >
{% set pm10 = states("sensor.sensor_pm10") | string %}
{% if pm10 != 'unavailable' %}
{% set pm10_last_state = pm10 | float %}
{{ pm10 | float }}
{% else %}
{{ pm10_last_state | float }}
{% endif %}
What am I doing wrong? What can I do better?
Please help.
Regards
Rafal
123
(Taras)
February 20, 2023, 8:32pm
2
I suggest you use a Trigger-based Template Sensor because its value is preserved after a restart.
template:
- trigger:
- platform: state
entity_id: sensor.sensor_pm10
sensor:
- unique_id: sensor_pm10_LastState
name: "Wrocław PM 10{{ ' (offline)' if trigger.to_state.state == 'unavailable' else '' }}"
unit_of_measurement: "μg/m³"
icon: "mdi:molecule"
state: >
{% set pm10 = states('sensor.sensor_pm10') %}
{{ pm10 if trigger.to_state.state != 'unavailable' else this.state }}
Its initial value will be unknown
until it is triggered (by sensor.sensor_pm10).
2 Likes
rafalolb
(Rafal)
February 20, 2023, 8:48pm
3
Tnx for reply, but I get only unknown value from your template sensor
123
(Taras)
February 20, 2023, 8:54pm
4
Has the value of sensor.sensor_pm10
changed yet?
The Trigger-based Template Sensor will initially report unknown
until it is triggered by a change in the value of sensor.sensor_pm10
.
rafalolb
(Rafal)
February 20, 2023, 9:04pm
5
Yes
As the value changed your template sensor started working great
123
(Taras)
February 20, 2023, 9:08pm
6
That’s good.
For the final test, wait until sensor.sensor_pm10
is unavailable
then check what the Trigger-based Template Sensor reports.
I realize it may take some time before this happens so just reply whenever it occurs.
123
(Taras)
February 28, 2023, 3:10pm
8
You’re welcome!
Please consider marking my post above with the Solution tag. It will automatically place a check-mark next to the topic’s title which signals to other users that this topic has been resolved. This helps users find answers to similar questions.
For more information about the Solution tag, refer to guideline 21 in the FAQ .
1 Like