Darstellung monatlicher Regenmengen mit ApexCharts in Home Assistant

Home Assistant 2. Sep. 2025

Einleitung
Die Visualisierung von Wetterdaten, wie beispielsweise monatlichen Regenmengen, ist für viele Smart-Home-Anwender von Interesse. Die Verwendung von ApexCharts in Home Assistant ermöglicht eine ansprechende und informative Darstellung dieser Daten. In diesem Artikel wird erläutert, wie man monatliche Regenmengen korrekt mit der ApexCharts-Karte darstellt und welche Anpassungen erforderlich sind, um die gewünschten Ergebnisse zu erzielen.

Problem
Ein Benutzer hat Schwierigkeiten, die monatlichen Regenmengen in einer ApexCharts-Karte darzustellen. Trotz der Erstellung von 12 Input-Helpern für jeden Monat und der Automatisierung zur Befüllung dieser Werte, wird die Darstellung nicht korrekt angezeigt. Der Benutzer sucht nach einer Lösung, um die Daten erfolgreich zu visualisieren.

Lösung
Um die monatlichen Regenmengen korrekt darzustellen, kann die ApexCharts-Karte so konfiguriert werden, dass sie JavaScript zur Datenverarbeitung verwendet. Dies ermöglicht eine flexiblere Handhabung der Daten und eine präzisere Visualisierung. Die folgende Konfiguration zeigt, wie dies umgesetzt werden kann:

type: custom:apexcharts-card
header:
  show: true
  title: Monatliche Regenmengen
graph_span: 12months
span:
  start: year
series:
  - entity: sun.sun # irgendeine Entität (wird nicht angezeigt)
    name: Regenmenge
    type: column
    data_generator: |
      const ids = [
        'input_number.regenmenge_januar',
        'input_number.regenmenge_februar',
        'input_number.regenmenge_marz',
        'input_number.regenmenge_april',
        'input_number.regenmenge_mai',
        'input_number.regenmenge_juni',
        'input_number.regenmenge_juli',
        'input_number.regenmenge_august',
        'input_number.regenmenge_september',
        'input_number.regenmenge_oktober',
        'input_number.regenmenge_november',
        'input_number.regenmenge_dezember'
      ];
      const year = 2025;
      const out = [];
      for (let i = 0; i < 12; i++) {
        const st = hass.states[ids[i]]?.state;
        const y = Number(st);
        const x = new Date(year, i, 1).getTime();   // 1. des Monats
        out.push({ x, y: isNaN(y) ? null : y });
      }
      return out;
apex_config:
  xaxis:
    type: datetime
    labels:
      datetimeFormatter:
        month: 'MMM'  
  plotOptions:
    bar:
      columnWidth: '70%'

Schritte zur Umsetzung
1. Erstelle die Input-Helper für die monatlichen Regenmengen in Home Assistant.
2. Füge die oben angegebene Konfiguration in die YAML-Datei deiner ApexCharts-Karte ein.
3. Stelle sicher, dass die Entitäten der Input-Helper korrekt benannt sind und die Werte befüllt werden.
4. Überprüfe die Darstellung in der Benutzeroberfläche von Home Assistant.

Hintergrundwissen
ApexCharts ist eine leistungsstarke Bibliothek zur Erstellung interaktiver Diagramme. In Home Assistant kann sie durch die Verwendung von benutzerdefinierten Karten integriert werden. Die Verwendung von JavaScript zur Datenverarbeitung ermöglicht es, dynamisch auf die Werte der Input-Helper zuzugreifen und diese in einem geeigneten Format für die Darstellung zu formatieren.

Typische Fehler, die bei der Konfiguration auftreten können, sind:
- Falsche Entitätsnamen, die zu einer fehlenden Datenanzeige führen.
- Ungültige Werte in den Input-Helpern, die nicht als Zahlen interpretiert werden können.

Zusätzliche Infos

FunktionErklärung
`data_generator`Ermöglicht die dynamische Generierung von Daten für die Darstellung.
`xaxis.type`Legt den Typ der X-Achse fest, hier als Datetime für Monatsdaten.
`datetimeFormatter`Definiert das Format der Datumsbeschriftungen auf der X-Achse.
`plotOptions.bar`Konfiguriert die Darstellung der Balkendiagramme, z.B. die Breite der Balken.

Hinweise & Best Practices
- Stelle sicher, dass alle Input-Helper korrekt konfiguriert und mit Werten befüllt sind, bevor du die Karte anzeigst.
- Teste die Konfiguration in einer Entwicklungsumgebung, bevor du sie in einer produktiven Umgebung einsetzt.
- Alternativ kann die Verwendung von anderen Diagramm-Bibliotheken wie Plotly in Betracht gezogen werden, wenn ApexCharts nicht die gewünschten Ergebnisse liefert.