SmartPlug : Comment avoir la consommation du jour (ou sur X heures) au lieu du cumul?

Bonjour,
Depuis que j’ai mis mes prises connectées, j’essaye de trouver comment avoir la consommation sur la journée, comme dans le dashboard énergie, mais en graphique, style histogramme.

Actuellement j’ai ceci (mini-graph-card, sur 24h) {regarder l’énergie} :

Code YAML
type: vertical-stack
title: Smart-Plug
cards:
  - type: horizontal-stack
    cards:
      - type: custom:mini-graph-card
        name: Puissance Coin-TV
        hours_to_show: 24
        hour24: true
        entities:
          - sensor.smartplug_cointv_power
      - type: custom:mini-graph-card
        name: Énergie Coin-TV
        hours_to_show: 24
        hour24: true
        show:
          graph: bar
        entities:
          - sensor.smartplug_cointv_energy
  - type: horizontal-stack
    cards:
      - type: custom:mini-graph-card
        name: Puissance Serveurs
        entities:
          - sensor.smartplug_serveurbureau_power
      - type: custom:mini-graph-card
        name: Énergie Serveurs
        entities:
          - sensor.smartplug_serveurbureau_energy

J’ai essayé pour la carte de l’énergie de mon coin TV de limiter à 24h, mais ça ne concerne que la partie graphique, pas la valeur indiquée…
L’énergie qui s’affiche est le cumul depuis que j’ai associé la prise à Z2MQTT.

J’aimerais avoir l’énergie consommée sur la journée, depuis 0h00 comme ce qui est présent dans le dashboard énergie :


Mais aussi une représentation par tranche de 30 minutes de la consommation durant ces plages, un peu comme le dashboard énergie, encore une fois :sweat_smile:

Je me doute que pour arriver à cela, si c’est faisable, il va falloir créer de nouvelles grandeurs… Mais quoi, comment, et comment obtenir ce que je désire avoir ?

À terme, j’aimerais aussi pouvoir décompter ces consommations pour afficher une répartition des consommations sous forme de camembert (je ne retrouve plus le sujet où je l’ai vu sur le forum…) de toute l’énergie consommée des différentes prises connectées que j’ai mises, avec forcément une dernière énergie autre qui est cette différence entre la totalité de l’énergie consommée donnée par mon ZLinky moins les consommations des prises connectées.

J’espère que ne je me suis pas trop embrouillé les touches en tentant d’expliquer tout ça.

Merci d’avance :slight_smile:
Et bonne journée

Salut
Tu dois créer une nouvelle entrée « compteur de services publics » :

Puis tu la configure avec un cycle quotidien:

Il y a cette discussion à laquelle tu as aussi participé.
Tu n’as pas trouvé ton bonheur dans la réponse de @WarC0zes ?
Besoin d’aide pour Energy Card détaillée en dehors du dashboard energy - Entraide Home Assistant - Home Assistant Communauté Francophone (hacf.fr)

Ha merci beaucoup @Gilles2 :smiling_face_with_three_hearts:
C’est effectivement ce sujet que je ne retrouvais plus :sweat_smile:
Je vais le laisser ouvert ^^
et surtout aller essayer ce qui est donné ^^
Je reviendrais ici si jamais ça coince :wink:

@WarC0zes Dans l’autre sujet, tu as proposé ce que je viens de citer.
Je viens de tester, mais ça ne semble pas fonctionner comme ça le devrait…


L’énergie qui est définie dans le graphique ne correspond pas aux consommations journalières.
Par exemple aujourd’hui pour les serveurs, j’en suis à 1,3 kWh et pas 0,05 kWh :

Une idée de si c’est le comportement normal de la carte que tu as proposé ? ou pas ?

Il me faudra essayer la carte de @Pyroaction ( ici ).

Salut,
c’était un exemple que je t’es montrer, mais il y a des modifications. C’est pas copier /coller c’est bon .

le soucis viendrais pas de c’est option, qui divise par 1000 la valeur ?
a enlever.

Effectivement en suoprimant le /1000 j’ai les valeurs en adéquation avec la consommation :


Mais ça reste les valeurs cumulées.

Je voudrais avoir la consommation sur les tranches de 30 minutes par exemple. Pour voir quand il y a un pic de consommation.
Exemple : 10 kWh en une journée.
Avec 0 entre 0h et 12h, 5kWh entre 12h et 12h30 et encore 5 entre 13h et 13h30 .
Un graphe en histogramme donnerait des barres à 0 jusqu’à 12h, une barre à 5 kWh jusqu’à 12:30 et encore à zéro jusqu’à 13:00 et encore une barre à 5 kWh de 13:00 à 13:30. Puis 0 ensuite.

Y a-t’il moyen d’avoir ça ?

Salut,
C’est ces options qui faut éditer.

func Options

Name Since Description
raw v1.0.0 Displays all the state history as known by Home Assistant
avg v1.0.0 Will return the average of all the states in each bucket
min v1.0.0 Will return the smallest state of each bucket
max v1.0.0 Will return the biggest state of each bucket
last v1.0.0 Will return the last state of each bucket
first v1.0.0 Will return the first state of each bucket
sum v1.0.0 Will return the sum of all the states in each bucket
median v1.0.0 Will return the median of all the states in each bucket
delta v1.0.0 Will return the delta between the biggest and smallest state in each bucket
diff v1.4.0 Will return the difference between the last and the first entry in the bucket

group_by Options

Name Type Default Since Description
func string raw v1.0.0 See func
duration string 1h v1.0.0 If func is not raw only. It builds buckets of states over duration period of time. Doesn’t work for months. Eg of valid values: 2h, 1d, 10s, 25min, 1h30, …

Bonsoir,

@WarC0zes
J’ai joué un peu avec ces options.

Code yaml
type: custom:apexcharts-card
graph_span: 24h
span:
  start: day
update_interval: 60sec
all_series_config:
  stroke_width: 2
now:
  show: true
  label: "↓ Maintenant ↓"
apex_config:
  chart:
    height: 220px
    type: area
  legend:
    show: false
    position: top
  xaxis:
    labels:
      show: true
      showAlways: true
header:
  show: true
  show_states: true
  colorize_states: true
  title: Conso. sur la journée
series:
  - entity: sensor.smartplug_serveurbureau_energy
    name: Serveurs
    color: Gold
    type: column
    float_precision: 2
    unit: ' kWh'
    group_by:
      func: diff
      duration: 1h
      start_with_last: true
  - entity: sensor.smartplug_cointv_energy
    name: Coin-TV
    color: royalblue
    type: column
    unit: ' kWh'
    float_precision: 2
    group_by:
      func: diff
      duration: 1h
  - entity: sensor.smartplug_coinbox_energy
    name: Coin-Box
    color: DimGray
    type: column
    unit: kWh
    float_precision: 2
    group_by:
      func: diff
      duration: 1h
  - entity: sensor.smartplug_garage_energy
    name: Switch Garage
    color: DarkOrange
    type: column
    unit: ' kWh'
    float_precision: 2
    group_by:
      func: diff
      duration: 1h

Les histogrammes sont je pense corrects, aux vues de l’augmentation de l’énergie consommée de la prise des serveurs :

Cependant je ne trouve pas le group_by / duration adéquat…
Et je n’ai plus aucune valeur affichée en haut.

Quelques exemples (avec type: line et curve: stepline :





J’arrête là les screenshots ^^

Du coup, ce genre de représentation ne me convient pas, je pense à cause de l’augmentation pas assez importante à la demi-heure…

Je pense que je vais partir sur la représentation en camembert de @Pyroaction

Mais pour ça il me faut créer des utility_meter à l’heure, au jour etc… comme il a fait.

En revanche, je ne comprends pas la formule du formatter: ici :

apex_config:
  plotOptions:
    pie:
      donut:
        labels:
          show: true
          total:
            show: true
            label: Total
            formatter: >
              EVAL:function(w) { return w.globals.seriesTotals.reduce((a, b) =>
              {return (a + b)} , 0).toFixed(1) + " kWh" }

Elle fonctionnera avec mes valeurs sans que j’aie à modifier quelque chose ?
Que sont les a, b, w ? globals.seriesTotals.reduce c’est une fonction liée à la grandeur w ? Je n’aurais pas besoin d’y toucher ?

Encore merci pour votre aide :innocent:

Je te laisse trouver ou voir si d’autre utilisateur on des solutions, car je suis pas un pro de apex-chart.

1 « J'aime »

Je sais que history graph n’est plus supporté, mais je pense que ça répondrait à ton objectif.
Ci-dessous la carte de consommation que j’ai mise en place:


Ici le pas est de 10min, mais tu meux naviguer dans le temps et avoir une vue à l’heure, à la journée, etc.

1 « J'aime »

Ça m’intéresse :slight_smile:
Mais si c’est plus supporté, ça fonctionne encore ? et pour combien de temps ?
Il va y avoir un remplaçant ?

Lit ce message du dev Carte explorer et bugs? - #38 par SomeRandomGuy

1 « J'aime »

Oui, j’ai bien lu ce message. Ma conclusion est que cela a des chances de fonctionner pour un bon moment :slight_smile: Merci @SomeRandomGuy

1 « J'aime »

Ok donc tant mieux ^^

@Pyroaction
Ca y est, j’ai eu un peu de temps pour bricoler une carte comme la tienne :slight_smile:
Merci pour le coup de main avec ton code que j’ai du adapter un peu :slight_smile:

J’ai encore quelques peaufinages à faire niveau couleurs, mais je pense que je vais rester là-dessus, avec en plus les graphes des puissances instantanées (réactives en VA certes… Mais pas loin de la puissance en W).

Code de la carte journée
type: custom:apexcharts-card
chart_type: donut
header:
  title: Répartition de la consommation sur la journée (kWh)
  show: true
  show_states: false
  colorize_states: true
apex_config:
  plotOptions:
    pie:
      donut:
        labels:
          show: true
          total:
            show: true
            label: Total
            formatter: >
              EVAL:function(w) { return w.globals.seriesTotals.reduce((a, b) =>
              {return (a + b)} , 0).toFixed(1) + " kWh" }
series:
  - entity: sensor.serveurs_energy_daily
    name: Serveurs
    type: column
    unit: ' kWh'
    color: Green
  - entity: sensor.switch_garage_energy_daily
    name: Switch Garage
    type: column
    unit: ' kWh'
    color: Purple
  - entity: sensor.cointv_energy_daily
    name: Coin TV
    type: column
    unit: ' kWh'
    color: rgb(132,104,134)
  - entity: sensor.bureau_imac_energy_daily
    name: iMac Bureau
    type: column
    unit: ' kWh'
    color: rgb(92,77,56)
  - entity: sensor.coin_box_energy_daily
    name: Coin Box
    type: column
    unit: kWh
    color: rgb(80,252,226)
  - entity: sensor.frigo_energy_daily
    name: Frigo
    type: column
    unit: ' kWh'
    color: Darkturquoise
  - entity: sensor.cafetiere_energy_daily
    name: Cafetière
    type: column
    unit: ' kWh'
    color: Lightgreen
  - entity: sensor.zlinky_energy_daily
    name: Autre
    color: grey
    transform: >-
      return parseFloat(x) -
      parseFloat(hass.states['sensor.serveurs_energy_daily'].state)-
      parseFloat(hass.states['sensor.switch_garage_energy_daily'].state)-
      parseFloat(hass.states['sensor.cointv_energy_daily'].state)-
      parseFloat(hass.states['sensor.bureau_imac_energy_daily'].state)-
      parseFloat(hass.states['sensor.coin_box_energy_daily'].state)-
      parseFloat(hass.states['sensor.frigo_energy_daily'].state)-
      parseFloat(hass.states['sensor.cafetiere_energy_daily'].state)
Code de la carte semaine
type: custom:apexcharts-card
chart_type: donut
header:
  title: Répartition de la consommation sur la semaine (kWh)
  show: true
  show_states: false
  colorize_states: true
apex_config:
  plotOptions:
    pie:
      donut:
        labels:
          show: true
          total:
            show: true
            label: Total
            formatter: >
              EVAL:function(w) { return w.globals.seriesTotals.reduce((a, b) =>
              {return (a + b)} , 0).toFixed(1) + " kWh" }
series:
  - entity: sensor.serveurs_energy_weekly
    name: Serveurs
    type: column
    unit: ' kWh'
    color: Green
  - entity: sensor.switch_garage_energy_weekly
    name: Switch Garage
    type: column
    unit: ' kWh'
    color: Purple
  - entity: sensor.cointv_energy_weekly
    name: Coin TV
    type: column
    unit: ' kWh'
    color: rgb(132,104,134)
  - entity: sensor.bureau_imac_energy_weekly
    name: iMac Bureau
    type: column
    unit: ' kWh'
    color: rgb(92,77,56)
  - entity: sensor.coin_box_energy_weekly
    name: Coin Box
    type: column
    unit: kWh
    color: rgb(80,252,226)
  - entity: sensor.frigo_energy_weekly
    name: Frigo
    type: column
    unit: ' kWh'
    color: Darkturquoise
  - entity: sensor.cafetiere_energy_weekly
    name: Cafetière
    type: column
    unit: ' kWh'
    color: Lightgreen
  - entity: sensor.zlinky_energy_weekly
    name: Autre
    color: grey
    transform: >-
      return parseFloat(x) -
      parseFloat(hass.states['sensor.serveurs_energy_weekly'].state)-
      parseFloat(hass.states['sensor.switch_garage_energy_weekly'].state)-
      parseFloat(hass.states['sensor.cointv_energy_weekly'].state)-
      parseFloat(hass.states['sensor.bureau_imac_energy_weekly'].state)-
      parseFloat(hass.states['sensor.coin_box_energy_weekly'].state)-
      parseFloat(hass.states['sensor.frigo_energy_weekly'].state)-
      parseFloat(hass.states['sensor.cafetiere_energy_weekly'].state)

Pour ces cartes j’ai du créer moi aussi des utility_meters :

utility_meters.yaml
# ╔════════════════════════════════════════════════════════════════════════════╗
# ║ Utility Meter : Consommation totale ZLinky                                 ║
# ║   - pendant 1 heure ;                                                      ║
# ║   - pendant 1 jour ;                                                       ║
# ║   - pendant 1 mois ;                                                       ║
# ║   - pendant 1 année.                                                       ║
# ╚════════════════════════════════════════════════════════════════════════════╝
zlinky_energy_hourly:
  source: sensor.zlinky_tic_east
  cycle: hourly
zlinky_energy_daily:
  source: sensor.zlinky_tic_east
  cycle: daily
zlinky_energy_weekly:
  source: sensor.zlinky_tic_east
  cycle: weekly
zlinky_energy_monthly:
  source: sensor.zlinky_tic_east
  cycle: monthly
zlinky_energy_yearly:
  source: sensor.zlinky_tic_east
  cycle: yearly

# Essai avec template totale conso toutes couleurs
zlinky_somme_toutes_couleurs_energy_hourly:
  source: sensor.zlinky_somme_conso_hc_hp_toutes_couleurs
  cycle: hourly

zlinky_somme_toutes_couleurs_energy_daily:
  source: sensor.zlinky_somme_conso_hc_hp_toutes_couleurs
  cycle: daily

  # ╔════════════════════════════════════════════════════════════════════════════╗
  # ║ Utility Meter : Consommation Serveurs                                      ║
  # ║   - pendant 1 heure ;                                                      ║
  # ║   - pendant 1 jour ;                                                       ║
  # ║   - pendant 1 mois ;                                                       ║
  # ║   - pendant 1 année.                                                       ║
  # ╚════════════════════════════════════════════════════════════════════════════╝
serveurs_energy_daily:
  source: sensor.smartplug_serveurbureau_energy
  cycle: daily
serveurs_energy_weekly:
  source: sensor.smartplug_serveurbureau_energy
  cycle: weekly
serveurs_energy_monthly:
  source: sensor.smartplug_serveurbureau_energy
  cycle: monthly
serveurs_energy_yearly:
  source: sensor.smartplug_serveurbureau_energy
  cycle: yearly

  # ╔════════════════════════════════════════════════════════════════════════════╗
  # ║ Utility Meter : Consommation Switch garage                                 ║
  # ║   - pendant 1 heure ;                                                      ║
  # ║   - pendant 1 jour ;                                                       ║
  # ║   - pendant 1 mois ;                                                       ║
  # ║   - pendant 1 année.                                                       ║
  # ╚════════════════════════════════════════════════════════════════════════════╝
switch_garage_energy_daily:
  source: sensor.smartplug_garage_energy
  cycle: daily
switch_garage_energy_weekly:
  source: sensor.smartplug_garage_energy
  cycle: weekly
switch_garage_energy_monthly:
  source: sensor.smartplug_garage_energy
  cycle: monthly
switch_garage_energy_yearly:
  source: sensor.smartplug_garage_energy
  cycle: yearly

  # ╔════════════════════════════════════════════════════════════════════════════╗
  # ║ Utility Meter : Consommation Coint TV                                      ║
  # ║   - pendant 1 heure ;                                                      ║
  # ║   - pendant 1 jour ;                                                       ║
  # ║   - pendant 1 mois ;                                                       ║
  # ║   - pendant 1 année.                                                       ║
  # ╚════════════════════════════════════════════════════════════════════════════╝
cointv_energy_daily:
  source: sensor.smartplug_cointv_energy
  cycle: daily
cointv_energy_weekly:
  source: sensor.smartplug_cointv_energy
  cycle: weekly
cointv_energy_monthly:
  source: sensor.smartplug_cointv_energy
  cycle: monthly
cointv_energy_yearly:
  source: sensor.smartplug_cointv_energy
  cycle: yearly

  # ╔════════════════════════════════════════════════════════════════════════════╗
  # ║ Utility Meter : Consommation Bureau iMac                                   ║
  # ║   - pendant 1 heure ;                                                      ║
  # ║   - pendant 1 jour ;                                                       ║
  # ║   - pendant 1 mois ;                                                       ║
  # ║   - pendant 1 année.                                                       ║
  # ╚════════════════════════════════════════════════════════════════════════════╝
bureau_imac_energy_daily:
  source: sensor.smartplug_bureau_imac_energy
  cycle: daily
bureau_imac_energy_weekly:
  source: sensor.smartplug_bureau_imac_energy
  cycle: weekly
bureau_imac_energy_monthly:
  source: sensor.smartplug_bureau_imac_energy
  cycle: monthly
bureau_imac_energy_yearly:
  source: sensor.smartplug_bureau_imac_energy
  cycle: yearly

  # ╔════════════════════════════════════════════════════════════════════════════╗
  # ║ Utility Meter : Consommation Coin Box.                                     ║
  # ║   - pendant 1 heure ;                                                      ║
  # ║   - pendant 1 jour ;                                                       ║
  # ║   - pendant 1 mois ;                                                       ║
  # ║   - pendant 1 année.                                                       ║
  # ╚════════════════════════════════════════════════════════════════════════════╝
coin_box_energy_daily:
  source: sensor.smartplug_coinbox_energy
  cycle: daily
coin_box_energy_weekly:
  source: sensor.smartplug_coinbox_energy
  cycle: weekly
coin_box_energy_monthly:
  source: sensor.smartplug_coinbox_energy
  cycle: monthly
coin_box_energy_yearly:
  source: sensor.smartplug_coinbox_energy
  cycle: yearly

  # ╔════════════════════════════════════════════════════════════════════════════╗
  # ║ Utility Meter : Consommation Frigo.                                        ║
  # ║   - pendant 1 heure ;                                                      ║
  # ║   - pendant 1 jour ;                                                       ║
  # ║   - pendant 1 mois ;                                                       ║
  # ║   - pendant 1 année.                                                       ║
  # ╚════════════════════════════════════════════════════════════════════════════╝
frigo_energy_daily:
  source: sensor.smartplug_frigo_energy
  cycle: daily
frigo_energy_weekly:
  source: sensor.smartplug_frigo_energy
  cycle: weekly
frigo_energy_monthly:
  source: sensor.smartplug_frigo_energy
  cycle: monthly
frigo_energy_yearly:
  source: sensor.smartplug_frigo_energy
  cycle: yearly

  # ╔════════════════════════════════════════════════════════════════════════════╗
  # ║ Utility Meter : Consommation Cafetière.                                    ║
  # ║   - pendant 1 heure ;                                                      ║
  # ║   - pendant 1 jour ;                                                       ║
  # ║   - pendant 1 mois ;                                                       ║
  # ║   - pendant 1 année.                                                       ║
  # ╚════════════════════════════════════════════════════════════════════════════╝
cafetiere_energy_daily:
  source: sensor.smartplug_cafetiere_energy
  cycle: daily
cafetiere_energy_weekly:
  source: sensor.smartplug_cafetiere_energy
  cycle: weekly
cafetiere_energy_monthly:
  source: sensor.smartplug_cafetiere_energy
  cycle: monthly
cafetiere_energy_yearly:
  source: sensor.smartplug_cafetiere_energy
  cycle: yearly

Et j’ai aussi voulu voir si mon sensor.zlinky_tic_east qui est censé être la consommation cumulée fournie par le ZLinky_TIC était la même que l’ajout de toutes les consommations des HC/HP des différentes couleurs pour la journée en question, ou l’heure.

Code du template somme
# ╔══════════════════════════════════════════════════════════════════════════╗
# ║ Configuration pour la somme des consommations toutes couleurs TEMPO      ║
# ╚══════════════════════════════════════════════════════════════════════════╝

# Partie pour la dérivée des consommations HC/HP des différentes couleurs de jours
# Voir ce post : https://forum.hacf.fr/t/cle-zlinky-lixee-avec-zha-conbee2-remonter-dans-energie-hp-hc/9058/173

- sensor:
  - name: "ZLinky Somme Conso. HC_HP toutes couleurs"
    unique_id: "zlinky_somme_conso_HC_HP_toutes_couleurs"
    unit_of_measurement: "Wh"
    device_class: energy
    state_class: total_increasing
    state: >-
        {% set HCbleu = states('sensor.zlinky_tic_easf01')|float(default=0)*1000 %}
        {% set HPbleu = states('sensor.zlinky_tic_easf02')|float(default=0)*1000 %}
        {% set HCblanc = states('sensor.zlinky_tic_easf03')|float(default=0)*1000 %}
        {% set HPblanc = states('sensor.zlinky_tic_easf04')|float(default=0)*1000 %}
        {% set HCrouge = states('sensor.zlinky_tic_easf05')|float(default=0)*1000 %}
        {% set HProuge = states('sensorz.zlinky_tic_easf06')|float(default=0)*1000 %}
        {{ HCbleu + HPbleu + HCblanc + HPblanc +  HCrouge + HProuge | int(default=0) }}
    availability: "{{ states('sensor.zlinky_tic_easf01')|is_number and states('sensor.zlinky_tic_easf02')|is_number and states('sensor.zlinky_tic_easf03')|is_number and states('sensor.zlinky_tic_easf04')|is_number and states('sensor.zlinky_tic_easf05')|is_number and states('sensor.zlinky_tic_easf06')|is_number }}"

Et il y un pas grand-chose de décalage entre les deux sur une heure, ou sur une journée

Sur 1h, j’ai 2Wh de différence :

Sur la journée, j’ai 4 Wh de différence :

Quelqu’un a-t-il une idée d’où peut venir cette différence ?

(je vais faire un autre sujet sur comment avoir un beau switch pour une prise connectée qui permette d’allumer ce qui est dessus ou de tout couper, car j’ai un truc qui ne le plait pas trop…)