Bekomme eine Apex Chart card nicht hin

Ich möchte mir eine Apex Chart Card erstellen, welche mir meine Zeiten im Bett anzeigt. Die entsprechende Entität ist: binary_sensor.withings_im_bett
Ziel ist es das ich 7 Balken habe, mit dem deutschen Datum untendrunter, also 28.06, 29.06 usw.
Links möchte ich eine Y-Achse haben, welche unten um 00:00 Uhr beginnt und oben um 23:59 Uhr aufhört
Wenn ich im Bett bin soll dieser Bereich des Balkens blau dargestellt werden, wenn ich nicht im Bett bin, soll die Farbe an dieser Stelle grün sein.
Also so ähnlich wie auf dem Screenshot. Allerdings ist mir noch nicht klar wo das “Unbekannt” herrührt
Hier mal der Code wie ich es bisher versuche, aber das führt halt immer zu Fehlern.

type: custom:apexcharts-card
header:
  title: 🛏️ Im Bett (7 Tage)
  show: true
graph_span: 7d
span:
  start: day
  offset: "-6d"
apex_config:
  chart:
    type: rangeBar
    height: 320px
  plotOptions:
    bar:
      horizontal: true
      barHeight: 100%
  xaxis:
    type: category
  yaxis:
    min: 0
    max: 1440
    tickAmount: 12
    labels:
      formatter: |
        return function (val) {
          const h = Math.floor(val / 60);
          const m = val % 60;
          return `${h.toString().padStart(2, '0')}:${m.toString().padStart(2, '0')}`;
        };
series:
  - type: custom
    name: Im Bett
    color: "#3498db"
    show:
      in_chart: true
      legend_value: false
    data_generator: |
      const result = [];
      const entity = 'binary_sensor.withings_im_bett';
      const historyItems = history(entity).filter(e => e.state === 'on');

      historyItems.forEach(e => {
        const start = new Date(e.last_changed);
        const end = new Date(e.last_updated);
        const day = start.toLocaleDateString('de-DE', { day: '2-digit', month: '2-digit' });
        const minutes = d => d.getHours() * 60 + d.getMinutes();

        result.push({
          x: day,
          y: [minutes(start), minutes(end)],
        });
      });

      return result;


Könnt Ihr mir da weiterhelfen?

Hallo,

series:
  - type:

muss laut Doku line, area oder column sein.
Außerdem fehlt bei dir entity: unter series:

Siehe: GitHub - RomRider/apexcharts-card: 📈 A Lovelace card to display advanced graphs and charts based on ApexChartsJS for Home Assistant

Ja, wenn das aber so anpasse, steht die Karte permanent auf Loading. Ich bin mir Leder auch garnicht sicher, ob ich das richtig angegangen bin, oder ob ich mich da beim Code verrenne

Moin,

Wenn ich mir das so anschaue, dann liegt das an den Ausgangsdaten.
Das ist eine History Graph Card in Home Assistant, die den Zustand einer Entität über die Zeit, als Balkengrafik darstellt

ApexCharts ist primär für numerische Daten (Linien, Säulen, Balken) konzipiert. Ein History Graph zeigt Zustandsänderungen an z.B. on/off, home/away, active/inactive, um das in ApexCharts darzustellen, musst du diese Zustandsdaten in eine numerische Form umwandeln, z. B. Dauer pro Zustand pro Stunde/Tag: Du möchtest wissen, wie lange ein bestimmter Zustand (z.B. “im Bett”) pro Stunde oder pro Tag war.

Ich würde mir da einen neuen Sensor erstellen, der genau diese Information speichert, um diesen dann im Chart zu nutzen, dazu ein Template anlegen, welches die Zustände liest und in geeigneter Form im neuen Sensor speichert.

Aber wie das genau geht :man_shrugging:, müsste ich mir auch erst einmal genauer anschauen.

VG
Bernd