Ich arbeite seit kurzem mit den ApexCharts Cards und stoße hier leider immer wieder auf Probleme da die Dokumentation, meines Erachtens, zu oberflächlich gehalten ist.
Momentan stehe ich vor einem Problem, mit den Data Labels.
Diese Zeigen mir nämlich seltsamer Weise andere Werte an als die Tooltips.
Und das, obwohl die Datenquelle und das Script ident ist.
Im Tooltip wird mir beim Mouse Over der korrekte Stunden:Minuten Wert angezeigt. 9:54 und 14:06
In den Data Labels ist der Wert für mich nicht nachvollziehbar.
Hat vielleicht Jemand eine Idee?
Bin auch für Vermutungen dankbar weil vielleicht bringt mich das ja auf die richtige Lösung.
Edit:
Achja, ohne Code wird das wohl schwer.
type: custom:apexcharts-card
chart_type: pie
apex_config:
plotOptions:
pie:
donut:
total:
show: true
showAlways: true
tooltip:
'x':
format: dddd dd.MM.yyyy
'y':
formatter: |
EVAL:function(value) {
// Check sign of given number
var number = value
var sign = (number >= 0) ? 1 : -1;
// Set positive value of number of sign negative
number = number * sign;
// Separate the int from the decimal part
var hour = Math.floor(number);
var decpart = number - hour;
var min = 1 / 60;
// Round to nearest minute
decpart = min * Math.round(decpart / min);
var minute = Math.floor(decpart * 60) + '';
// Add padding if need
if (minute.length < 2) {
minute = '0' + minute;
}
// Add Sign in final result
sign = sign == 1 ? '' : '-';
// Concate hours and minutes
time = sign + hour + ':' + minute;
return time;
// source: https://speedysense.com/convert-float-to-time-in-javascript/
}
dataLabels:
enabled: true
style:
colors:
- '#1e1e1e'
background:
enabled: true
foreColor: '#ffffff'
formatter: |
EVAL:function(value) {
// Check sign of given number
var number = value
var sign = (number >= 0) ? 1 : -1;
// Set positive value of number of sign negative
number = number * sign;
// Separate the int from the decimal part
var hour = Math.floor(number);
var decpart = number - hour;
var min = 1 / 60;
// Round to nearest minute
decpart = min * Math.round(decpart / min);
var minute = Math.floor(decpart * 60) + '';
// Add padding if need
if (minute.length < 2) {
minute = '0' + minute;
}
// Add Sign in final result
sign = sign == 1 ? '' : '-';
// Concate hours and minutes
time = sign + hour + ':' + minute;
return time;
// source: https://speedysense.com/convert-float-to-time-in-javascript/
}
header:
show: false
show_states: true
colorize_states: true
all_series_config:
show:
header_color_threshold: false
datalabels: true
unit: Stunden
transform: return x /3600
color_list:
- '#00bfff'
- '#00008b'
series:
- entity: sensor.tageslange_in_sekunden
name: Tag
group_by:
func: last
duration: 1d
- entity: sensor.tagesdauer_nachtstunden
name: Nacht
group_by:
func: last
duration: 1d
Danke!