Hello,
Depuis qqes temps (une maj ?), j’ai des erreurs récurrentes dans mes logs :
2023-08-02 17:43:24.601 ERROR (MainThread) [homeassistant.helpers.event] Error while dispatching event for sensor.tesla_wall_connector_energy to <Job track state_changed event {'sensor.tesla_wall_connector_energy'} HassJobType.Callback <bound method TrackTemplateResultInfo._refresh of <TrackTemplateResultInfo {Template<template=({% set energieA = states('sensor.tesla_wall_connector_energy') %} {% if energieA == 'unavailable'%}unavailable{% else %}
{{ ((energieA | float) / 1000) | round(2, default=0) }}
{% endif %}) renders=3384>: <RenderInfo Template<template=({% set energieA = states('sensor.tesla_wall_connector_energy') %} {% if energieA == 'unavailable'%}unavailable{% else %}
{{ ((energieA | float) / 1000) | round(2, default=0) }}
{% endif %}) renders=3384> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.tesla_wall_connector_energy'}) rate_limit=None has_time=False exception=None is_static=False>}>>>
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 592, in state
numerical_value = float(value) # type:ignore[arg-type]
^^^^^^^^^^^^
ValueError: could not convert string to float: 'unavailable'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 274, in _async_dispatch_entity_id_event
hass.async_run_hass_job(job, event)
File "/usr/src/homeassistant/homeassistant/core.py", line 627, in async_run_hass_job
hassjob.target(*args)
File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 1156, in _refresh
self.hass.async_run_hass_job(self._job, event, updates)
File "/usr/src/homeassistant/homeassistant/core.py", line 627, in async_run_hass_job
hassjob.target(*args)
File "/usr/src/homeassistant/homeassistant/helpers/template_entity.py", line 362, in _handle_results
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 742, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 810, in _async_write_ha_state
state = self._stringify_state(available)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 748, in _stringify_state
if (state := self.state) is None:
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 594, in state
raise ValueError(
ValueError: Sensor sensor.total_energie_twc has device class 'energy', state class 'total_increasing' unit 'kWh' and suggested precision 'None' thus indicating it has a numeric value; however, it has the non-numeric value: 'unavailable' (<class 'str'>)
Ca se produit quand dans un de mes templates, j’ai une valeur ‹ undefined › ou ‹ unavailable › comme état d’un sensor.
Exemple de template en question:
- name: "Total énergie TWC"
unique_id: total_energie_TWC
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
state: >
{% set energieA = states('sensor.tesla_wall_connector_energy') %}
{% if energieA == 'unavailable'%}unavailable{% else %}
{{ ((energieA | float) / 1000) | round(2, default=0) }}
{% endif %}
Pourtant avant de faire un calcul, je check si c’est pas ‹ unavailable › et si c’est le cas je mets le state du sensor à ‹ unavailable ›.
Ca marchait bien avant. Si quelqu’un a une idée du pourquoi et de comment il faut faire pour éviter ces erreurs, je prends.
Attention, je ne veux pas mettre ma valeur à 0 si c’est indisponible sinon ca va me flinguer ma valeur d’énergie qui est en total_increasing
remarque: j’ai bien vu ce post là (Erreur template 2022.1 - #4 par Pulpy-Luke) mais ça répond pas à la question.
Merci d’avance.