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.
Jeremy
Septembre 23, 2022, 4:59
100
J’ai essayé avec :
update_interval: 30s
Et
update_interval: 60s
Sa ne change rien.
Quand je supprime ce graphique tous reviens à là normal.
C’est pas les sondes Shelly qui plante ?
« Update_interval » => Correspond à l’intervalle entre 2 chargement des données donc cela ne change pas la quantité de données à charger.
Jeremy
Septembre 23, 2022, 6:11
102
points_per_hour: 30 Je dois l’intègre ou ?
Jeremy
Septembre 23, 2022, 11:15
103
J’ai trouvé ce qui cloche.
C’est sensor.consommation_total
qui cause le ralentissement. Dès que je l’enlève plus de soucis.
C’est un template que j’ai crée.
template:
- sensor:
- name: Consommation Total
unit_of_measurement: "W"
state: >
{{ ( (states('sensor.shelly_shem_244cab4326d4_1_current_consumption') | float(default=0) ) + (states('sensor.shelly_shem_244cab4326d4_2_current_consumption') | float(default=0) ) ) | round(2) }}
Ce n’est qu’une addition basic mais c’est déjà trop.
Quelqu’un a une autre solution pour additionner 2 sondes ?
Ça donne quoi si tu graphes les entités séparément ?
L’idee est de savoir si le problème vient de l’addition ou des entités sources.