[CARTE] Apexcharts-card

A part de layout…t’as un autre défi car tu ne peux pax grouper par ‹ month › dans apexcharts (je sais que plotly le peut). Tu doit utiliser un autre sensor, p.e. utility meter / month
Et pour le début, sans offset

span:
  start: year

Merci à toi, je vais regarder.

Bonjour,
peut t’on afficher l’unité avec la valeur du graphique ?
apex graph

Tu devrait utiliser les valeur statistics non ?

Je cherche également a faire quelque chose dans ce genre, (en gros avoir une consomation « restante » qui serait la conso global(zlinky) moins la somme de tous les appareil.
De ce que j’ai compris les données « statistic » sont consultable via une API longterm :

Mes connaissances s’arrêtent là

Bonjour,
Où est-il le post qui explique cette carte ?

Bonjour,

J’ai quelques graphiques pour ma production solaire.

Pourquoi sur mon graphique mensuel les mesures commencent le 2 du mois et non le 1 ?

Merci


card_mod:
  style: |
    ha-card {
      background-color: rgba(10,10,10,0.6);
      box-shadow: var( --ha-card-box-shadow, 0px 2px 1px -1px rgba(255, 255, 255, 0.2), 0px 1px 1px 0px rgba(255, 255, 255, 0.14), 0px 1px 3px 0px rgba(255, 255, 255, 0.12) ); 
    }
type: custom:apexcharts-card
graph_span: 1year
span:
  start: year
stacked: false
header:
  show: true
  show_states: true
  title: Pruduction mensuelle
apex_config:
  yaxis:
    - title:
        text: Production
      decimalsInFloat: 2
  chart:
    type: area
    height: auto
  stroke:
    show: true
    width: 1
  legend:
    show: true
  fill:
    type: gradient
    gradient:
      shadeIntensity: 0.1
      opacityFrom: 0.25
      opacityTo: 1
      inverseColors: true
      stops:
        - 0
        - 90
        - 100
series:
  - color: Green
    entity: sensor.shelly_shem_244cab4326d4_2_total_consumption
    name: Production par mois
    type: column
    float_precision: 2
    group_by:
      func: diff
      duration: 1month
    show:
      datalabels: true

hello
Je m y prends surement mal aussi je viens demander de l’aide
J’ai cree 4 templates

#Calcul de la somme HP   
- sensor:
  - name: zlinky_metering_HP
    unique_id: zlinky_metering_HP
    unit_of_measurement: "Wh"
    device_class: energy
    state_class: total_increasing
    state: >-
     {% set HPB = states('sensor.lixee_easf02')|float(default=0)*1000 %}
     {% set HPBA = states('sensor.lixee_easf04')|float(default=0)*1000 %}
     {% set HPR = states('sensor.lixee_easf06')|float(default=0)*1000 %}
     {{ ((HPB + HPBA + HPR) - 1884063.0)| int(default=0) }}
    availability: "{{ states('sensor.lixee_easf02')|is_number and states('sensor.lixee_easf04')|is_number and states('sensor.lixee_easf06')|is_number}}"
    
#Calcul de la somme HC    
- sensor:
  - name: zlinky_metering_HC
    unique_id: zlinky_metering_HC
    unit_of_measurement: "Wh"
    device_class: energy
    state_class: total_increasing
    state: >-
     {% set HCB = states('sensor.lixee_easf01')|float(default=0)*1000 %}
     {% set HCBA = states('sensor.lixee_easf03')|float(default=0)*1000 %}
     {% set HCR = states('sensor.lixee_easf05')|float(default=0)*1000 %}
     {{ ((HCB + HCBA + HCR) - 3557896.0)| int(default=0) }}
    availability: "{{ states('sensor.lixee_easf01')|is_number and states('sensor.lixee_easf03')|is_number and states('sensor.lixee_easf05')|is_number}}"
    
#Calcul de la somme HP HC   
- sensor:
  - name: zlinky_metering_HC_HP_sum
    unique_id: zlinky_metering_HC_HP_sum
    device_class: energy
    state_class: total_increasing
    unit_of_measurement: "Wh"
    state: >-
     {{ (states('sensor.zlinky_metering_HP') | float(0) |round(0)) + (states('sensor.zlinky_metering_HC') | float(0) |round(0))}}
    availability: "{{ states('sensor.zlinky_metering_HP')|is_number and states('sensor.zlinky_metering_HC')|is_number}}"
    
#Calcul du pourcentage HC/HP
- sensor:
  - name: zlinky_metering_pourcentage_hc_hp
    unique_id: zlinky_metering_pourcentage_jour_hc_hp
    state: "{{ (((states('sensor.zlinky_metering_hc')|float(1) / (states('sensor.zlinky_metering_hc_hp_sum')|float(1))))*100)|float(1)|round (2)}}"
    unit_of_measurement: "%"
    state_class: total_increasing
    availability: "{{ states('sensor.zlinky_metering_Hc')|is_number and states('sensor.zlinky_metering_hc_hp_sum')|is_number}}"

Avec ca j’affiche très bien cette carte

type: custom:apexcharts-card
cache: false
update_interval: 1h
header:
  standard_format: true
  show: false
  title: Consommation HP/HC
  show_states: true
span:
  end: day
graph_span: 7d
stacked: true
apex_config:
  fill:
    opacity: 1
    type: gradient
    gradient:
      shade: light
      type: horizontal
  grid:
    show: true
  xaxis:
    axisBorder:
      show: false
    axisTicks:
      show: false
  yaxis:
    show: true
series:
  - entity: sensor.zlinky_metering_hc
    type: column
    name: HC
    color: 5A6FE7
    opacity: 1
    group_by:
      duration: 1d
      func: diff
    show:
      datalabels: true
  - entity: sensor.zlinky_metering_hp
    type: column
    name: HP
    color: EA4234
    opacity: 1
    group_by:
      duration: 1d
      func: diff
    show:
      datalabels: true

Qui ressemble a ca
Capture d'écran 2023-08-24 165518
Je vaudrai afficher maintenantt sur une autre carte ou en haut sur la précédente l’évolution du pourcentage hc/total HC+HP
J’ai donc fait ca mais les valeurs afichées ne correspondent pas. Je ne comprends pas…

type: custom:apexcharts-card
span:
  end: day
graph_span: 4day
header:
  show: false
series:
  - entity: sensor.zlinky_metering_pourcentage_hc_hp
    type: line
    name: '% HC/H totale'
    group_by:
      func: min
      duration: 30min

En gros je voudrai juste le % sur la journée

Merci d’avance

Bj

essai un truc de ce genre ( a adapter a tes besoin )

sensor:
  - platform: template
    sensors:
      total_lixee_daily_24h_hc_kwh_percentage:
        friendly_name: "Total Lixee Daily 24h HC (kWh) - Pourcentage"
        unit_of_measurement: '%'
        value_template: "{{ (states('sensor.total_lixee_daily_24h_hc_kwh') | float / 24) * 100 }}"
        icon_template: mdi:percent
        attribute_templates:
          max_value: 100
          min_value: 0

qqqq

avec une carte apex

type: custom:apexcharts-card
chart_type: pie
header:
  show: true
  show_states: true
  colorize_states: true
  title: Conso en %
series:
  - entity: sensor.total_lixee_daily_24h_hc_kwh_pourcentage
    name: HC
  - entity: sensor.total_lixee_daily_24h_hp_kwh_pourcentage
    name: HP

version donut
gfdh

1 « J'aime »

Hello
merci pour le coup de main. Mais cela ne donne pas les bonnes valeurs
J’ai reussi a adapter ce graphique
Capture d'écran 2023-08-25 180724

avec ce code

type: custom:apexcharts-card
chart_type: donut
header:
  show: true
  title: Répartition énergétique du jour
  show_states: true
  colorize_states: true
update_interval: 1h
span:
  end: day
apex_config:
  dataLabels:
    formatter: |
      EVAL:function(value) {
        return value.toFixed(0) + " %";
      }
  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) + " Wh"
                }
series:
  - entity: sensor.zlinky_metering_hp
    name: Heures creuses
    float_precision: 1
    color: '#9B59B6'
    group_by:
      duration: 1d
      func: diff
  - entity: sensor.zlinky_metering_hc
    name: Heures pleines
    float_precision: 1
    color: '#C0392B'
    group_by:
      duration: 1d
      func: diff

Mais je suis pas fana de la presentation et j’aurai aime avoir une presentation en graphique sur 7 jours pas exemple avec HP HC cote a cote
et je n’y arrive pas… merci

Salut !

Quelqu’un pourrait me dire pourquoi le degradé de mes colonnes est dans ce sens la ? J’aimerais qu’il soit vertical et non horizontal.
Merci pour votre aide ! :wink:

type: custom:apexcharts-card
header:
  show: true
  title: Précipitations sur 30 jours
experimental:
  color_threshold: true
  brush: true
graph_span: 30d
brush:
  selection_span: 7d
apex_config:
  fill:
        type: gradient
        gradient:
          shadeIntensity: 0.1
          opacityFrom: 0.25
          opacityTo: 1
          inverseColors: true
          stops:
            - 0
            - 90
            - 100
series:
  - entity: sensor.precipitations_aujourd_hui
    fill_raw: last
    stroke_width: 2
    color: 0080DE
    type: column
    show:
      in_brush: true
      in_chart: false
  - entity: sensor.precipitations_aujourd_hui
    name: Aujourd'hui
    type: column
    fill_raw: last
    stroke_width: 1
    color: 0080DE
    opacity: 0.5
    show:
      extremas: max
      legend_value: true
      in_brush: false
    group_by:
      duration: 12h
      func: last
      fill: last
  - entity: sensor.precipitations_aujourd_hui
    name: Moyenne 24h
    stroke_width: 3
    fill_raw: last
    color: 102DFC
    group_by:
      func: avg
      duration: 24h
    show:
      legend_value: false
      in_brush: false

1

Une question, la carte fonctionne avec les données statistiques (durée illimitée) ou uniquement sur les données du recorder ?

Bonjour,
je sais pas, mais tu le vois facilement. Si tu a des données après le nombre de jour max du recorder, ce sont des Long-term Statistics.

EDIT:
Oui, apexcharts-card utilise les Long-term Statistics.
statistics object v2.0.0 Use HA statistical data (long-term). See statistics

OK, je n’avais pas la mbnne syntax: ça fonctionne ça:

type: custom:apexcharts-card
series:
  - entity: sensor.temperature_salon
    type: column
    statistics: 
      type: mean 
graph_span: 30d
span:
  end: week

merci !

Comme ca ?

type: custom:apexcharts-card
series:
  - entity: sensor.temperature_salon
    type: column
    statistics: 
      type: mean 
      period: month
      align: end
graph_span: 30d
span:
  end: week
1 « J'aime »

Bonjour à tous.
Je souhaitais suivre ma consommation de pellets (poele à granulés) dans le dashborad energie mais a priori à part eau/elec/gaz, on ne peut pas mettre autre chose. (dommage)
Je souhaite donc passer par cette carte.
Ma question : j’ai l’impression qu’on ne peut avoir que des périodes glissantes (7 derniers jours, 14 derniers jours…). Comment faire pour avoir les graphs sur : la semaine EN COURS, le mois d’OCTOBRE?
Merci!
@Arnault : j’ai l’impression que tu ne veux vraiment pas partager ta carte!!! :rofl:

Si tu utilise ça peut-être?

graph_span: 7d
span:
  start: week

Non, pareil, ca donne un graph sur les septs derniers jours glissants.

La preuve que ça marche :slight_smile:

1 « J'aime »

Bien sur que ca fonctionne…sur les 9 derniers jours « glissants »!, et ce n’est pas ce que je veux.
Sinon j’ai reussi comme ca :
Sur l’année en cours:


Sur le mois en cours:

Rest plus qu’à trouver comment obtenir une retention des données qui a priori est fixée à 10 jours (données purgées automatiquement ensuite…)