Aohzan / ecodevices

Home Assistant custom component for GCE Eco-Devices
Apache License 2.0
14 stars 4 forks source link

Jour Blanc HP/HC Total inconnu #48

Closed lboue closed 6 months ago

lboue commented 6 months ago

Bonjour,

Je rencontre un souci avec les compteurs Jour Blanc HP/HC Total. Je suis en option tarifaire Tempo. Cette intégration retourne des compteurs un status inconnu via l'intégration (version 5.0.0):

image

Pourtant lorsque je vérifie le contenu du fichier XML, j'ai bien un compteur à zéro et pas une valeure nulle:

<T1_BBRHCJW>0</T1_BBRHCJW>
<T1_BBRHPJW>0</T1_BBRHPJW>

Réponse XML

<response>
<!--  GCE ELectronics - XML - XDEVICES - ECO-DEVICES - Copyright 2013  -->
<!--  APPUYEZ SUR LA TOUCHE F5 DE VOTRE CLAVIER POUR ACTUALISER  -->
<!--   TELEINFO 1   -->
<T1_ADCO>*************</T1_ADCO>
<T1_OPTARIF>BBR(</T1_OPTARIF>
<T1_ISOUSC>45</T1_ISOUSC>
<T1_BASE>0</T1_BASE>
<T1_HCHC>0</T1_HCHC>
<T1_HCHP>0</T1_HCHP>
<T1_EJPHN>0</T1_EJPHN>
<T1_EJPHPM>0</T1_EJPHPM>
<T1_BBRHCJB>10906375</T1_BBRHCJB>
<T1_BBRHPJB>17257091</T1_BBRHPJB>
<T1_BBRHCJW>0</T1_BBRHCJW>
<T1_BBRHPJW>0</T1_BBRHPJW>
<T1_BBRHCJR>9747</T1_BBRHCJR>
<T1_BBRHPJR>7499</T1_BBRHPJR>
<T1_PEJP>0</T1_PEJP>
<T1_PTEC>HPJB</T1_PTEC>
<T1_DEMAIN>----</T1_DEMAIN>
<T1_IINST>2</T1_IINST>
<T1_IINST1>2</T1_IINST1>
<T1_IINST2>0</T1_IINST2>
<T1_IINST3>0</T1_IINST3>
<T1_ADPS>0</T1_ADPS>
<T1_IMAX>90</T1_IMAX>
<T1_IMAX1>90</T1_IMAX1>
<T1_IMAX2>0</T1_IMAX2>
<T1_IMAX3>0</T1_IMAX3>
<T1_PPAP>660</T1_PPAP>
<T1_PAPP>660</T1_PAPP>
<T1_HHPHC>A</T1_HHPHC>
<T1_MOTDETAT>000000</T1_MOTDETAT>
<T1_PPOT>-</T1_PPOT>
<!--  FIN TELEINFO 1  -->
</response>
lboue commented 6 months ago

Ne faudrait-il pas prendre en compte le cas d'un compteur à zéro (value = 0) ?

https://github.com/Aohzan/ecodevices/blob/master/custom_components/ecodevices/sensor.py#L552

    def native_value(self) -> float | None:
        """Return the total value if it's greater than 0."""
        value = 0.0
        for key in TELEINFO_TEMPO_ATTR.values():
            value += float(self.coordinator.data[f"T{self._input_number}_{key}"])
        if value > 0:
            return value
        _LOGGER.warning(
            "Total value for Teleinfo Input %s not greater than 0, ignore",
            self._input_number,
        )
        return None
Aohzan commented 6 months ago

en fait parfois on a la valeur 0 parce qu'il n'y a pas de valeur, et ça réinitialise les compteurs dans Home-Assistant, du coup on prend jamais en compte la valeur 0 Sinon par exemple, si tu es en total à 100,1kWh, ça passe à 0 puis à 100,2kWh, HA va croire que tu as consommé 100,2kWh à ce moment de la journée... Du coup il vaut mieux laissé comme ça, dès que ton compteur de JB sera incrémenté ça sera bon