Comme @saniho l’a répondu, c’est normal parce que Home Assistant remplit son historique à partir des informations temps réel, alors que parfois Enedis modifie des informations dans le passé (à mesure qu’elles deviennent correctes). La carte Enedis ne récupère pas les infos depuis l’historique de Home Assitant (le recorder
) mais dans les attributs du sensor Enedis.
Et c’est là que tu peux jouer: tu peux créer un historique de toutes pièces à partir des attributs, en utilisant la fonction data_generator
d’ApexChartsCard
. La documentation est ici: GitHub - RomRider/apexcharts-card: 📈 A Lovelace card to display advanced graphs and charts based on ApexChartsJS for Home Assistant (désolé pas de lien mon compte est trop récent) avec un exemple qui devrait te permettre de t’en sortir.
Salut Arnault, ta carte utilise seulement le custom apexcharts-card ?
Bonjour @Pierre_Ma , j’utilise essentiellement les custom:button-card et j’y ai intégré apexcharts dedans
Bonjour @Arnault tu partagerai le code de ce type de carte ?
Hello tous le monde !
Je sais pas si je peux poster içi, n’hésitez pas à me dire si je dois ouvrir un post spécifique.
Voilà je n’arrive pas à fixer le nombre de décimale à « 1 » du total de mon donut. Après pas mal de recherche et d’essai, je pense que la solution est dans l’option « formatter » mais je n’arrive pas à comprendre comment fonctionne cette partie. juste qu’elle prend le paramètre « w » qui semble contenir les objets ce qui ne me parle pas vraiment.
Si quelqu’un peut m’aider à comprendre comment utiliser ceci , ce serait super cool !
Extrait de la doc dispo ICI
Mon soucis de décimale sur le total :
Le code de ma carte :
type: custom:apexcharts-card
chart_type: donut
header:
show: true
title: Répartition énergétique journalière
show_states: true
colorize_states: true
apex_config:
dataLabels:
formatter: |
EVAL:function(value) {
return value.toFixed(0) + "%";
}
plotOptions:
pie:
donut:
labels:
show: true
total:
show: true
series:
- entity: sensor.bilan_autoconso_gain_3000wc_now
name: Prod. solaire
float_precision: 1
color: '#2ECC71'
- entity: sensor.daily_lg_chem_total_energy_saved
name: Fourn. batteries
float_precision: 1
color: '#3498DB'
- entity: sensor.daily_lg_chem_simulated_grid_export_after_battery_charging
name: Réinj. ENEDIS
float_precision: 1
color: '#8E44AD'
- entity: sensor.daily_lg_chem_simulated_grid_import_after_battery_discharging
name: Conso ENEDIS
float_precision: 1
color: '#E74C3C'
Je me réponds à moi même, j’ai finalement trouvé la solution :
type: custom:apexcharts-card
chart_type: donut
header:
show: true
title: Répartition énergétique journalière
show_states: true
colorize_states: true
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) + " kWh"
}
series:
- entity: sensor.bilan_autoconso_gain_3000wc_now
name: Prod. solaire
float_precision: 1
color: '#2ECC71'
- entity: sensor.daily_lg_chem_total_energy_saved
name: Fourn. batteries
float_precision: 1
color: '#3498DB'
- entity: sensor.daily_lg_chem_simulated_grid_export_after_battery_charging
name: Réinj. ENEDIS
float_precision: 1
color: '#8E44AD'
- entity: sensor.daily_lg_chem_simulated_grid_import_after_battery_discharging
name: Conso ENEDIS
float_precision: 1
color: '#E74C3C'
3 « J'aime »
Bonjour,
J’ai crée un simple graphique en colonne, pour ma production photovoltaïque.
J’aimerai afficher en haut de chaque barre les productions en kwh.
J’ai vu que normalement je dois ajouter
show:
datalabels: true
Mais j’ai un message d’erreur
/// apexcharts-card version 2.0.1 /// value.show is not an object value.datalabels is extraneous
Merci
@Jeremy
Essai cela
type: custom:apexcharts-card
graph_span: 7d
span:
start: day
offset: '-7d'
stacked: true
header:
show: false
title: Conso à 7 jours
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
- 90
- 100
series:
- color: rgb(138,43,226)
entity: sensor.enedisgateway_212xxxxxxxx249
type: column
group_by:
func: diff
duration: 24h
show:
datalabels: true
Merci beaucoup sa ma bien aidé
autre question, est il possible de faire défilé un graphique ?
Sue cette image j’ai une heure de production photovoltaïque, j’aimerai pouvoir revenir en arrière. Est-ce possible ?
merci
Jeremy
Septembre 1, 2022, 1:45
89
Bonjour à tous,
Quelqu’un sais pourquoi mes graphiques des valeurs fausses
pour aujourd’hui j’ai une production photovoltaïque de 15Kwh mais le graphique me donne que 9kwh
La sensor.photovoltaique_total_energy affiche bien 15Kwh mais pas dans mon graphique.
pourquoi ?
Est-ce la fonction ci-dessous qui pose problème ?
group_by:
func: diff
Merci
type: custom:apexcharts-card
graph_span: 15d
span:
start: day
offset: '-9d'
stacked: true
header:
show: true
title: Production à 15 jours
show_states: true
apex_config:
chart:
type: area
height: auto
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
- 90
- 100
series:
- color: rgb(37,49,217)
entity: sensor.photovoltaique_total_energy
type: column
group_by:
func: diff
duration: 24h
show:
datalabels: true
xtro
Septembre 11, 2022, 8:50
90
un petit up , par contre si c’est impossible merci de me le dire
Voici un graphe que j’ai fais pour visualiser rapidement les températures et précipitations des trois derniers jours et des deux jours à venir.
Le code si jamais…
type: custom:apexcharts-card
graph_span: 4d
all_series_config:
stroke_width: 2
yaxis:
- id: first
show: true
apex_config:
tickAmount: 4
title:
text: °C
forceNiceScale: false
decimalsInFloat: false
- id: second
show: true
opposite: true
apex_config:
title:
text: mm
tickAmount: 4
decimalsInFloat: false
span:
start: day
offset: '-2d'
header:
show: true
show_states: true
title: Météo
now:
show: true
label: Maintenant
apex_config:
dataLabels:
enabled: false
series:
- entity: weather.openweathermap
yaxis_id: first
name: Temperature
show:
extremas: true
in_header: true
legend_value: false
unit: °C
attribute: temperature
curve: smooth
extend_to: now
fill_raw: last
group_by:
func: avg
duration: 1h
- entity: weather.saint_sylvestre
show:
legend_value: false
in_header: false
yaxis_id: first
name: Prévision °C
curve: smooth
type: line
color: e36f9a
extend_to: end
data_generator: |
return entity.attributes.forecast.map((entry) => {
return [new Date(entry.datetime).getTime(), entry.temperature];
});
- entity: sensor.saint_sylvestre_daily_precipitation
yaxis_id: second
show:
legend_value: false
in_header: false
color: 2ba6c2
stroke_width: 4
curve: smooth
name: Pluie
type: column
group_by:
duration: 4h
func: last
fill: last
- entity: weather.saint_sylvestre
yaxis_id: second
name: Précipitation à venir
stroke_width: 4
type: column
show:
legend_value: false
in_header: false
color: cyan
extend_to: end
group_by:
duration: 4h
func: last
fill: last
data_generator: |
return entity.attributes.forecast.map((entry) => {
return [new Date(entry.datetime).getTime(), entry.precipitation];
});
3 « J'aime »
Bob
Septembre 16, 2022, 10:56
92
Cool mais tu es où pour avoir tant de pluie, pas en Bretagne j’imagine
Rhaaa le Bretagne c’est bizarrement foutu ! Tu regardes la météo : il y toujours de la pluie. Tu écoutes les locaux : il y a toujours du grand soleil… Moi je pense que c’est fait exprès pour pas envie de venir aux Parisiens !
1 « J'aime »
Ahahah non en Haute-Savoie, c’est pas mal en pluviométrie aussi !
Jeremy
Septembre 22, 2022, 3:38
96
Bonjour,
Quelqu’un sait me dire où est le soucis.
Avec ce graphique tout home assistant est très lent.jusqu’à 5 min d’attente pour passé d’une page à l’autre.
Home assistant sur un synology DS218+ utilise au max 15% du Cpu et 20% de ram
Merci
type: custom:apexcharts-card
graph_span: 24h
stacked: true
header:
show: true
title: Production
show_states: true
apex_config:
yaxis:
- title:
text: Production
decimalsInFloat: 0
min: 0
max: 4050
- title:
text: Consommation
decimalsInFloat: 0
min: 0
max: 8000
opposite: true
chart:
zoom:
enabled: true
toolbar:
show: true
tools:
download: true
selection: true
zoom: true
zoomin: true
zoomout: true
pan: true
reset: true
type: area
height: auto
stroke:
show: true
width: 1
curve: smooth
legend:
show: true
series:
- color: rgb (26,158,11)
entity: sensor.shellyem_244cab4326d4_channel_2_power
type: area
name: Production
show:
extremas: true
datalabels: false
- color: red
entity: sensor.consommation_total
type: line
name: Consommation
show:
extremas: true
datalabels: false
view_layout:
position: main
Salut @Jeremy ,
Quelle est ton infrastructure matériel, j’ai essayé de chercher ta présentation mais je ne l’ai pas trouvé.
Jeremy
Septembre 23, 2022, 2:22
98
Un synology DS218+ avec 6Go de ram
Au temps pour moi, tu l’avais mis dans ton message précédent…
Je ne vois pas de choses choquante dans ton code mais je ne suis absolument pas expert.
Concernant ton soucis, comme le graphique est lent à charger mais qu’il fonctionne, on peut émettre une hypothèse qu’il y a énormément de données à charger, peut-être peux-tu imposer le sampling des données ?
Je n’ai pas regardé si cela est valable pour ton graphique mais dans les miens j’inclus un « points_per_hour: 30 » ce qui fait 24h * 30 => 720points par courbe.
Si on ne l’impose pas, peut-être que le système cherche à afficher l’ensemble des points présent dans sa base de donnée ce qui fait énormément de data. En admettant que la variable soit rafraichi chaque seconde, 24h * 3600 => 86400 points par courbe.
je ne sais pas si ma piste est valable mais ça vaut le coup de regarder.