Graphique consommation mensuel

Merci beaucoup, je vais essayer de modifier ce code pour avoir la valeur en €

type: vertical-stack
cards:
  - type: energy-date-selection
  - type: energy-usage-graph
    entities:
      - entity: sensor.total_energy_mensuel
        name: Achat d'électricité
      - entity: sensor.vente_surplus_mois
        name: Vente d'électricité
    group_by: month
    unit_of_measurement: €
    show_legend: true
    show_state: false
    state_card_mode: graph
    state_card_graph: line

Pour l’instant je n’ai que les kWh et pourtant se sont les capteurs en euros

Ta pas compris.
Les cartes energy ont pas de configuration a faire et d’option possible. Tu peu rajouter du code pour l’unité ou autre mais ca fonctionnera pas.

regarde dans l’éditeur ca fait rien ton code qui correspond pas a la carte ( j’ai modifier les entité pour te montré ):


ce bout de code est d’une carte entites et n’a rien a faire dans ton code pour la carte energy-usage-graph.

   entities:
      - entity: sensor.total_energy_mensuel
        name: Achat d'électricité
      - entity: sensor.vente_surplus_mois
        name: Vente d'électricité
    group_by: month
    unit_of_measurement: €
    show_legend: true
    show_state: false
    state_card_mode: graph
    state_card_graph: line

Faut utiliser plutot apexcharts dans ces cas la, avec l’option:

graph_span: 1month

faut regarder la doc , c’est bien détailler https://github.com/RomRider/apexcharts-card

Ok oui je n’avais pas compris.
apexcharts ne fonctionne pas avec

graph_span: 1month

Ou alors min code n’est pas bon…

type: custom:apexcharts-card
header:
  show: true
  title: Achat et vente d'électricité sur 12 mois
graph_span: 12Month
apex_config:
  chart:
    type: area
    height: 400
  stroke:
    show: true
    width: 1
    curve: smooth
  legend:
    show: true
  fill:
    type: gradient
    gradient:
      shadeIntensity: 0.1
      opacityFrom: 0.25
      opacityTo: 1
      inverseColors: true
      stops:
        - 0
        - 50
        - 100
series:
  - color: rgb(108,218,231)
    entity: sensor.total_energy_mensuel
    name: Achat d'électricité
    float_precision: 2
    type: column
    group_by:
      func: sum
      duration: 1Month
      fill: last
    show:
      datalabels: true
  - color: rgb(163,229,113)
    entity: sensor.vente_surplus_mois
    name: Vente d'électricité
    float_precision: 2
    type: column
    group_by:
      func: sum
      duration: 1Month
      fill: last
    show:
      datalabels: true

Je me rapproche de la finalité

C’est month en minuscule ou m.
d = day w = week m = month y = year

1 « J'aime »

Salut, j’ai réduit mon code pour tenter de voir ou j’avais commis des erreurs.
Il est presque fonctionnelle :

type: custom:apexcharts-card
graph_span: 12month
header:
  show: true
  title: Achat et vente d'électricité
series:
  - entity: sensor.total_energy_mensuel
    name: Achat d'électricité
    type: column
    color: rgb(108,218,231)
  - entity: sensor.vente_surplus_mois
    name: Vente d'électricité
    type: column
    color: rgb(163,229,113)

Le problème est l’échelle des ordonnées et cette grande barre qui se mettent. Du coup, on ne voit pas bien les 2 petits points à côté pour le mois en cours

Un exemple de config:
apex exemple

  - type: custom:apexcharts-card
    graph_span: 1d
    stacked: true
    now:
      show: true
      color: red
      label: Now
    update_interval: 60sec
    header:
      show: true
      title: Conso Maison Jour
      show_states: true
      colorize_states: true
    apex_config:
      xaxis:
        tooltip:
          enabled: false
      chart:
        type: area
        height: 160px
      stroke:
        show: true
        width: 4
        curve: smooth
      legend:
        show: false
    series:
      - entity: sensor.energy_home_box_total_daily
        name: Conso maison
        unit: kWh
        transform: return x / 1000;
        float_precision: 2
        color: royalblue
        type: column
        opacity: 0.8
        group_by:
          func: max
          duration: 30min
        show:
          datalabels: false
          extremas: max
      - entity: sensor.energy_home_box_cout_daily
        name: Coût
        unit: €
        float_precision: 2
        color: orange
        type: column
        opacity: 0.8
        group_by:
          func: max
          duration: 30min
        show:
          datalabels: false
          extremas: max

Pour les barres essaye en rajoutant a chaque entité:

        group_by:
          func: max
          duration: 1m

et utilise l’option pour coller les barres entre elle:

stacked: true

Ta un sujet sur apexchart et des exemples de configuration pour aider [CARTE] Apexcharts-card

Merci pour ton aide.
J’ai mis ce code, impossible de voir le résultat il tourne sans fin :confused:
Ma box devient pas assez puissante je suppose

type: custom:apexcharts-card
graph_span: 12month
stacked: true
header:
  show: true
  title: Achat et vente d'électricité
series:
  - entity: sensor.total_energy_mensuel
    name: Achat d'électricité
    type: column
    color: rgb(108,218,231)
    group_by:
          func: max
          duration: 1m
  - entity: sensor.vente_surplus_mois
    name: Vente d'électricité
    type: column
    color: rgb(163,229,113)
    group_by:
          func: max
          duration: 1m

Ta un problème d’espaces en trop sur func: et duration: , c’est 2 espaces en desous de group_by:

Merci, je suis repartie de zéro et écrit moi même le code. La boucle sans fin arrive dès que j’essaie de mettre

duration: 1

J’ai pas le temps de finir

Met ton nouveau code créer, sans le voir c’est difficile de trouver ton erreur.

Voilà désolé s’il y a du décalage je n’ai pas pu faire de copier coller du code en question car boucle sans fin. Celui là est récupéré dans la partie modèle de l’outil de développement. Ça s’arrête au 1er « duration »

type: custom:apexcharts-card
graph_span: 12month
stacked: true
header:
  show: true
  title: Achat et vente d'électricité
series:
  - entity: sensor.total_energy_mensuel
    name: Achat d'électricité
    type: column
    color: rgb(108,218,231)
    group_by:
      func: max
      duration: 1m
  - entity: sensor.vente_surplus_mois
    name: Vente d'électricité
    type: column
    color: rgb(163,229,113)
    group_by:
      func: max
      duration: 1m

Je suis repartie encore une fois de zéro car à chaque boucle sans fin, je supprime le tableau de bord ‹ test ›.
Je viens d’essayer avec la carte apexcharts-card et changé les capteurs. Ça à l’air de fonctionner mais je ne comprends pas tout du code (la partie data_generator)

type: custom:apexcharts-card
graph_span: 12month
stacked: true
header:
  show: true
  title: Achat et vente d'électricité
  show_states: true
  colorize_states: true
series:
  - entity: sensor.total_energy_mensuel
    name: Achat d'électricité
    color: rgb(108,218,231)
    data_generator: |
      // REMOVE ME
      const now = new Date();
      const data = [];
      for(let i = 0; i <= 24; i++) {
        data.push([now.getTime() - i * 1000 * 60 * 60, Math.floor((Math.random() * 10) + 1)])
      }
      return data.reverse();
  - entity: sensor.vente_surplus_mois
    name: Vente d'électricité
    color: rgb(163,229,113)
    type: column
    data_generator: |
      // REMOVE ME
      const now = new Date();
      const data = [];
      for(let i = 0; i <= 24; i++) {
        data.push([now.getTime() - i * 1000 * 60 * 60, Math.floor((Math.random() * 10) + 1)])
      }
      return data.reverse();

ton entité sensor.total_energy_mensuel et sensor.vente_surplus_mois, es tu sur d’avoir 1 ans d’historique sur ces entités ?

Par defaut, ta 10j d’historique dans la base de donnée.

purge_keep_days entier ( facultatif , par défaut : 10 )

Spécifiez le nombre de jours d’historique à conserver dans la base de données de l’enregistreur après une purge.

1 « J'aime »

Ha non c’est le mois en cours :pensive:

Voila pourquoi ca mouline, ta pas les historiques requis et apexchart délire complet.
C’est pour ca que sur 7 jours ca fonctionne, mais sur 12 mois :crazy_face:

Bon @WarC0zes , encore une question de noob : comment crées-tu les sensors de conso et coût journalier (à partir de données Zlinky, j’ai viré myelctricaldata) ?

Ta un sujet dessus Créer un tableau de bord équivalent de suivi conso sur jeedom - #5 par cob94440

Faut passer par des sensors template et utility_meter.

Moi j’ai additionné les Hp et HC ( dans template.yaml)

- sensor:
    - name: zlinky_metering_HC_HP_sum
      unit_of_measurement: "Wh"
      device_class: energy
      state_class: total_increasing
      state: >-
        {% if is_state('sensor.0x00158d0005d299cf_hchc', 'unknown') %}
          unknown
        {% elif is_state('sensor.0x00158d0005d299cf_hchp', 'unknown') %}
          unknown
        {% else %}
          {% set HC = states('sensor.0x00158d0005d299cf_hchc') | float*1000 %}
          {% set HP = states('sensor.0x00158d0005d299cf_hchp') | float*1000 %}
          {{ HC + HP | int }}
        {% endif %}

dans utility_meter.yaml, pour calculer la conso journaliere des HP et HC:

energie_quotidienne_home:
  source: sensor.zlinky_metering_hc_hp_sum
  cycle: daily
  tariffs:
    - hp
    - hc

dans sensor.yaml ( j’ai pas utiliser le nouveau format template, faut que je mette a jour):

- platform: template
  sensors:
    energy_home_cout_daily:
      friendly_name: 'Energie home jour € hp+hc'
      value_template: "{{ (((states('sensor.energie_quotidienne_home_hp')|float)*states('input_number.box_prix_hp')|float) + ((states('sensor.energie_quotidienne_home_hc')|float)*states('input_number.box_prix_hc')|float)) /1000 |round (3) }}"
      unit_of_measurement: "€"
      unique_id: energy_home_cout_daily
    energy_home_total_daily:
      friendly_name: 'Energie home jour consommée'
      value_template: "{{ (states('sensor.energie_quotidienne_home_hp')|float + states('sensor.energie_quotidienne_home_hc')|float) |round(2) }}"
      unit_of_measurement: "Wh"
      unique_id: energy_home_total_daily

J’ai créer deux input number pour le prix:

Et pour finir, la création d’une automatisation, qui va changer les tarifs suivant mes heures HP et HC:

alias: Energie Maison Tarif
description: ""
trigger:
  - platform: time
    at: "04:56:00"
    variables:
      tariff: hp
  - platform: time
    at: "20:56:00"
    variables:
      tariff: hc
condition: []
action:
  - service: select.select_option
    target:
      entity_id:
        - select.energie_quotidienne_home
    data:
      option: "{{ tariff }}"
mode: single

select.energie_quotidienne_home est une entité créer automatiquement par utility_meter pour savoir quel tarif est utiliser.

Je pensais que apexcharts-card gérait seul :joy:
Voilà j’ai créé ceci :

#enregistrement des capteurs mensuel 
recorder:
  include:
    entities:
      - sensor.vente_surplus_mois
      - sensor.total_energy_mensuel
  purge_interval: 1
  purge_keep_days: 730

Je ne sais pas si c’est bon ou pas car ça mouline toujours…
Il va falloir que j’investisse dans un disque dur externe ça va prendre de la place

Du coup je me demande si faut mettre des capteurs journalier ou les capteurs mensuel. Tu en penses quoi ?

Moi je serais toi, j’utiliserai le panneau énergie, qui te fera le calcul conso/coût et garde l’historique sur du long-terme. Le panneau energy est pas purger sur la DB, ca reste a vie.

Après tu utilise les cartes energy avec le sélecteur et tu choisir l’affichage par jour , mois , année.

energy

Oui mais il est en kWh, j’aurais préféré avoir des euros