Aohzan/ecodevices

Lost sensor.meter_1_total with 5.3.0 version

Closed this issue · 18 comments

DJJL commented

Hi,
with the last version 5.3.0, I lost entity sensor.meter_1_total, for water
why ? it's bug of new version ?
Sensor.meter_1 and sensor.meter_1_daily are ok
JL

A solution ? : I have just change de name entity "sensor.meter_1_total" to "sensor.meter_2_total" and now I have the value (64,51m3), why it's ok now ? I don't know

Now it's ok for 3 entities :

  • sensor.meter_1
  • sensor.meter_1_daily
  • sensor.meter_2_total

Hello,
I don't have the issue on my side, can you paste debug logs please

DJJL commented

I don't find the debug log, is it /homeassistant/home-assistant.log ?

Now for entities CGE :
image

DJJL commented

Oui, fait après la mise à jour, mais
no change, sensor.meter_1_total is lost (indisponible) since upgrade

c'est pour avoir les logs que j'ai mis ça

DJJL commented

ok, mais où est il enregistré ?
Là ?
image

quand on désactive les l'enregistrement il les télécharge automatiquement

DJJL commented

exact, merci pour l'info,
Ce n'est pas un log local mais un log général qui est téléchargé lors de la désactivation, 1 ligne concerne Ecodevice sur les 26403...
image

même en faisant un recharger de l'intégration entre les deux ?

DJJL commented

fait à l'instant, sur les 63050, juste, il y a déjà plus de lignes pour l'ecodevice,

2024-10-03 15:42:37.340 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration ecodevices which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

pas de problème avec cette info ci dessus je suppose ;-) ...

2024-10-03 15:42:49.692 DEBUG (MainThread) [custom_components.ecodevices] Finished fetching ecodevices data in 0.658 seconds (success: True)
2024-10-03 15:43:01.414 DEBUG (MainThread) [custom_components.ecodevices.sensor] Add the meter 1 sensor entities
2024-10-03 15:44:03.428 DEBUG (MainThread) [custom_components.ecodevices] Finished fetching ecodevices data in 1.027 seconds (success: True)
...
Là j'ai voulu remettre l'entité d'origine mais évidemment pas possible : 

2024-10-03 16:08:09.295 ERROR (MainThread) [homeassistant.components.sensor] Error adding entity sensor.meter_1_total for domain sensor with platform ecodevices
 File "/config/custom_components/ecodevices/sensor.py", line 566, in native_value
   if self._last_state is None or value >= float(self._last_state):
                                           ^^^^^^^^^^^^^^^^^^^^^^^

2024-10-03 16:08:40.526 DEBUG (MainThread) [custom_components.ecodevices] Finished fetching ecodevices data in 0.838 seconds (success: True)

 File "/config/custom_components/ecodevices/sensor.py", line 566, in native_value
   if self._last_state is None or value >= float(self._last_state):
                                           ^^^^^^^^^^^^^^^^^^^^^^^

ca fonctionne donc en ayant précédemment changé le nom de l'entité en "sensor.meter_2_total"

Merci Aohzan et sorry pour l'absence de log lors de la mise à jour qui aurait permit de voir l'anomalie.

tu peux copier coller le texte des logs plutôt que de prendre des captures 🙏
mais du coup c'est bien l'erreur que tu as quand tu remets l'entité qui m'intéresse

DJJL commented

tu as mille fois raison ! "copy/paste" est plus clair, c'est corrigé (j'étais ailleurs.... ;-) )
Je viens de retester le retour à l'entité d'origine, sensor.meter_1_total, impossible car évidemment HA signale que cette ID existe déjà (mais où ?...)
image

tu peux coller les logs autour de cette ligne :

 File "/config/custom_components/ecodevices/sensor.py", line 566, in native_value
   if self._last_state is None or value >= float(self._last_state):
                                           ^^^^^^^^^^^^^^^^^^^^^^^
DJJL commented

voilà, en prenant large autour de cette partie :

2024-10-03 16:08:09.038 WARNING (MainThread) [homeassistant.components.min_max.sensor] Units of measurement do not match for entity sensor.conso_instantanee_brut
2024-10-03 16:08:09.295 ERROR (MainThread) [homeassistant.components.sensor] Error adding entity sensor.meter_1_total for domain sensor with platform ecodevices
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 595, in _async_add_entities
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 909, in _async_add_entity
    await entity.add_to_platform_finish()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1366, in add_to_platform_finish
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1005, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1130, in _async_write_ha_state
    self.__async_calculate_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1067, in __async_calculate_state
    state = self._stringify_state(available)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1011, in _stringify_state
    if (state := self.state) is None:
                 ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 542, in state
    value = self.native_value
            ^^^^^^^^^^^^^^^^^
  File "/config/custom_components/ecodevices/sensor.py", line 566, in native_value
    if self._last_state is None or value >= float(self._last_state):
                                            ^^^^^^^^^^^^^^^^^^^^^^^
ValueError: could not convert string to float: 'unavailable'
2024-10-03 16:08:09.549 ERROR (MainThread) [homeassistant.helpers.event] Error while dispatching event for sensor.smartmeter_production_delectricite to <Job track state_changed event {'sensor.sma_sma_o_e_energy_tot_du_jour_446', 'sensor.smartmeter_production_delectricite'} HassJobType.Callback <bound method TrackTemplateResultInfo._refresh of <TrackTemplateResultInfo {Template<template=(automation:
  trigger:
    platform: state
    entity_id:
      - sensor.sma_sma_o_e_energy_tot_du_jour_446
      - sensor.smartmeter_production_delectricite
  action:
    - service: notify.notify
      data_template:
        message: >
          {% set result = states('sensor.sma_sma_o_e_energy_tot_du_jour_446') | float - states('sensor.smartmeter_production_delectricite') | float %}
          Le résultat de la soustraction est {{ result }}
    - condition: template
      value_template: "True") renders=456>: <RenderInfo Template<template=(automation:
  trigger:
    platform: state
    entity_id:
      - sensor.sma_sma_o_e_energy_tot_du_jour_446
      - sensor.smartmeter_production_delectricite
  action:
    - service: notify.notify
      data_template:
        message: >
          {% set result = states('sensor.sma_sma_o_e_energy_tot_du_jour_446') | float - states('sensor.smartmeter_production_delectricite') | float %}
          Le résultat de la soustraction est {{ result }}
    - condition: template
      value_template: "True") renders=456> all_states=False all_states_lifecycle=False domains=frozenset() domains_lifecycle=frozenset() entities=frozenset({'sensor.sma_sma_o_e_energy_tot_du_jour_446', 'sensor.smartmeter_production_delectricite'}) rate_limit=None has_time=False exception=None is_static=False>}>>>

tu peux essayer la 5.3.1

DJJL commented

bingo, j'ai pu remettre le "sensor.meter_1_total" sans erreur de la part de HA,
je regarderai si tout est ok tantôt car je dois partir là
Merci

DJJL commented

Avec la 5.3.1, tout semblait ok pour moi 👍

mais, j'ai peut être parlé trop vite...
Il est 1h du mat et dans "Energie", la conso d'eau est négative , ex : -75L entre 0 et 1h alors que je n'ai consommé que 1L !
image
image

et l'entité est bien "sensor.meter_1_daily"
image

Preuve de la vraie consommation :
image

c'est comme si la conso du jour précédent était basculée en négatif dans le tableau "Energie" au lieu d'être remise à "0" à minuit....

Etrange...

Conso du jour c'est normal, il faut s'appuyer sur le total pour le dashboard energy