Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Disparition des sensors hilo_energy_total_low et medium #319

Closed
gravelfreeman opened this issue Nov 21, 2023 · 46 comments
Closed

Disparition des sensors hilo_energy_total_low et medium #319

gravelfreeman opened this issue Nov 21, 2023 · 46 comments
Labels
energy_meter Probleme d'energy meters

Comments

@gravelfreeman
Copy link

gravelfreeman commented Nov 21, 2023

Version of the custom_component

Latest

Describe the bug

Je ne sais pas ce qui est arrivé aujourd'hui mais les sensors hilo_energy_total_medium et hilo_energy_total_low ont disparus. Hier encore j'avais accès à ma consommation de toute la journée. Voici ce que je vois aujourd'hui:

image

J'ai peur que les Fix Issue delete toute mon historique de données dans mon dashboard Energy....

image

image

Debug log

J'ai trouvé ça par rapport à Hilo dans les logs. À l'aide je capote un peu haha!

2023-11-21 18:26:23.451 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up hilo platform for sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 359, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/hilo/sensor.py", line 182, in async_setup_entry
    await utility_manager.update(async_add_entities)
  File "/config/custom_components/hilo/managers.py", line 71, in update
    await utility_setup(self.hass, config)
  File "/usr/src/homeassistant/homeassistant/components/utility_meter/__init__.py", line 141, in async_setup
    if not conf[CONF_TARIFFS]:
           ~~~~^^^^^^^^^^^^^^
KeyError: 'tariffs'
@gravelfreeman
Copy link
Author

gravelfreeman commented Nov 21, 2023

Information complémentaire

Je pense que ça s'est produit lorsque j'ai ouvert l'application Hilo sur mon téléphone pour vérifier le défi Hilo, Ça faisait vraiment longtemps que je ne l'avais pas ouverte. J'ai changé de medium à audacieux tout simplement.

J'étais déconnecté complètement de l'application et j'ai du me réauthentifier.

@FrancoLoco
Copy link
Collaborator

As tu essayé de faire redémarrer ton HA?

@gravelfreeman
Copy link
Author

As tu essayé de faire redémarrer ton HA?

Oui 2 fois.

@ic-dev21
Copy link
Collaborator

En as-tu qui s'appelle total_daily_low et total_dailly_medium? C'est ceux-là qui devrait être dans ton dashboard

@gravelfreeman
Copy link
Author

Je les avais avant oui mais la ils ont disparus.

@ic-dev21
Copy link
Collaborator

Je les avais avant oui mais la ils ont disparus.

Je ne vois pas le mot « daily » dans tes screenshots?

@gravelfreeman
Copy link
Author

Je les avais avant oui mais la ils ont disparus.

Je ne vois pas le mot « daily » dans tes screenshots?

Tu as raison, j'en ai d'ailleurs aucun. Vraiment weird. J'ai pas envie de réinstaller Hilo et tout perdre mon historique :(

image

@gravelfreeman
Copy link
Author

gravelfreeman commented Nov 23, 2023

Je viens de supprimer mon compte Hilo de l'extensioin Hilo, j'ai fait corriger sur tout les sensors dans statistics et j'ai redémarré.

J'ai ré-ajouté mon compte et setter comme suit:

image

Toujours pas de daily_low ou daily_medium et j'ai toute perdu mon historique. Je crois que la dernière version de Hilo HACS a brisé le code des utility meters et ils ne se génèrent plus.

J'ai vérifié également avec un ami et il m'a dit que selon sa compréhension les utility meters seraient mal configurés. Il m'a dit que les 40 premier kw/h est en quelque sorte erronné. Ce serait plutôt:

40 kw/h x 60 jours = 2400 kw/h au tarif low

ensuite ça switch au tarif medium pour les kw/h suivant.

Cela est plus avantageux pour le client étant donné que ça protège les personnes qui ne dépasseraient pas les 2400kw/h dans le 60 jours mais qui pour certaines journées auraient dépassé le 40 kw/h.

Exemple je pars en vacances 1 mois et je reviens à la maison et consomme 80 kw/h par jour j'arriverais à payer le tarif medium alors qu'à la fin du mois je n'aurais pas dépassé le 2400 kw/h.

Est-ce qu'il serait possible de modifier le code pour remplacer les daily_low et daily_medium par hilo_rate_low qui équivaut aux 2400 premier kw/h et hilo_rate_medium qui s'enclenche à partir de 2401 kw/h.

Ce système reset après 60 jours. Donc il faudrait être en mesure de mettre le # de jour du mois quand commence le comptage avec Hydro.

J'ai essayé de faire un utility_meter à partir de hilo_energy_total mais je suis perdu à savoir comment faire embarquer le rate medium après les 2400 kw/h.

C'est pour quoi je post ici, parce que je verrais que tout le monde pourrait en profiter au lieu de juste l'arranger pour moi seul!

@ic-dev21
Copy link
Collaborator

Salut!

Ton ami te l'as mal expliqué ou bien l'a mal compris.

La tarification de HQ (J'ai pas les chiffres par coeur, c'est pour donner une idée):
Frais d'accès au réseau: 0.40$/jour
Premier 40kWh consommés de la journée: 0.06$/kWh
Tout ce qui excède 40kWh: 0.10$/kWh

Je vois de mon bord que depuis le 19 novembre tous les sensors low et meidum ont pris le bord tout seul.

Par contre le "select" pour le passage de low à medium fonctionne alors j'ai encore mes stats quand même. C'est vraiment biz.

@skimaniac
Copy link

skimaniac commented Nov 24, 2023

Son ami a raison ;)

https://www.hydroquebec.com/residentiel/espace-clients/tarifs/tarif-d.html#

Mythe ou réalité ?

Au tarif D, les 40 premiers kilowattheures (kWh) que je consomme dans la journée sont facturés au plus bas prix de l’énergie. L’excédent est facturé au prix le plus élevé.

Mythe
Le tarif D comporte deux tranches de prix :

6,509 ¢/kWh pour l’équivalent de 40 kilowattheures par jour multipliés par le nombre de jours compris dans la période de consommation visée ;
10,041 ¢/kWh pour le reste de l’énergie consommée.
Nous ne facturons pas l’énergie selon votre consommation au quotidien. Nous tenons compte de votre consommation totale pendant la période visée, ce qui est plus avantageux pour vous.

Par exemple, si votre période de consommation est de 62 jours, vous avez droit à 2 480 kWh au prix de la première tranche (40 kWh par jour X 62 jours = 2 480 kWh). Le reste de l’énergie est facturé au prix de la deuxième tranche, s’il y a lieu.

@ic-dev21
Copy link
Collaborator

Son ami a raison ;)

https://www.hydroquebec.com/residentiel/espace-clients/tarifs/tarif-d.html#

Mythe ou réalité ?

Au tarif D, les 40 premiers kilowattheures (kWh) que je consomme dans la journée sont facturés au plus bas prix de l’énergie. L’excédent est facturé au prix le plus élevé.

Mythe Le tarif D comporte deux tranches de prix :

6,509 ¢/kWh pour l’équivalent de 40 kilowattheures par jour multipliés par le nombre de jours compris dans la période de consommation visée ; 10,041 ¢/kWh pour le reste de l’énergie consommée. Nous ne facturons pas l’énergie selon votre consommation au quotidien. Nous tenons compte de votre consommation totale pendant la période visée, ce qui est plus avantageux pour vous.

Par exemple, si votre période de consommation est de 62 jours, vous avez droit à 2 480 kWh au prix de la première tranche (40 kWh par jour X 62 jours = 2 480 kWh). Le reste de l’énergie est facturé au prix de la deuxième tranche, s’il y a lieu.

I stand corrected sir 🫡

@gravelfreeman
Copy link
Author

Je vois de mon bord que depuis le 19 novembre tous les sensors low et meidum ont pris le bord tout seul.

Comment peut-on réparer le code pour ceux-ci? Je crois qu'Hilo a fait une maj pour la nouvelle saison et ça a du changer les sensors.

Pourrions-nous par le fait même modifier le code des utility meters pour que les 2400 premier kw/h dans une période de 60 jours comptent pour low_rate et que les kw/h suivant (2401 et +) comptent pour medium_rate?

Ça serait malade, on aurait quasi exactement la bonne tarification dans HA.

@ic-dev21 ic-dev21 added the energy_meter Probleme d'energy meters label Nov 24, 2023
@FrancoLoco
Copy link
Collaborator

En même temps sur le site d’hydro Québec si tu regardes la consommation pour l’afficher en argent ils font l’estimation en prenant le même calcul que présentement, ça donne une idée plus réaliste au fur et à mesure du prix par jour au lieu d’avoir plein de jours plus chers à la fin de ton cycle.

Bref moi j’aime mieux comme présentement, même si c’est une estimation qui peut différer légèrement du calcul total final.

@gravelfreeman
Copy link
Author

En même temps sur le site d’hydro Québec si tu regardes la consommation pour l’afficher en argent ils font l’estimation en prenant le même calcul que présentement, ça donne une idée plus réaliste au fur et à mesure du prix par jour au lieu d’avoir plein de jours plus chers à la fin de ton cycle.

Bref moi j’aime mieux comme présentement, même si c’est une estimation qui peut différer légèrement du calcul total final.

Pour vrai les 2 ça ne me dérange pas. Seulement j'aimerais ça savoir comment les remettre. Est-ce que quelqu'un sait comment régler le problème?

@ic-dev21
Copy link
Collaborator

Comment peut-on réparer le code pour ceux-ci? Je crois qu'Hilo a fait une maj pour la nouvelle saison et ça a du changer les sensors.

Bonne question, va falloir regarder pourquoi soudainement ça a levé. Je ne pense pas que ça vienne d'Hilo nécessairement.

@ic-dev21
Copy link
Collaborator

En même temps sur le site d’hydro Québec si tu regardes la consommation pour l’afficher en argent ils font l’estimation en prenant le même calcul que présentement, ça donne une idée plus réaliste au fur et à mesure du prix par jour au lieu d’avoir plein de jours plus chers à la fin de ton cycle.
Bref moi j’aime mieux comme présentement, même si c’est une estimation qui peut différer légèrement du calcul total final.

Pour vrai les 2 ça ne me dérange pas. Seulement j'aimerais ça savoir comment les remettre. Est-ce que quelqu'un sait comment régler le problème?

C'est un long shot, mais peux-tu updater à v2023.11.2 et me redonner des news SVP?

@gravelfreeman
Copy link
Author

Elle n'est pas disponible je crois.

Screenshot_20231125_000740_Home Assistant

Screenshot_20231125_001001_Home Assistant

@ic-dev21
Copy link
Collaborator

Elle n'est pas disponible je crois.

Screenshot_20231125_000740_Home Assistant

Screenshot_20231125_001001_Home Assistant

Je parlais du component désolé si c’était pas clair!

@gravelfreeman
Copy link
Author

Ah désolé elle n'apparaissait pas automatiquement! J'ai perdu 2 sensors de plus suite à la maj. Peut-être que cela est voulu par contre.

image

Est-ce que c'est en processus de patch ou est-ce que je devrais penser à créer mes propres sensors? J'ai essayé avant hier mais je n'ai pas réussi malheureusement. Étant donné qu'il y a 2 rates (low et medium) et que ça doit changer après 40 kw/h sur une base quotidienne j'ai bloqué hehe!

Merci à toi et tout les autres qui mettez de votre temps dans ça.

@ic-dev21
Copy link
Collaborator

Les 5 premières minutes après une installation ils peuvent être unavailable ou avoir besoin d’un « fix issue » dans les stats, as-tu vérifié?

@gravelfreeman
Copy link
Author

Les 5 premières minutes après une installation ils peuvent être unavailable ou avoir besoin d’un « fix issue » dans les stats, as-tu vérifié?

Bonne idée, j'ai vérifié et malheureusement aucun Fix issue.

Y a t-il une méthode manuelle pour forcer la création des sensors? Dans le code de l'intégration. Quand est-ce que les sensors sont populés?

@ic-dev21
Copy link
Collaborator

Les 5 premières minutes après une installation ils peuvent être unavailable ou avoir besoin d’un « fix issue » dans les stats, as-tu vérifié?

Bonne idée, j'ai vérifié et malheureusement aucun Fix issue.

Y a t-il une méthode manuelle pour forcer la création des sensors? Dans le code de l'intégration. Quand est-ce que les sensors sont populés?

Pendant le config flow au début. Je vais flusher mon installation sur mon NAS (que j'utilise comme banc de test) voir ce que ça dit avec une installation flambette.

@ic-dev21
Copy link
Collaborator

ic-dev21 commented Nov 25, 2023

Les 5 premières minutes après une installation ils peuvent être unavailable ou avoir besoin d’un « fix issue » dans les stats, as-tu vérifié?

Bonne idée, j'ai vérifié et malheureusement aucun Fix issue.

Y a t-il une méthode manuelle pour forcer la création des sensors? Dans le code de l'intégration. Quand est-ce que les sensors sont populés?

Alright, j'ai complètement wipé Hilo de sur mon NAS, même pris le temps de flusher la db et redémarrer un paquet de fois. Deleté absolument tout ce qui avait Hilo dans le nom, même ce qui était hidden. Plus aucune trace, zéro.

Ensuite j'ai copié le repo en neuf sur le NAS, d'un coup que j'aurais une version de test.

Fait le config flow normal: email, mot de passe.

Coché energy meters, rate d, 3h d'appréciation, 60s de scan interval.

Tout est revenu comme si je n'avais rien touché. Mes entités sont bien là et fonctionnelles...

Ton setup est différent du miens par contre:

image

image

@gravelfreeman
Copy link
Author

  1. J'ai supprimé l'intégration Hilo au complet
  2. J'ai Fix issues sur tout ce que ça a créé dans Statistics
  3. Redémarré
  4. Réinstallé Hilo
  5. Redémarré
  6. Connecté mon compte
  7. Coché energy meters, rate d, 3h d'appréciation, 60s de scan interval

Toujours les mêmes 12 sensors.

image

J'en viens à la conclusion que soit

  1. Je n'ai pas désinstallé Hilo au complet
  2. Tu as oublié du code quelque part qui génère les sensors à la place de l'intégration Hilo

Dans le cas que j'aurais mal désinstallé Hilo, pourrais-tu me guider pour

même pris le temps de flusher la db

Merci!

@ic-dev21
Copy link
Collaborator

ic-dev21 commented Nov 25, 2023

  1. J'ai supprimé l'intégration Hilo au complet
  2. J'ai Fix issues sur tout ce que ça a créé dans Statistics
  3. Redémarré
  4. Réinstallé Hilo
  5. Redémarré
  6. Connecté mon compte
  7. Coché energy meters, rate d, 3h d'appréciation, 60s de scan interval

Toujours les mêmes 12 sensors.

image

J'en viens à la conclusion que soit

  1. Je n'ai pas désinstallé Hilo au complet
  2. Tu as oublié du code quelque part qui génère les sensors à la place de l'intégration Hilo

Dans le cas que j'aurais mal désinstallé Hilo, pourrais-tu me guider pour

même pris le temps de flusher la db

Merci!
En passant c’est pas moi l’auteur du code 😉, je fais mon possible pour l’aider haha.

C’est juste les sensors du gateway ça, tu dois en avoir d’autres de plus certain?

@gravelfreeman
Copy link
Author

  1. J'ai supprimé l'intégration Hilo au complet
  2. J'ai Fix issues sur tout ce que ça a créé dans Statistics
  3. Redémarré
  4. Réinstallé Hilo
  5. Redémarré
  6. Connecté mon compte
  7. Coché energy meters, rate d, 3h d'appréciation, 60s de scan interval

Toujours les mêmes 12 sensors.
image
J'en viens à la conclusion que soit

  1. Je n'ai pas désinstallé Hilo au complet
  2. Tu as oublié du code quelque part qui génère les sensors à la place de l'intégration Hilo

Dans le cas que j'aurais mal désinstallé Hilo, pourrais-tu me guider pour
même pris le temps de flusher la db
Merci!

C’est juste les sensors du gateway ça, tu dois en avoir d’autres de plus certain?

Non j'ai aucun thermostats ou switchs de connectés dans Hilo. Je les gère avec z2m.

@ic-dev21
Copy link
Collaborator

  1. J'ai supprimé l'intégration Hilo au complet
  2. J'ai Fix issues sur tout ce que ça a créé dans Statistics
  3. Redémarré
  4. Réinstallé Hilo
  5. Redémarré
  6. Connecté mon compte
  7. Coché energy meters, rate d, 3h d'appréciation, 60s de scan interval

Toujours les mêmes 12 sensors.
image
J'en viens à la conclusion que soit

  1. Je n'ai pas désinstallé Hilo au complet
  2. Tu as oublié du code quelque part qui génère les sensors à la place de l'intégration Hilo

Dans le cas que j'aurais mal désinstallé Hilo, pourrais-tu me guider pour
même pris le temps de flusher la db
Merci!

C’est juste les sensors du gateway ça, tu dois en avoir d’autres de plus certain?

Non j'ai aucun thermostats ou switchs de connectés dans Hilo. Je les gère avec z2m.

Ma liste d’entités en contient 52

Ça ressemble plus à ça ici
image

@gravelfreeman
Copy link
Author

C'est normal selon moi, tes sensors supplémentaires sont ceux de tes thermostats qui sont dans Hilo.

Dans mon cas j'ai 12 sensors pour le gateway.

image

C'est pour ça que je me dis que tes sensors hilo_energy_total_daily low et hilo_energy_total_daily medium semblent ne pas avoir été générés par l'intégration elle-même mais plutôt par un Helper Riemann/Utility Meter que tu aurais créé auparavant. Ou créé par du code en yaml.

Donc quand tu désinstalle Hilo, ils disparaissent parce qu'ils ne sont plus liés à aucun sensor existant et quand tu réinstalle Hilo ils reviennent. Ce qui donnerait l'impression qu'ils ont été ajoutés par l'intégration Hilo.

Je sais que c'est un peu de gossage mais pourrais-tu essayer sur une autre install clean de HAOS sur une vm jetable de réinstaller seulement l'intégration Hilo et de connecter ton compte? Si tu as mon problème ça confirme ma théorie, sinon ça veut dire que nos comptes Hilo sont différents et que l'intégration n'est pascapable de traiter le data comme avec ton compte. Peut-être que les clients automne 2023 on une passerelle différente et que ça créer des sensors avec des noms différents.

Encore la des théories haha!

Je n'en ai pas la moindre idée, mais c'est certain que ça s'explique.

@ic-dev21
Copy link
Collaborator

C'est normal selon moi, tes sensors supplémentaires sont ceux de tes thermostats qui sont dans Hilo.

Dans mon cas j'ai 12 sensors pour le gateway.

image

C'est pour ça que je me dis que tes sensors hilo_energy_total_daily low et hilo_energy_total_daily medium semblent ne pas avoir été générés par l'intégration elle-même mais plutôt par un Helper Riemann/Utility Meter que tu aurais créé auparavant. Ou créé par du code en yaml.

Donc quand tu désinstalle Hilo, ils disparaissent parce qu'ils ne sont plus liés à aucun sensor existant et quand tu réinstalle Hilo ils reviennent. Ce qui donnerait l'impression qu'ils ont été ajoutés par l'intégration Hilo.

Je sais que c'est un peu de gossage mais pourrais-tu essayer sur une autre install clean de HAOS sur une vm jetable de réinstaller seulement l'intégration Hilo et de connecter ton compte? Si tu as mon problème ça confirme ma théorie, sinon ça veut dire que nos comptes Hilo sont différents et que l'intégration n'est pascapable de traiter le data comme avec ton compte. Peut-être que les clients automne 2023 on une passerelle différente et que ça créer des sensors avec des noms différents.

Encore la des théories haha!

Je n'en ai pas la moindre idée, mais c'est certain que ça s'explique.

Je ne suis pas l’auteur du code en passant 😉

Ce que j’ai fait revient exactement à ta suggestion.

Les sensors d’énergie sont des riemann sum si tu vas voir dans sensor.py, je suis sur mobile mais c’est une class energysensor

@gravelfreeman
Copy link
Author

J'ai fouillé dans le code et ça ma donné l'idée de checker les logs. Le sensor n'est pas créé, c'est écrit dans les logs.

2023-11-25 17:05:02.674 WARNING (MainThread) [custom_components.hilo] check_tarif: Unable to find state for sensor.hilo_energy_total_low

@gravelfreeman
Copy link
Author

gravelfreeman commented Nov 25, 2023

Voici les logs complets, je vois qu'il y a beaucoup plus d'informations plus haut.

2023-11-25 16:36:02.195 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up hilo platform for sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 359, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/hilo/sensor.py", line 137, in async_setup_entry
    default_tariff_list = validate_tariff_list(tariff_config)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/hilo/sensor.py", line 79, in validate_tariff_list
    if not tariff_config.get(tariff, 0):
           ^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get'
2023-11-25 16:36:02.215 WARNING (MainThread) [pyhilo] Delaying invoke SubscribeToLocation 0 [32623]: Websocket not ready.
2023-11-25 16:36:41.211 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up hilo platform for sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 359, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/hilo/sensor.py", line 182, in async_setup_entry
    await utility_manager.update(async_add_entities)
  File "/config/custom_components/hilo/managers.py", line 71, in update
    await utility_setup(self.hass, config)
  File "/usr/src/homeassistant/homeassistant/components/utility_meter/__init__.py", line 141, in async_setup
    if not conf[CONF_TARIFFS]:
           ~~~~^^^^^^^^^^^^^^
KeyError: 'tariffs'
2023-11-25 16:36:41.261 WARNING (MainThread) [pyhilo] Delaying invoke SubscribeToLocation 0 [32623]: Websocket not ready.
2023-11-25 16:36:41.507 WARNING (MainThread) [custom_components.hilo] check_tarif: Unable to find state for sensor.hilo_energy_total_low
2023-11-25 16:37:04.804 WARNING (MainThread) [custom_components.hilo] check_tarif: Unable to find state for sensor.hilo_energy_total_low

J'ai enlevé la partie des logs inutile.

@ic-dev21
Copy link
Collaborator

J'ai fouillé dans le code et ça ma donné l'idée de checker les logs. Le sensor n'est pas créé, c'est écrit dans les logs.

2023-11-25 17:05:02.674 WARNING (MainThread) [custom_components.hilo] check_tarif: Unable to find state for sensor.hilo_energy_total_low

Fais un petit test pour moi, dans ton /config tu devrais avoir un dossier caché .storage. Il y a un fichier core.restore_state. Delete ça et repars HA.

@ic-dev21
Copy link
Collaborator

C'est normal selon moi, tes sensors supplémentaires sont ceux de tes thermostats qui sont dans Hilo.

Dans mon cas j'ai 12 sensors pour le gateway.

image

C'est pour ça que je me dis que tes sensors hilo_energy_total_daily low et hilo_energy_total_daily medium semblent ne pas avoir été générés par l'intégration elle-même mais plutôt par un Helper Riemann/Utility Meter que tu aurais créé auparavant. Ou créé par du code en yaml.

Donc quand tu désinstalle Hilo, ils disparaissent parce qu'ils ne sont plus liés à aucun sensor existant et quand tu réinstalle Hilo ils reviennent. Ce qui donnerait l'impression qu'ils ont été ajoutés par l'intégration Hilo.

Je sais que c'est un peu de gossage mais pourrais-tu essayer sur une autre install clean de HAOS sur une vm jetable de réinstaller seulement l'intégration Hilo et de connecter ton compte? Si tu as mon problème ça confirme ma théorie, sinon ça veut dire que nos comptes Hilo sont différents et que l'intégration n'est pascapable de traiter le data comme avec ton compte. Peut-être que les clients automne 2023 on une passerelle différente et que ça créer des sensors avec des noms différents.

Encore la des théories haha!

Je n'en ai pas la moindre idée, mais c'est certain que ça s'explique.

Tous mes sensors sont créés par l'intégration, j'en ai fait aucun à la main :)

@gravelfreeman
Copy link
Author

J'ai fouillé dans le code et ça ma donné l'idée de checker les logs. Le sensor n'est pas créé, c'est écrit dans les logs.
2023-11-25 17:05:02.674 WARNING (MainThread) [custom_components.hilo] check_tarif: Unable to find state for sensor.hilo_energy_total_low

Fais un petit test pour moi, dans ton /config tu devrais avoir un dossier caché .storage. Il y a un fichier core.restore_state. Delete ça et repars HA.

C'est fait et toujours la même erreur.

Question de noob: est-ce que je fais le bouton jaune ou rouge quand je redémarre. Crois moi crois moi pas, je viens de me rendre compte qu'il y avait un bouton rouge...

image

@ic-dev21
Copy link
Collaborator

Je suis sur docker donc c’est différent mais vite de même je dirais le rouge selon la description. L’autre ressemble plus à un reload qu’un reboot

@gravelfreeman
Copy link
Author

gravelfreeman commented Nov 25, 2023

J'ai tout désactivé jusqu'à temps que mes logs n'affichent plus d'erreur ormis celle-ci que je n'ai jamais réussi à décamper. Je ne crois pas toutefois qu'elle est quelconque rapport avec Hilo.

2023-11-25 18:17:49.885 WARNING (MainThread) [slixmpp.stringprep] Using slower stringprep, consider compiling the faster cython/libidn one.

Ensuite après avoir redémarré une dernière fois j'ai reconnecté mon compte Hilo, ce qui me donne 2 devices et 5 sensors. J'ai aussi cet avertissement dans les logs, qui semble être peu pertinent.

2023-11-25 18:22:54.832 WARNING (MainThread) [pyhilo] Delaying invoke SubscribeToLocation 0 [32623]: Websocket not ready.

Ensuite je fais ma configuration initiale comme suit

image

Cela me créer seulement un total de 12 sensors et des erreurs dans les logs

2023-11-25 18:26:48.245 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up hilo platform for sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 359, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/hilo/sensor.py", line 182, in async_setup_entry
    await utility_manager.update(async_add_entities)
  File "/config/custom_components/hilo/managers.py", line 71, in update
    await utility_setup(self.hass, config)
  File "/usr/src/homeassistant/homeassistant/components/utility_meter/__init__.py", line 141, in async_setup
    if not conf[CONF_TARIFFS]:
           ~~~~^^^^^^^^^^^^^^
KeyError: 'tariffs'
2023-11-25 18:26:48.291 WARNING (MainThread) [pyhilo] Delaying invoke SubscribeToLocation 0 [32623]: Websocket not ready.
2023-11-25 18:26:48.478 WARNING (MainThread) [custom_components.hilo] check_tarif: Unable to find state for sensor.hilo_energy_total_low

Je pense que le code est en partie brisé. Voici ce que ChatGPT dit

Looks like the issue is with a missing key in your configuration. The key 'tariffs' is expected, but it's not present. Here's a breakdown:

Location of Error:
The error occurred in the file sensor.py at line 182 of your custom component for the Hilo platform.

Error Details:
The error is a KeyError and it's complaining about a missing key 'tariffs' in a configuration dictionary.

Context:
The code is trying to access conf[CONF_TARIFFS] where CONF_TARIFFS seems to be a constant representing the key 'tariffs' in the configuration.

Recommendation:
Check your Hilo platform configuration in your Home Assistant setup.
Ensure that you have a section for 'tariffs' defined with the appropriate values or make sure that 'tariffs' is present where expected.

Remember, the key 'tariffs' is expected to be in your configuration, but it's not found when the code tries to access it, leading to the KeyError.

Je suis loin d'être un expert malheureusement. Bien curieux de savoir ce que l'intégration trouve dans ton compte Hilo concernant les tarifs qu'elle ne trouve pas dans mon compte Hilo!

@gravelfreeman
Copy link
Author

Je viens d'allumer sur de quoi. Il se pourrait tu que vue que je n'ai aucun thermostats dans Hilo, le code actuel s'attend d'en avoir au moins un et plante. Est-ce qu'il y aurait moyen de modifier l'odre que les sensors se créer? Genre rajouter un check pour s'il y a des thermostats ou non. Pis modifier la suite de la génération des sensors en conséquence.

@ic-dev21
Copy link
Collaborator

Je viens d'allumer sur de quoi. Il se pourrait tu que vue que je n'ai aucun thermostats dans Hilo, le code actuel s'attend d'en avoir au moins un et plante. Est-ce qu'il y aurait moyen de modifier l'odre que les sensors se créer? Genre rajouter un check pour s'il y a des thermostats ou non. Pis modifier la suite de la génération des sensors en conséquence.

Je l'exclurais pas mais j'en doute un peu. Je ne suis pas un expert non plus, comme j'ai dit plus haut je ne suis pas l'auteur du code, juste le gars qui fait son possible.

Ce que je peux te dire avec une certaine certitude c'est que c'est pas lié à ton compte hilo ou au miens. C'est vraiment l'intégration qui semble ne pas fonctionner pour toi.

First, on importe des modules ici:

from .const import (
CONF_ENERGY_METER_PERIOD,
CONF_GENERATE_ENERGY_METERS,
CONF_HQ_PLAN_NAME,
CONF_TARIFF,
CONF_UNTARIFICATED_DEVICES,
DEFAULT_ENERGY_METER_PERIOD,
DEFAULT_GENERATE_ENERGY_METERS,
DEFAULT_HQ_PLAN_NAME,
DEFAULT_SCAN_INTERVAL,
DEFAULT_UNTARIFICATED_DEVICES,
DOMAIN,
EVENT_SCAN_INTERVAL,
HILO_ENERGY_TOTAL,
HILO_SENSOR_CLASSES,
LOG,
NOTIFICATION_SCAN_INTERVAL,
REWARD_SCAN_INTERVAL,
TARIFF_LIST,

Ensuite, on génère le power meter et son energy sensor (pour la maison au complet c'est lui que tu veux avoir dans ton energy dashboard), lignes 142 et suivantes ici:

async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
) -> None:
"""Set up Hilo sensors based on a config entry."""
hilo = hass.data[DOMAIN][entry.entry_id]
new_entities = []
cost_entities = []
hq_plan_name = entry.options.get(CONF_HQ_PLAN_NAME, DEFAULT_HQ_PLAN_NAME)
untarificated_devices = entry.options.get(
CONF_UNTARIFICATED_DEVICES, DEFAULT_UNTARIFICATED_DEVICES
)
energy_meter_period = entry.options.get(
CONF_ENERGY_METER_PERIOD, DEFAULT_ENERGY_METER_PERIOD
)
scan_interval = entry.options.get(CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL)
generate_energy_meters = entry.options.get(
CONF_GENERATE_ENERGY_METERS, DEFAULT_GENERATE_ENERGY_METERS
)
tariff_config = CONF_TARIFF.get(hq_plan_name)
if untarificated_devices:
default_tariff_list = ["total"]
else:
default_tariff_list = validate_tariff_list(tariff_config)
if generate_energy_meters:
energy_manager = await EnergyManager().init(hass, energy_meter_period)
utility_manager = UtilityManager(hass, energy_meter_period)
def create_energy_entity(device):
device._energy_entity = EnergySensor(device)
new_entities.append(device._energy_entity)
energy_entity = f"hilo_energy_{slugify(device.name)}"
if energy_entity == HILO_ENERGY_TOTAL:
LOG.error(
"An hilo entity can't be named 'total' because it conflicts "
"with the generated name for the smart energy meter"
)
return
tariff_list = default_tariff_list
if device.type == "Meter":
energy_entity = HILO_ENERGY_TOTAL
tariff_list = validate_tariff_list(tariff_config)
net_consumption = device.net_consumption
utility_manager.add_meter(energy_entity, tariff_list, net_consumption)
for d in hilo.devices.all:
LOG.debug(f"Adding device {d}")
new_entities.extend(generate_entities_from_device(d, hilo, scan_interval))
if d.has_attribute("power"):
# If we opt out the geneneration of meters we just create the power sensors
if generate_energy_meters:
create_energy_entity(d)

Les energy sensors en soit sont créés ici:

class EnergySensor(IntegrationSensor):
"""Define a Hilo energy sensor entity."""
_attr_device_class = SensorDeviceClass.ENERGY
_attr_native_unit_of_measurement = ENERGY_KILO_WATT_HOUR
_attr_state_class = SensorStateClass.TOTAL_INCREASING
_attr_icon = "mdi:lightning-bolt"
def __init__(self, device):
self._device = device
self._attr_name = f"Hilo Energy {slugify(device.name)}"
self._attr_unique_id = f"hilo_energy_{slugify(device.name)}"
self._unit_of_measurement = ENERGY_KILO_WATT_HOUR
self._unit_prefix = None
if device.type == "Meter":
self._attr_name = HILO_ENERGY_TOTAL
self._unit_of_measurement = ENERGY_KILO_WATT_HOUR
self._unit_prefix = "k"
if device.type == "Thermostat" or device.type == "FloorThermostat":
self._unit_of_measurement = ENERGY_KILO_WATT_HOUR
self._unit_prefix = "k"
self._source = f"sensor.{slugify(device.name)}_power"
super().__init__(
integration_method=METHOD_LEFT,
name=self._attr_name,
round_digits=2,
source_entity=self._source,
unique_id=self._attr_unique_id,
unit_prefix=self._unit_prefix,
unit_time="h",
)
self._state = 0
self._last_period = 0
LOG.debug(
f"Setting up EnergySensor entity: {self._attr_name} with source {self._source}"
)
@property
def unit_of_measurement(self):
return self._unit_of_measurement
async def async_added_to_hass(self) -> None:
"""Handle entity which will be added."""
LOG.debug(f"Added to hass: {self._attr_name}")
await super().async_added_to_hass()

Lignes 252 et suivantes.

Jette un oeil à #281 pour le fun, l'erreur de key y était mais ce n'était pas le problème.

J'ai aussi cet avertissement dans les logs, qui semble être peu pertinent.

2023-11-25 18:22:54.832 WARNING (MainThread) [pyhilo] Delaying invoke SubscribeToLocation 0 [32623]: Websocket not ready.

Ça c'est normal, le temps que le websocket se fasse, pas de stress tu vas l'avoir souvent.

@ic-dev21
Copy link
Collaborator

ic-dev21 commented Nov 26, 2023

Je viens d'allumer sur de quoi. Il se pourrait tu que vue que je n'ai aucun thermostats dans Hilo, le code actuel s'attend d'en avoir au moins un et plante. Est-ce qu'il y aurait moyen de modifier l'odre que les sensors se créer? Genre rajouter un check pour s'il y a des thermostats ou non. Pis modifier la suite de la génération des sensors en conséquence.

J'avais quelques minutes. Clean install de HA en docker:
image

Installation Hilo
image

Post installation, sans config:
image

image

Je fais la config:
image

Submit:
image

Les sensors de consommation se sont créés. Si j'avais juste le meter, j'aurais juste celui-là, ce qui est normal dans la liste d'entités

image

Si je vais ensuite voir dans developer tools, statistics:
image

C'est flambette alors le changement de pas d'unité (création) à une unité (setup) le fuck. Je fais un "fix" à tout le monde.

Après ça, energy dashboard:
image

Pis comme c'est un clean install HASS m'a tout crissé ça en tapon dans l'overview, mais je scroll un peu et j'obtiens:

image

Je sais pas quoi dire de plus, on dirait qu'il ya quelque chose de corrompu quelque part.

Est-ce que si tu vas là:
image

Tu trouves quelque chose dans la liste en cherchant: total_daily low?

@gravelfreeman
Copy link
Author

Bon je viens de prendre le temps d'installer une nouvelle VM de 0.

J'ai essayé de garder l'install le plus clean possible qui soit et seulement installé ces add-ons en ordre

  1. Terminal
  2. HACS
  3. VS Code
  4. Hilo

Au début j'ai eu plusieurs erreurs avant d'ajouter utility_meter: au configuration.yaml

J'ai aussi dû faire le Fix issue sur un seul sensor.

Quand je redémarre HAOS j'ai ces 2 erreurs qui semblent bénigme et n'empêchent pas l'utilisation des meters dans le dashboard Energy.

2023-11-27 17:16:22.501 ERROR (MainThread) [homeassistant.components.sensor] Entity id already exists - ignoring: sensor.hilo_energy_total_medium
2023-11-27 17:16:22.501 ERROR (MainThread) [homeassistant.components.sensor] Entity id already exists - ignoring: sensor.hilo_energy_total_low

J'ai remarqué que j'ai toujours seulement 12 entitées.

image

image

Si je rechercher hilo dans la liste des Entities j'ai 15 résultats.

image

Je n'avais jamais compris qu'ils apparaiteraient seulement là...

Je vais rebooter mon autre VM de prod, tout désactiver et réassayer de réinstaller Hilo.

À suivre et merci de ton temps!

@ic-dev21
Copy link
Collaborator

Ouin c'est pas full instinctif que ça se poivre un peu partout dans HA.

Les erreurs que tu vois sont connues voir #204

Je sais d'où l'erreur provient, je suis juste pas assez ferré en python pour le réglé malheureusement!

@ic-dev21
Copy link
Collaborator

Bon je viens de prendre le temps d'installer une nouvelle VM de 0.

J'ai essayé de garder l'install le plus clean possible qui soit et seulement installé ces add-ons en ordre

  1. Terminal
  2. HACS
  3. VS Code
  4. Hilo

Au début j'ai eu plusieurs erreurs avant d'ajouter utility_meter: au configuration.yaml

J'ai aussi dû faire le Fix issue sur un seul sensor.

Quand je redémarre HAOS j'ai ces 2 erreurs qui semblent bénigme et n'empêchent pas l'utilisation des meters dans le dashboard Energy.

2023-11-27 17:16:22.501 ERROR (MainThread) [homeassistant.components.sensor] Entity id already exists - ignoring: sensor.hilo_energy_total_medium
2023-11-27 17:16:22.501 ERROR (MainThread) [homeassistant.components.sensor] Entity id already exists - ignoring: sensor.hilo_energy_total_low

J'ai remarqué que j'ai toujours seulement 12 entitées.

image

image

Si je rechercher hilo dans la liste des Entities j'ai 15 résultats.

image

Je n'avais jamais compris qu'ils apparaiteraient seulement là...

Je vais rebooter mon autre VM de prod, tout désactiver et réassayer de réinstaller Hilo.

À suivre et merci de ton temps!

Est-ce qu'on peut considérer le tout réglé?

@gravelfreeman
Copy link
Author

Non c'est loin d'être réglé. Et j'ai pas eu le temps encore de desactiver les autres addons et tester plus.

@gravelfreeman
Copy link
Author

C'est tellement insultant que tout fonctionnait et que du jour au lendemain ça disparu.

J'ai essayé de désactiver tout les add-ons sauf vs-code mais ça fait toujours la même erreur.

Je n'ai pas réussi à désactiver les add-ons HACS sauf celui de Hilo. Sais-tu comment faire sans supprimer toute mes addons HACS?

Si quelqu'un a d'autre idées j'ai besoin que ça fonctionne comme avant.

Merci de votre aide!

@ic-dev21
Copy link
Collaborator

ic-dev21 commented Dec 7, 2023

Peux-tu essayer de downloader #324 voir?

@gravelfreeman
Copy link
Author

Peux-tu essayer de downloader #324 voir?

Je pleure, merci.

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
energy_meter Probleme d'energy meters
Projects
None yet
Development

No branches or pull requests

4 participants