francispoisson / hilo

Hilo integration for Home Assistant
The Unlicense
26 stars 8 forks source link

Utiliser smartenergy meter avec la nouvelle section Energy. #29

Closed kayrozen closed 2 years ago

kayrozen commented 2 years ago

La dernière version de Home Assistant a maintenant une section Énergie et malheureusement, smart energy meter n'y apparait pas. Selon HA, il faut spécifier quelques metadata au sensor pour quil soit recconu par la nouvelle fonction.

https://www.home-assistant.io/docs/energy/electricity-grid/

https://developers.home-assistant.io/docs/core/entity/sensor/#long-term-statistics

vgibara commented 2 years ago

Francis a déjà répondu à ça ici: https://github.com/francispoisson/hilo/issues/24#issuecomment-903278608

Et voici mon setup, pour calculer le coût quotidien. C'est peut-être pas parfait, mais ça marchait jusqu'à ce que le bug d'avant-hier survienne avec Hilo.

J'ai créé quelques input pour entrer manuellement, lorsqu'ils changent, les coûts d'électricité: input_number.electricity_first40 0.06159 input_number.electricity_restofday 0.09502 input_number.electricity_access_fee 0.41168 input_number.electricity_current_price (celui-ci est automatique et sert pour l'automation ** je ne suis plus certain si cette partie des automations est encore utilisée dans mon setup....)

Ensuite, le utility_meter daily_energy va créer 2 sensors: sensor.daily_energy_first40 sensor.daily_energy_restofday

J'ai fait 2 automations qui vont modifier dans quel sensor les données sont comptées. Donc, premiers 40 kWh dans daily_energy_first40, et ensuite dans daily_energy_restofday. Voir plus bas pour les 2 automations.

utility_meter: daily_energy: source: sensor.energy_spent name: Électricité quotidienne cycle: daily tariffs:

alias: Tarification d'électricité - First 40 description: '' trigger:

alias: Tarification d'électricité - Reset Daily description: '' trigger:

kayrozen commented 2 years ago

Nice ! Merci :)

isbkch commented 2 years ago

@vgibara ta solution a l'air vraiment cool mais j'ai eu du mal a l'implementer. Pourrais tu la reprendre avec plus de details ? Par exemple, dans quel fichier faudra mettre ?

- platform: template
  sensors:
    daily_energy_cost:
      entity_id:
        - sensor.energy_spent
      value_template: "{{ '%.2f' | format(((states('sensor.daily_energy_first_40') | float * states('input_number.energy_cost_first_40') | float) + (states('sensor.daily_energy_after_40') | float * states('input_number.energy_cost_after_40') | float) + states('input_number.energy_access_fee') | float) | round(2)) }}"

Aussi, c'est où que tu set les valeurs de tes input numbers comme 0.06159 pour le input_number.electricity_first40

vgibara commented 2 years ago

La configuration mentionnée est dans mon fichier configuration.yaml.

Pour les input, je suis allé par l'interface web, dans Configuration > Entrées J'ai ajouté 4 entrées de type Nombre.

electricity_access_fee electricity_first40 electricity_restofday electricity_current_price (sert à savoir quel est le prix actuel. il est modifié par une automatisation)

Les 3 premiers, j'ai entré la valeur manuellement pour les taux à partir de l'outil de développement. Donc quand HQ va changer ses taux (1er avril surement) il faudra mettre à jour ces entrées.

Comme je mentionnais, c'est peut-être pas la façon la plus élégante, mais ça marche. Et j'arrive presque au sous près du montant indiqué quand je me connecte sur mon compte Hydro et que je regarde ma consommation pour la journée précédente.

isbkch commented 2 years ago

Mon problème est cette erreur quand je veux configurer le cout dans le dashboard Energy (ta variable electricity_current_price s'appelle energy_current_cost dans mon exemple Screen Shot 2021-10-19 at 11 33 51 AM

Voici comment je set le cout d'énergie Screen Shot 2021-10-19 at 11 33 43 AM

J'ai utilisé tes deux automations aussi, voici la premiere

alias: Energy Cost - First 40
description: ''
trigger:
  - platform: state
    entity_id: input_number.energy_cost_first_40
    to: '40'
condition: []
action:
  - service: utility_meter.select_tariff
    target:
      entity_id: utility_meter.daily_energy
    data:
      tariff: after_40
  - service: input_number.set_value
    target:
      entity_id: input_number.energy_current_cost
    data:
      value: '{{ states(''input_number.energy_cost_after_40'') | float }}'
mode: single

Et la deuxieme:

alias: Energy Cost - Reset Daily
description: ''
trigger:
  - platform: time
    at: '00:00:00'
condition: []
action:
  - service: utility_meter.select_tariff
    target:
      entity_id: utility_meter.daily_energy
    data:
      tariff: first_40
  - service: input_number.set_value
    target:
      entity_id: input_number.energy_current_cost
    data:
      value: '{{ states(''input_number.energy_current_cost'') | float }}'
mode: single

Et ça c'est mes configurations:

utility_meter:
  daily_energy:
    source: sensor.total_energy_consumed
    name: Daily Energy
    cycle: daily
    tariffs:
      - first_40
      - after_40

- platform: template
  sensors:
    daily_energy_cost:
      entity_id:
        - sensor.energy_spent
      value_template: "{{ '%.2f' | format(((states('sensor.daily_energy_first_40') | float * states('input_number.energy_cost_first_40') | float) + (states('sensor.daily_energy_after_40') | float * states('input_number.energy_cost_after_40') | float) + states('input_number.energy_access_fee') | float) | round(2)) }}"
skimaniac commented 2 years ago

moi aussi j'avais le même problème et j'ai réussi à le corriger en mettant /kWh à l'unité de mesure de electricity_current_price

vgibara commented 2 years ago

Effectivement, ajouter l'unité de mesure: $/kWh sur electricity_current_price

isbkch commented 2 years ago

ça a marché. Merci! Je vais garder un oeil dessus pour les jours a venir