Einstellungen & Sensormapping
EEDC Handbuch — Teil III: Einstellungen & Sensormapping
Abschnitt betitelt „EEDC Handbuch — Teil III: Einstellungen & Sensormapping“Version 3.24.1 | Stand: April 2026
Dieses Handbuch ist Teil der EEDC-Dokumentation. Siehe auch: Teil I: Installation & Einrichtung | Teil II: Bedienung | Glossar
Inhaltsverzeichnis
Abschnitt betitelt „Inhaltsverzeichnis“- Einstellungen
- Datenerfassung
- Sensor-Mapping
- HA-Statistik Import
- Home Assistant Integration
- MQTT-Inbound
- MQTT-Gateway
- Daten-Checker
- Protokolle
- Energieprofile — Hintergrund
1. Einstellungen
Abschnitt betitelt „1. Einstellungen“Die Einstellungen-Seite ist in mehrere Tabs gegliedert:
Stammdaten: Anlage, Strompreise, Investitionen, Solarprognose Daten: Monatsdaten, Energieprofil, Monatsabschluss, Import, Datenerfassung, Demo-Daten System: Daten-Checker, Protokolle, Allgemein
1.1 Anlage
Abschnitt betitelt „1.1 Anlage“Bearbeite die Stammdaten deiner PV-Anlage:
- Name, Adresse, Koordinaten
- Bundesland (für regionale Community-Vergleiche)
Die früheren Felder „Ausrichtung” und „Neigung” am Anlage-Modell werden seit dem Refactoring zu PV-Modul-Investitionen nicht mehr gepflegt. PV-Ausrichtung und Neigung gehören jetzt pro Modul-String in das Investitions-Formular (siehe §1.3) — die DB-Spalte bleibt für Bestandsinstallationen erhalten, der aktive Code greift nicht mehr darauf zu.
Erweiterte Stammdaten:
- MaStR-ID: Marktstammdatenregister-ID der Anlage mit direktem Link zum MaStR
- Versorger & Zähler: Strom-, Gas- und Wasserversorger mit beliebig vielen Zählern
- Klicke auf „+ Strom-Versorger hinzufügen” etc.
- Erfasse Versorger-Name, Kundennummer, Portal-URL
- Füge Zähler hinzu (Bezeichnung wie „Einspeisung”, „Bezug”, Zählernummer)
Hinweis: Beim Anlegen eines neuen Stromvertrag-Eintrags in der Infothek werden Anbieter, Tarif und Zählernummer automatisch aus diesen Versorger-Daten vorbelegt.
Wettermodell:
- auto (Standard): EEDC wählt automatisch (Bright Sky für DE, sonst Open-Meteo best_match)
- MeteoSwiss ICON-CH2: Empfohlen für alpine Standorte in der Schweiz und Südtirol (2 km Auflösung)
- ICON-D2: Hochauflösendes DWD-Modell für Deutschland (2,2 km)
- ICON-EU: Europäisches Modell mit mittlerer Auflösung
- ECMWF IFS: Globales ECMWF-Modell (0,25°)
Bei spezifischer Modellauswahl versucht EEDC zuerst das gewählte Modell und fällt bei fehlenden Daten auf den besten verfügbaren Anbieter zurück (Kaskade). Die verwendete Datenquelle wird pro Tag in der Kurzfrist-Ansicht mit einem Kürzel angezeigt (MS/D2/EU/EC/BM).
Steuerliche Behandlung:
- Keine USt-Auswirkung (Standard): Für Anlagen ab 2023 mit Nullsteuersatz (≤ 30 kWp) oder Kleinunternehmer
- Regelbesteuerung: USt auf Eigenverbrauch wird als Kostenfaktor berechnet (Pre-2023, > 30 kWp, AT/CH)
- USt-Satz ist editierbar (DE: 19 %, AT: 20 %, CH: 8.1 %) und wird bei Land-Wechsel automatisch angepasst
1.2 Strompreise
Abschnitt betitelt „1.2 Strompreise“Verwalte deine Stromtarife:
- Mehrere Tarife mit Gültigkeitszeitraum möglich
- Wichtig für korrekte Einsparungsberechnung
Spezialtarife:
- Jeder Tarif kann einer Verwendung zugeordnet werden: Standard, Wärmepumpe oder Wallbox
- Aktive Spezialtarife werden in der Info-Box oben angezeigt
- Ohne Spezialtarif wird automatisch der Standard-Tarif für die Komponente verwendet
Den dynamischen Strompreis (Tibber, aWATTar, EPEX) konfigurierst du im Sensor-Mapping-Wizard (siehe §3 Schritt 1: Basis-Sensoren). Auch ohne eigenen Sensor wird der EPEX-Börsenpreis automatisch via aWATTar API als Overlay im Live-Tagesverlauf angezeigt (DE/AT).
1.3 Investitionen
Abschnitt betitelt „1.3 Investitionen“Alle Komponenten im Überblick:
Parent-Child Beziehungen
Abschnitt betitelt „Parent-Child Beziehungen“| Typ | Parent | Pflicht? |
|---|---|---|
| PV-Module | Wechselrichter | Ja |
| DC-Speicher | Wechselrichter (Hybrid) | Optional |
| AC-Speicher | – (eigenständig) | – |
| E-Auto | – | – |
| Wärmepumpe | – | – |
| Wallbox | – | – |
| Balkonkraftwerk | – | – |
| Sonstiges | – | – |
Warnung: PV-Module ohne Wechselrichter-Zuordnung zeigen ein Warnsymbol.
Anschaffungsdatum & Stilllegungsdatum
Abschnitt betitelt „Anschaffungsdatum & Stilllegungsdatum“Jede Investition hat zwei Lebenszyklus-Daten:
- Anschaffungsdatum: ab diesem Datum zählt die Investition für Auswertungen. Aggregate (JAZ, Wärme, Strom, Ersparnis bei der Wärmepumpe; analog Speicher, Wallbox, E-Auto, BKW) ignorieren Monatsdaten vor diesem Datum. Nützlich bei Migration auf eine neue Erfassungsmethode (z. B. Wechsel von WP-eigener Strommessung auf Shelly-PM): die alten Werte bleiben historisch in der DB, fließen aber nicht mehr in die aktuelle JAZ-Berechnung ein.
- Stilllegungsdatum (v3.14.0): Endmarker. Ab diesem Datum zählt die Investition nicht mehr für aktuelle und künftige Auswertungen. Historische Aggregate behalten die deaktivierte Komponente.
Stammdaten — Verknüpfung zur Infothek
Abschnitt betitelt „Stammdaten — Verknüpfung zur Infothek“Seit v3.16.2 (Etappe 3.6) sind Geräte-Detaildaten (Hersteller/Modell/Seriennummer/Garantie), Ansprechpartner und Wartungsvertrag nicht mehr Teil des Investitionsformulars. Sie werden über die Infothek gepflegt:
- Ein Infothek-Eintrag (Kategorie z. B. „Komponenten-Akte” oder „Wartungsvertrag”) kann mit beliebig vielen Investitionen N:M-verknüpft werden.
- Beim Bearbeiten einer Investition werden die verknüpften Infothek-Einträge als kompakte Liste mit Kategorie und Direktlink angezeigt.
- Wer noch Altdaten aus der Zeit vor v3.16.2 hat, bekommt in der Investitions-Übersicht den Migrations-Banner „Stammdaten in Infothek übernehmen?”.
Typ-spezifische Parameter
Abschnitt betitelt „Typ-spezifische Parameter“PV-Module:
- Anzahl Module
- Leistung pro Modul (Wp)
- Ausrichtung (Süd = 0°, Ost = -90°, West = +90°)
- Neigung (0° = flach, 90° = senkrecht)
Speicher:
- Kapazität (kWh, Key:
batteriekapazitaet_kwh) - Maximale Leistung (kW, Key:
max_leistung_kw) - Arbitrage-fähig (Ja/Nein, Key:
arbitrage_faehig)
E-Auto:
- Batteriekapazität (kWh, Key:
batteriekapazitaet_kwh) - V2H-fähig (Ja/Nein, Key:
v2h_faehig) - Nutzt V2H aktiv (Ja/Nein)
Wärmepumpe:
- Jahresarbeitszahl (JAZ) — Standardwert für JAZ-basierte Berechnungen, falls Heizenergie nicht über einen Wärmemengenzähler erfasst wird (Key:
jaz, Strategy:gesamt_jaz). - alternativ_kosten_euro — Kosten der Alternativ-Heizung (Gas/Öl) als Mehrkosten-Basis.
- alternativ_zusatzkosten_jahr (€/Jahr, v3.21.0) — laufende Zusatzkosten der Alternativ-Heizung: Schornsteinfeger, Wartung, Gaszähler-Grundpreis. Wird in fünf Berechnungs-Stellen berücksichtigt (Aussichten historisch, Aussichten Prognose, HA-Export inkl. WP-Sensor, PDF-Jahresbericht, Investitions-Vorschau), in historischen Aggregaten anteilig pro erfasstem Monat.
- alter_preis_cent_kwh — Alt-Tarif Gas/Öl (ct/kWh). Wird als Fallback verwendet, wenn die Monatsdaten kein eigenes
gaspreis_cent_kwhenthalten.
Wallbox:
- Maximale Ladeleistung (kW, Key:
max_ladeleistung_kw) - Bidirektional (Ja/Nein, Key:
bidirektional)
Wechselrichter:
- Maximale Leistung (kW, Key:
max_leistung_kw) - MaStR-ID (nur für Wechselrichter)
Sonstiges:
- Kategorie: Erzeuger, Verbraucher oder Speicher
- Beschreibung (optional)
- Monatsdaten-Felder passen sich der Kategorie an
Setup-Wizard ↔ Investitionsformular: Setup-Wizard, InvestitionForm und das Backend-
parameter_schemahalten dieselben Keys (Drift-Bug aus dem Wizard wurde in v3.23.8 final behoben — siehe Issue #167). Felder, die im Setup-Wizard erfasst werden, landen daher direkt unter den oben dokumentierten Keys.
1.4 Monatsdaten
Abschnitt betitelt „1.4 Monatsdaten“Tabelle aller erfassten Monatsdaten:
- Spalten-Toggle: Wähle, welche Spalten angezeigt werden
- Inline-Bearbeitung: Direkt in der Tabelle ändern
- Modal-Bearbeitung: Für alle Details
- Höhe: Tabelle ist auf ~12 Zeilen mit eigener vertikaler Scrollbar und sticky Header begrenzt
Aggregierte Darstellung
Abschnitt betitelt „Aggregierte Darstellung“| Spaltengruppe | Inhalt | Farbe |
|---|---|---|
| Zählerwerte | Einspeisung, Netzbezug | Blau |
| PV-Erzeugung | Summe aller PV-Module | Amber |
| Speicher | Ladung, Entladung | Amber |
| Wärmepumpe | Strom, Heizung, Warmwasser | Amber |
| E-Auto | km, Ladung (PV/Netz) | Amber |
| Wallbox | Ladung | Amber |
| Berechnungen | Direktverbrauch, Eigenverbrauch, Autarkie | Grün |
Gruppierte Spaltenauswahl: Du kannst ganze Gruppen ein-/ausblenden oder einzelne Spalten wählen.
Optionale Preisfelder
Abschnitt betitelt „Optionale Preisfelder“Zwei Preisfelder werden bei passenden Investitionen automatisch eingeblendet (über BEDINGTE_BASIS_FELDER mit Bedingung hat_e_auto / hat_waermepumpe):
kraftstoffpreis_euro(€/L, ab v3.17.0) — bei E-Auto-Investitionen. Echte monatliche Benzinpreise aus dem EU Weekly Oil Bulletin für die ROI-Berechnung; Vorschlagswert im Monatsabschluss-Wizard mit Konfidenz 85.gaspreis_cent_kwh(ct/kWh, ab v3.21.0) — bei Wärmepumpen-Investitionen. Pro Monat gepflegter Gas-/Öl-Tarif. Wenn vorhanden, wird er in der historischen Aggregation Monat für Monat verwendet — ein Tarifwechsel ändert dann nicht mehr rückwirkend die ganze Historie. Fallback:wp.parameter.alter_preis_cent_kwh.
Datenverwaltung Monatsdaten
Abschnitt betitelt „Datenverwaltung Monatsdaten“- Kraftstoffpreis-Backfill (Monats) — neuer Abschnitt unten auf der Monatsdaten-Seite (v3.18.0). Sichtbar nur, wenn offene Monate existieren. Befüllt rückwirkend
Monatsdaten.kraftstoffpreis_euroaus dem EU Oil Bulletin (History seit 2005). - Bei Fehlern (z. B. URL-Wechsel des Bulletins, Parsing-Problem) zeigt das Frontend seit v3.20.1 den Service-Fehler explizit als roten Error-Alert — vorher wurde der Fehler stillschweigend verschluckt.
Migrations-Warnung
Abschnitt betitelt „Migrations-Warnung“Bei älteren Daten (vor v0.9.7) erscheint eine Warnung:
- Legacy-Daten in
Monatsdaten.batterie_*werden nicht mehr verwendet - Beim Bearbeiten werden Werte automatisch migriert
- Nach dem Speichern sind die Daten aktuell
1.5 Solarprognose (vormals PVGIS)
Abschnitt betitelt „1.5 Solarprognose (vormals PVGIS)“Diese Seite kombiniert PVGIS-Langfristprognose mit Wetter-Provider-Einstellungen:
PVGIS-Prognose:
- Systemverluste: Standard 14 % (für Deutschland typisch)
- TMY-Daten: Typical Meteorological Year als Referenz
- Optimale Ausrichtung: Berechnet optimale Neigung/Azimut für deinen Standort
Wetter-Provider:
- Zeigt verfügbare Wetter-Datenquellen für deinen Standort
- Der aktuelle Provider wird in den Anlagen-Stammdaten eingestellt
- Verfügbare Provider:
- Auto: Automatische Auswahl (Bright Sky für DE, sonst Open-Meteo)
- Bright Sky (DWD): Hochwertige Daten für Deutschland
- Open-Meteo: Historische und Forecast-Daten weltweit
- Open-Meteo Solar: GTI-basierte Prognose für geneigte Module
Prognose-Basis:
In den Anlagenstammdaten (Anlage-Form) lässt sich seit v3.16.15 auch die Prognose-Basis wählen — also auf welcher Quelle der EEDC-Lernfaktor und die kalibrierte Prognose aufbauen sollen. Aktuell sind OpenMeteo (Standard) und Solcast (wenn konfiguriert) als Basis verfügbar; SFML ist als künftige Erweiterung im Code-Registry vorbereitet.
1.6 Energieprofil-Seite
Abschnitt betitelt „1.6 Energieprofil-Seite“Pfad: Einstellungen → Daten → Energieprofil
Eingeführt in v3.18.0 (#133). Bündelt anlage-spezifisch alle Tagesauswertungen und Datenverwaltungs-Aktionen, die sich auf das Energieprofil beziehen — vorher waren sie auf mehrere globale Schalter unter „Allgemein” verteilt.
Datenbestand-Kacheln
Abschnitt betitelt „Datenbestand-Kacheln“Pro Anlage zeigt die Seite:
- Stundenwerte (Anzahl, Zeitraum)
- Tagessummen (Anzahl, Zeitraum)
- Monatswerte (Anzahl, Zeitraum)
- Abdeckung in % über den verfügbaren Zeitraum
Tages-Tabelle
Abschnitt betitelt „Tages-Tabelle“- Jahr/Monat-Selektor — zeigt nur Zeiträume mit Daten
- Spalten-Selektor mit Gruppen: Peak-Leistungen (PV/Bezug/Einspeisung), Tages-Summen (PV/Verbrauch/Einspeisung/Bezug), Performance (PR, Autarkie, EV-Quote, Vollzyklen), Wetter (Globalstrahlung, GTI, Sonnenstunden), §51-Börsenpreise (Ø, min, Anzahl negativer Stunden, Einspeisung bei negativem Preis)
- 12-Zeilen-Scrollansicht mit sticky Header und sticky Σ-Footer (Σ/Ø/max/min je nach Spalte)
- Pro-Tag-Reaggregation: Refresh-Knopf am Ende jeder Tageszeile (v3.21.0, #146). Klick → Confirmation → API-Aufruf
POST /api/energie-profil/{anlage_id}/reaggregate-tag?datum=YYYY-MM-DD→ Reload. Die Erfolgsmeldung zeigt nicht nur die Anzahl geschriebener Slots, sondern auch die Slots mit echten Messdaten: grün bei> 0, amber bei0(typische Ursache: keine Snapshots in DB, HA-Statistics nicht erreichbar). Idempotent (delete+insert), wirkt nur auf den gewählten Tag.
Datenverwaltung
Abschnitt betitelt „Datenverwaltung“| Aktion | Beschreibung |
|---|---|
| Vollbackfill aus HA-Statistik | Liest historische Snapshots aus HA-Statistics und füllt fehlende Tage. Option „Bestehende Tage überschreiben” verfügbar — empfohlen nach größeren Releases (v3.19.0 Snapshot-Architektur, v3.20.0 Backward-Slot, v3.20.0 PR auf GTI). |
| Kraftstoffpreis-Backfill (Tages) | Sichtbar nur bei offenen Tagen. Befüllt TagesZusammenfassung.kraftstoffpreis_euro aus dem EU Weekly Oil Bulletin. |
| Verlauf nachberechnen | Aggregiert alle vorhandenen Tage neu — z. B. nach Konfigurations- oder Sensor-Mapping-Änderungen. |
| Energieprofil-Daten löschen | Anlage-spezifisch (vorher war es ein globaler Löschen-Button unter „Allgemein”). |
Tipp: Nach Updates, in deren CHANGELOG-Eintrag „Empfohlene Aktion: Verlauf nachberechnen + überschreiben” steht (z. B. v3.19.0 Zähler-Snapshots, v3.20.0 Backward-Slot, v3.20.0 PR-auf-GTI-Umstellung), genau diese Aktion auf der Energieprofil-Seite auslösen — einmalig pro betroffener Anlage.
1.7 Allgemein
Abschnitt betitelt „1.7 Allgemein“Nach Entkernung in v3.18.0 zeigt die Seite nur noch:
- Theme — Light / Dark / System
- HA-Integration-Status
- Datenbank-Info — Anzahl Datensätze, DB-Pfad, Größe
- Version + API-Status
Der frühere Block „Datenbestand Energieprofile” inkl. globalem Löschen-Button ist auf die Energieprofil-Seite (§1.6) gewandert.
2. Datenerfassung
Abschnitt betitelt „2. Datenerfassung“Es gibt mehrere Wege, Daten in eedc zu bekommen:
2.1 Manuelles Formular
Abschnitt betitelt „2.1 Manuelles Formular“Pfad: Einstellungen → Monatsdaten → „Neu”-Button
Das Formular zeigt dynamisch die relevanten Felder. Seit v3.17.1 (Phase E des Refactorings) nutzt MonatsdatenForm getFelderFuerInvestition() als Single Source of Truth — neue Felder erscheinen automatisch, sobald sie in field_definitions.py definiert sind.
Basis-Felder (immer):
- Jahr, Monat
- Einspeisung (kWh) – Zählerwert
- Netzbezug (kWh) – Zählerwert
Komponenten-Felder (je nach Investitionen):
- PV-Module: Erzeugung pro Modul/String
- Speicher: Ladung, Entladung, Netz-Ladung (Arbitrage)
- E-Auto: km, Verbrauch, Ladung (PV/Netz/Extern), V2H-Entladung, Kraftstoffpreis €/L (ab v3.17.0)
- Wärmepumpe: Strom, Heizung, Warmwasser, Gaspreis ct/kWh (ab v3.21.0)
- Wallbox: Ladung, Ladevorgänge
- Balkonkraftwerk: Erzeugung, Eigenverbrauch (Einspeisung wird automatisch berechnet)
- Sonstiges: Felder je nach Kategorie (Erzeugung/Verbrauch/Ladung)
- Sonstige Erträge & Ausgaben: Versicherung, Wartung, Einspeisebonus etc.
Wetter-Auto-Fill:
- Klicke auf „Wetter abrufen”
- Globalstrahlung und Sonnenstunden werden automatisch gefüllt
- Datenquelle: Open-Meteo (historisch) oder PVGIS TMY (aktuell/Zukunft)
2.2 CSV-Import
Abschnitt betitelt „2.2 CSV-Import“Pfad: Einstellungen → Import
Template herunterladen
Abschnitt betitelt „Template herunterladen“- Klicke auf „CSV-Template herunterladen”
- Das Template enthält alle relevanten Spalten basierend auf deinen Investitionen
Spalten-Struktur
Abschnitt betitelt „Spalten-Struktur“Pflicht-Spalten:
Jahr, Monat, Einspeisung_kWh, Netzbezug_kWhKomponenten-Spalten (dynamisch):
[Investitions-Name]_PV_Erzeugung_kWh (für PV-Module)[Investitions-Name]_Ladung_kWh (für Speicher)[Investitions-Name]_Entladung_kWh (für Speicher)[Investitions-Name]_km (für E-Auto)[Investitions-Name]_Ladung_PV_kWh (für E-Auto)[Investitions-Name]_Ladung_Netz_kWh (für E-Auto)[Investitions-Name]_Strom_kWh (für Wärmepumpe)[Investitions-Name]_Heizung_kWh (für Wärmepumpe)[Investitions-Name]_Warmwasser_kWh (für Wärmepumpe)…Hinweis Wärmepumpe: Die JAZ-Werte werden über das Investitions-Formular konfiguriert, nicht über CSV. Die CSV enthält nur die gemessenen Monatswerte (Strom, Heizung, Warmwasser) und optional
gaspreis_cent_kwh.
Balkonkraftwerk-Spalten:
[BKW-Name]_Erzeugung_kWh (PV-Erzeugung)[BKW-Name]_Eigenverbrauch_kWh (Selbst genutzt)Die Einspeisung wird automatisch berechnet (Erzeugung − Eigenverbrauch).
Beispiel: Wenn dein E-Auto „Smart #1” heißt:
Smart #1_km, Smart #1_Ladung_PV_kWh, Smart #1_Ladung_Netz_kWhCSV hochladen
Abschnitt betitelt „CSV hochladen“- Befülle das Template mit deinen Daten
- Klicke auf „CSV importieren”
- Wähle die Datei aus
- Duplikate werden automatisch überschrieben
Plausibilitätsprüfungen
Abschnitt betitelt „Plausibilitätsprüfungen“Der Import prüft deine Daten auf Konsistenz:
Fehler (Import wird abgebrochen):
- Negative Werte in kWh/km/€-Feldern
- Legacy-Spalten (
PV_Erzeugung_kWh) ohne passende PV-Module-Investitionen - Mismatch zwischen Legacy-Wert und Summe der individuellen Komponenten
Warnungen (Import wird fortgesetzt):
- Redundante Legacy-Spalten (gleiche Werte wie Komponenten)
- Unplausible Wetterwerte (Sonnenstunden > 400 h/Monat)
JSON-Export für Backup & Support
Abschnitt betitelt „JSON-Export für Backup & Support“In der Anlagen-Übersicht findest du einen Download-Button (blaues Download-Icon) für den vollständigen JSON-Export.
Enthaltene Daten (Export-Version 1.1):
- Anlage-Stammdaten (inkl. MaStR-ID, Versorger-Daten)
- Sensor-Mapping für HA-Integration
- Alle Investitionen mit Monatsdaten
- Strompreise
- PVGIS-Prognosen
- Monatsdaten inkl. Wetterdaten und Sonderkosten
Anwendungsfälle:
- Backup: Vollständige Sicherung aller Daten
- Restore: Import auf anderem System oder nach Neuinstallation
- Support: Für Fehleranalyse und Hilfe
HA-Companion-Hinweis (v3.23.2): Backup-, CSV- und PDF-Downloads laufen seit v3.23.2 über
fetch + Blobstattwindow.open. Damit funktioniert der Download in der iOS HA-Companion-App ohne 401-Fehler (Safari-_blankwürde extern öffnen und hätte keine Ingress-Session).
JSON-Import (Restore)
Abschnitt betitelt „JSON-Import (Restore)“Pfad: Einstellungen → Import → JSON-Datei
- Wähle eine zuvor exportierte JSON-Datei
- Optional: „Überschreiben” aktivieren, um existierende Anlage zu ersetzen
- Klicke auf „Importieren”
Hinweise zum Import:
- Bei gleichem Anlagennamen wird automatisch ein Suffix hinzugefügt (außer bei „Überschreiben”)
- Sensor-Mapping: Wird importiert, aber MQTT-Setup muss erneut durchgeführt werden
- Grund: Investitions-IDs ändern sich beim Import
- Gehe nach dem Import zu Einstellungen → Home Assistant → Sensor-Zuordnung und speichere erneut. Die MQTT-Topic-Abdeckung im Daten-Checker (§8) zeigt sofort, ob deine HA-Publisher-Automation noch zu den neuen Topic-Pfaden passt.
- Export-Version 1.0 (ohne sensor_mapping) wird weiterhin unterstützt
PDF-Dokumentation
Abschnitt betitelt „PDF-Dokumentation“Neben dem JSON-Export gibt es einen PDF-Export (orangefarbenes Dokument-Icon) — siehe Dokumente-Dialog der Anlage. Inhalt:
- Stammdaten: Anlagenname, Standort, Koordinaten, MaStR-ID
- Versorger-Daten: Stromversorger, Kundennummern, Zählernummern mit Zählpunkten
- Stromtarif: Aktueller Tarif mit Preisen
- Investitionen: Alle Komponenten mit den im Investitionsformular erfassten Parametern und den verknüpften Infothek-Einträgen (Geräte-Detaildaten kommen seit v3.16.2 ausschließlich aus der Infothek).
- Jahresübersicht: Alle KPIs (Energie, Autarkie, Finanzen, CO2)
- Diagramme: PV-Erzeugung, Energie-Fluss, Autarkie-Verlauf
- Monatstabellen: Energie, Speicher, Wärmepumpe, E-Mobilität, Finanzen
- PV-String Vergleich: SOLL (PVGIS) vs. IST mit Abweichung
Layout:
- Kopfzeile (ab Seite 2): Anlagenname | Titel | eedc-Logo
- Fußzeile: Erstellungsdatum | GitHub-Repository | „Seite X von Y”
- Wiederholende Tabellenköpfe bei Seitenumbrüchen
Zeitraum:
- Standard: Gesamtzeitraum (alle Jahre seit Installation)
- Der Export erfolgt direkt über die Anlagen-Seite
2.3 Cloud-Import
Abschnitt betitelt „2.3 Cloud-Import“Pfad: Einstellungen → Daten → Einrichtung → Cloud-Import
Der Cloud-Import ermöglicht den direkten Abruf historischer Energiedaten aus Hersteller-Cloud-APIs.
Verfügbare Provider:
| Provider | Benötigte Zugangsdaten |
|---|---|
| SolarEdge | API-Key (aus Monitoring-Portal) |
| Fronius SolarWeb | AccessKeyId + AccessKeyValue |
| Huawei FusionSolar | Username + Password (SystemCode) |
| Growatt | Username + Password (+ Anlagen-ID) |
| Deye/Solarman | App-ID + App-Secret + Email + Password |
| EcoFlow PowerOcean | Access Key + Secret Key (+ Seriennummer) |
Wizard-Ablauf (4 Schritte):
- Verbinden: Provider wählen und API-Zugangsdaten eingeben
- Zeitraum: Start- und Endmonat für den Import festlegen
- Vorschau: Abgerufene Monatsdaten prüfen und Monate auswählen
- Import: Daten einer Anlage zuordnen und übernehmen
Hinweis: Alle Provider sind derzeit ungetestet und basieren auf der jeweiligen Hersteller-API-Dokumentation. Credentials können pro Anlage gespeichert werden.
2.4 Custom-Import (Eigene Datei)
Abschnitt betitelt „2.4 Custom-Import (Eigene Datei)“Pfad: Einstellungen → Daten → Einrichtung → Eigene Datei importieren
Mit dem Custom-Import kannst du beliebige CSV- oder JSON-Dateien importieren, die monatliche Energiedaten enthalten – z. B. Exports aus anderen Monitoring-Tools oder eigene Tabellen.
Wizard-Ablauf (4 Schritte):
- Upload: CSV- oder JSON-Datei per Drag & Drop oder Dateiauswahl hochladen. Die Datei wird automatisch analysiert, Spalten und Beispielwerte werden erkannt.
- Mapping: Jede erkannte Spalte einem EEDC-Zielfeld zuordnen (z. B. „Energy_kWh” → „PV-Erzeugung”). Optionen:
- Auto-Detect: Erkennt gängige Spaltenbezeichnungen automatisch (deutsch + englisch)
- Einheit: Wh, kWh oder MWh – wird automatisch umgerechnet
- Dezimalzeichen: Auto-Erkennung oder manuell (Punkt/Komma)
- Datumsspalte: Kombinierte Spalte (z. B. „2024-01”) oder separate Jahr/Monat-Spalten
- Templates: Mapping als Vorlage speichern und bei wiederkehrenden Importen laden
- Vorschau: Umgerechnete Monatsdaten prüfen, einzelne Monate an-/abwählen, Anlage zuordnen
- Import: Daten übernehmen (optional bestehende Monate überschreiben)
Unterstützte Zielfelder:
- Energie: PV-Erzeugung, Einspeisung, Netzbezug, Eigenverbrauch
- Batterie: Ladung, Entladung
- Wallbox/E-Auto: Wallbox-Ladung, gefahrene km
2.5 Demo-Daten
Abschnitt betitelt „2.5 Demo-Daten“Zum Ausprobieren ohne echte Daten:
Pfad: Einstellungen → Demo-Daten
- Generiert realistische Beispieldaten für 2 Jahre
- Inkludiert alle Komponenten-Typen
- Kann jederzeit gelöscht werden
3. Sensor-Mapping
Abschnitt betitelt „3. Sensor-Mapping“Der Sensor-Mapping-Wizard ermöglicht die flexible Zuordnung deiner Home Assistant Sensoren zu den EEDC-Feldern.
3.1 Wizard starten
Abschnitt betitelt „3.1 Wizard starten“Pfad: Einstellungen → Sensor-Zuordnung (im HA-Bereich)
Der Wizard scrollt seit v3.23.8 bei jedem Step-Wechsel automatisch zum Seitenanfang.
3.2 Schritte des Wizards
Abschnitt betitelt „3.2 Schritte des Wizards“Schritt 1: Basis-Sensoren
Abschnitt betitelt „Schritt 1: Basis-Sensoren“Ordne die grundlegenden Energie-Sensoren zu:
| Feld | Beschreibung | Strategie-Optionen |
|---|---|---|
| PV-Erzeugung Gesamt | Gesamte PV-Produktion | HA-Sensor, Manuell |
| Einspeisung | Netz-Einspeisung | HA-Sensor, Manuell |
| Netzbezug | Bezug aus dem Netz | HA-Sensor, Manuell |
| Batterie-Ladung | Gesamt-Ladung (alle Speicher) | HA-Sensor, Manuell |
| Batterie-Entladung | Gesamt-Entladung | HA-Sensor, Manuell |
| Außentemperatur | Aktuelle Außentemperatur in °C | HA-Sensor (bevorzugt), Open-Meteo Fallback |
| Strompreis (dynamischer Tarif) | Optional: aktueller Strompreis (ct/kWh) | HA-Sensor, leer = automatisches EPEX-Fallback |
Strompreis-Sensor (v3.16.0):
Geeignet für Tibber, aWATTar, EPEX, eigene Template-Sensoren. Akzeptiert Einheiten ct/kWh, EUR/kWh, EUR/MWh (wird ×0.1 nach ct/kWh normalisiert), Cent, €. Wird im Live-Tagesverlauf als gepunktete Linie auf sekundärer Y-Achse angezeigt. Ohne eigenen Sensor lädt EEDC automatisch den EPEX-Börsenpreis (DE/AT) über aWATTar API als Fallback — die Linie heißt dann „Börsenpreis (EPEX)”.
Vorzeichen-Inversion: Manche Sensoren liefern Leistungswerte mit invertiertem Vorzeichen (z. B. Einspeisung als negativer Wert). Pro Leistungs-Sensor gibt es eine Checkbox „Vorzeichen invertieren” — aktiviere sie, wenn der Sensor negative statt positive Werte liefert. EEDC rechnet intern immer mit positiven Werten.
Solcast PV Forecast (v3.16.5, optional): Toggle „Solcast PV Forecast” am Ende des Basis-Schritts. Aktiviert die automatische Erkennung der Solcast HA-Integration (BJReplay) — kein manueller DB-Eintrag, kein API-Key nötig. Die 7-Tage-Prognose (Heute + Morgen + Tag 3–7) wird direkt als Sensor-State gelesen. Wer die Solcast-Anbindung lieber per API-Key (Free/Paid) nutzen will, konfiguriert das in den Anlagenstammdaten — siehe Aussichten → Prognosen für die Anzeige.
Schritt 2: PV-Module
Abschnitt betitelt „Schritt 2: PV-Module“Für jeden PV-String/Modul-Gruppe:
| Strategie | Beschreibung |
|---|---|
| Eigener Sensor | Separater HA-Sensor für diesen String |
| kWp-Verteilung | Anteilige Berechnung aus PV-Gesamt basierend auf kWp |
| Manuell | Manuelle Eingabe im Monatsabschluss |
Beispiel kWp-Verteilung: Bei 10 kWp Gesamt und einem String mit 4 kWp erhält dieser String 40 % der Gesamt-Erzeugung.
Schritt 3: Speicher
Abschnitt betitelt „Schritt 3: Speicher“Für jeden Speicher:
| Feld | Strategien |
|---|---|
| Ladung | HA-Sensor, Manuell |
| Entladung | HA-Sensor, Manuell |
| Netz-Ladung | HA-Sensor, Manuell (für Arbitrage) |
| SoC (State of Charge) | HA-Sensor (für Live-Anzeige + Vollzyklen) |
Multi-Speicher / E-Auto-Trennung: Batterie-Vollzyklen werden seit v3.22.0 ausschließlich aus stationären Speicher-SoCs berechnet. E-Auto-SoC-Sensoren (auch wenn sie unter
live.socan einer E-Auto-Investition liegen) sind ausgeschlossen — vorher konnte der erste SoC-Sensor in der Investitions-Liste fälschlich als Batterie interpretiert werden. Nutzer-Schritt nach Update auf v3.22.0: einmal „Verlauf nachberechnen + überschreiben” auslösen, damit historischebatterie_vollzyklen-Werte korrigiert werden.
Schritt 4: Wärmepumpe
Abschnitt betitelt „Schritt 4: Wärmepumpe“| Feld | Strategien |
|---|---|
| Stromverbrauch | HA-Sensor, Manuell (Pflicht) |
| Heizenergie | Wärmemengenzähler, JAZ-Berechnung |
| Warmwasser | Wärmemengenzähler, JAZ-Berechnung, Nicht separat |
| Kompressor-Starts | Optional: kumulativer Total-Increasing-Sensor |
JAZ-basierte Berechnung (v3.23.8 Wording):
Wenn kein Wärmemengenzähler vorhanden ist, kann die Heizenergie über die Jahresarbeitszahl (JAZ) abgeleitet werden:
Heizenergie = Stromverbrauch × JAZ
JAZ vs. COP: Der Wert, den du im Wizard angibst, ist eine über das Jahr gemittelte Größe — also eine JAZ, kein Betriebspunkt-COP. Der Begriff COP bleibt im Backend für mathematisch-technische Berechnungs-Variablen (z. B.
cop_default, Strategy-Wertcop_berechnungfür API-Kompatibilität) reserviert.
WP-Kompressor-Starts-Sensor (v3.24.0, #136):
Optionaler kumulativer Anzahl-Zähler für den Wärmepumpen-Kompressor — z. B. aus der lokalen Nibe-Heat-Pump-Integration: sensor.compressor_number_of_starts_…. Der stündliche Snapshot-Job erfasst den Counter wie kWh-Zähler, der Tagesabschluss berechnet daraus stündliche und tägliche Differenzen. Anzeige in Auswertung → Energieprofil → Tagesdetail (Spalte „WP-Starts”, default ausgeblendet) und Auswertung → Energieprofil → Monat (Komponenten-Gruppe). Bewusst kein Fallback aus leistung_w oder Compressor-Binary — das würde gerade kurze Takte (wo der KPI sticht) systematisch unterzählen.
Schritt 5: E-Auto
Abschnitt betitelt „Schritt 5: E-Auto“| Feld | Strategien |
|---|---|
| km gefahren | HA-Sensor (Odometer), Manuell |
| Ladung PV | HA-Sensor, EV-Quote, Manuell |
| Ladung Netz | HA-Sensor, Berechnung, Manuell |
| V2H-Entladung | HA-Sensor, Manuell, Nicht aktiv |
EV-Quote Strategie:
Berechnet PV-Ladung basierend auf der Eigenverbrauchsquote:
Ladung PV = Gesamt-Ladung × Eigenverbrauchsquote
Schritt 6: Zusammenfassung
Abschnitt betitelt „Schritt 6: Zusammenfassung“- Übersicht aller konfigurierten Mappings (inkl. Solcast-Status, falls aktiviert)
- Sensoren mit Warnungen (z. B. fehlende Zuordnung, fehlende HA-Long-Term-Statistics)
- Button „Mapping speichern”
- Nach dem Speichern: Dialog „Startwerte initialisieren?” (siehe §5.4)
3.3 Sensor-Auswahl
Abschnitt betitelt „3.3 Sensor-Auswahl“Bei der Sensor-Auswahl werden alle relevanten HA-Sensoren angezeigt:
- Filterbar nach Namen oder Entity-ID
- Sortiert nach Relevanz (energy-Sensoren zuerst)
- Einheit wird angezeigt (kWh, W, etc.)
Filter & Fallback
Abschnitt betitelt „Filter & Fallback“Der Sensor-Filter wurde in v3.24.1 aufgeweicht, damit auch Roh-Counter ohne Standard-Metadaten erkannt werden:
state_class∈total_increasing/totalist immer zugelassen (Unit egal — kumulativer Counter ist per Definition Mapping-Kandidat).- Zusätzlich werden Sensoren mit ganzzahligem State ohne jegliche Metadaten (kein
state_class, keineunit_of_measurement) zugelassen — z. B. Coils der Nibe-Heat-Pump-Integration.
Wenn der gesuchte Sensor trotzdem nicht erscheint, gibt es einen Fallback-Link über dem Step-Inhalt: „Sensor nicht in der Auswahl? Alle Sensoren ohne Filter anzeigen.” On-demand werden alle sensor.*-Entities ungefiltert nachgeladen und in die bestehende Liste gemerged. Plan B außerhalb von EEDC: in HA customize.yaml state_class: total_increasing für den Roh-Counter ergänzen.
„ohne Statistik”-Badge (v3.24.1)
Abschnitt betitelt „„ohne Statistik”-Badge (v3.24.1)“Sensoren ohne state_class haben keine Einträge in HA’s statistics_meta-Tabelle — für kWh-Felder (Monatswerte, Vollbackfill) liefern sie still keine Daten. Counter-Felder (z. B. WP-Kompressor-Starts) sind nicht betroffen, weil sie über den Snapshot-Service laufen.
EEDC macht dieses Risiko an drei Stellen sichtbar:
- Backend-Schema:
HASensorInfo.has_statistics: bool(=state_class is not None). - Wizard-Dropdown: kleines amber-farbiges Badge „ohne Statistik” neben dem Sensor-Namen — sowohl in der Suchergebnis-Liste als auch in der „bereits gewählt”-Anzeige. Tooltip: „Für kWh-Felder ungeeignet, für Counter unproblematisch.”
- Daten-Checker-Kategorie „Sensor-Mapping – HA-Statistics” (siehe §8): meldet
WARNING, wenn ein kWh-Feld auf einen LTS-losen Sensor zeigt;INFOfür Counter;OK, wenn alle kWh-Sensoren in LTS verfügbar sind.
Live-Mappings (leistung_w, soc) werden nicht geprüft — sie lesen state direkt und brauchen kein LTS.
4. HA-Statistik Import
Abschnitt betitelt „4. HA-Statistik Import“Pfad: Einstellungen → Home Assistant → Statistik-Import
4.1 Übersicht
Abschnitt betitelt „4.1 Übersicht“Mit dem HA-Statistik Import kannst du alle historischen Monatsdaten seit der Installation deiner PV-Anlage automatisch aus der Home Assistant Langzeitstatistik-Datenbank importieren. Das ist besonders nützlich, wenn du:
- EEDC neu installiert hast und Altdaten übernehmen möchtest
- Monatsdaten nachträglich befüllen willst
- Von manueller auf automatische Erfassung umstellen möchtest
4.2 Voraussetzungen
Abschnitt betitelt „4.2 Voraussetzungen“- Sensor-Mapping konfiguriert: Die HA-Sensoren müssen den EEDC-Feldern zugeordnet sein
- Home Assistant Langzeitstatistiken: Deine Sensoren müssen in der HA-Datenbank gespeichert werden
- EEDC v2.0.0+: Das Volume-Mapping
config:romuss vorhanden sein
MariaDB/MySQL-Nutzer: Der HA-Statistik Import unterstützt seit v3.4.11 auch MariaDB und MySQL als Recorder-Backend — nicht nur SQLite. EEDC erkennt den Datenbanktyp automatisch anhand der konfigurierten Verbindungsdaten.
Tagesreset-Zähler (v3.23.8 Discussion #131): Bei Sensoren mit Tagesreset (Zähler springt täglich um 0:00 auf 0) nutzt EEDC seit v3.23.8 die
MAX(sum) − MIN(sum)-Spalte aus HA-Statistics statt einer State-Differenz. HA’ssum-Spalte ist die reset-bereinigte Kumulation — funktioniert auch bei Tagesreset und Mehrfach-Resets. Vorher lieferteMAX(state) − MIN(state)über einen Monat fälschlich die größte Tagessumme statt der Monatssumme (Symptom: „Aktueller Monat bleibt bei 60 kWh fest”).
⚠ Wichtig: Bei Update von v1.x auf v2.0.0 ist eine Neuinstallation des Add-ons erforderlich. Siehe CHANGELOG für die Upgrade-Anleitung.
4.3 Bulk-Import verwenden
Abschnitt betitelt „4.3 Bulk-Import verwenden“- Seite öffnen: Einstellungen → Home Assistant → Statistik-Import
- Datenbank-Status prüfen: Die Seite zeigt, ob die HA-Datenbank verfügbar ist
- Anlage auswählen: Wähle die Anlage für den Import
- Vorschau laden: Klicke auf „Vorschau laden”
- Monate auswählen: Jeder Monat hat eine Checkbox zur individuellen Auswahl
- Grün: Neue Monate ohne vorhandene Daten (standardmäßig ausgewählt)
- Grau: Bereits ausgefüllte Monate (standardmäßig nicht ausgewählt)
- Amber (Konflikt): Monate mit abweichenden HA-Werten
- Individuelle Auswahl: Aktiviere/Deaktiviere einzelne Monate nach Bedarf
- Import starten: Klicke auf „X Monate importieren”
4.4 Einzelne Monate laden
Abschnitt betitelt „4.4 Einzelne Monate laden“Es gibt zwei Wege, einzelne Monate aus HA-Statistik zu laden:
Option A: Über Monatsdaten-Seite
Abschnitt betitelt „Option A: Über Monatsdaten-Seite“Pfad: Einstellungen → Daten → Monatsdaten → „Aus HA laden”-Button
- Klicke auf den Button „Aus HA laden” (neben „Neuer Monat”)
- Wähle den gewünschten Monat aus der Liste verfügbarer HA-Statistik-Monate
- Bei neuem Monat: Die Werte werden direkt ins Formular übernommen
- Bei existierendem Monat: Ein Vergleichs-Modal zeigt die Unterschiede:
- Spalte „Vorhanden” zeigt aktuelle Werte in EEDC
- Spalte „HA-Statistik” zeigt Werte aus Home Assistant
- Spalte „Diff” zeigt die Abweichung (farbcodiert bei > 10 %)
- Wähle „HA-Werte übernehmen” oder „Abbrechen”
- Bearbeite die Werte bei Bedarf und speichere
Option B: Über Monatsabschluss-Wizard
Abschnitt betitelt „Option B: Über Monatsabschluss-Wizard“Pfad: Einstellungen → Daten → Monatsabschluss
- Wähle den gewünschten Monat
- Klicke auf „Werte aus HA-Statistik laden”
- Die Felder werden automatisch befüllt
- Bei E-Auto-Investitionen: Prüfe den vorgeschlagenen Ø Benzinpreis (aus EU Oil Bulletin)
- Bei Wärmepumpen-Investitionen: Prüfe den vorgeschlagenen Ø Gaspreis (wenn
gaspreis_cent_kwhin vergleichbaren Monaten gepflegt ist) - Prüfe die Werte und speichere
4.5 Startwerte beim Sensor-Mapping
Abschnitt betitelt „4.5 Startwerte beim Sensor-Mapping“Beim Speichern des Sensor-Mappings bietet EEDC zwei Optionen für die Startwerte:
- Aus HA-Statistik laden (empfohlen): Verwendet die gespeicherten Zählerstände vom Monatsanfang aus der HA-Datenbank
- Aktuelle Werte verwenden: Setzt die aktuellen Sensorwerte als Startwerte (Monatswert startet bei 0)
4.6 Konflikt-Erkennung
Abschnitt betitelt „4.6 Konflikt-Erkennung“Der Import schützt deine manuell erfassten Daten durch individuelle Auswahl:
| Situation | Standard-Auswahl | Beschreibung |
|---|---|---|
| Neuer Monat | ✓ Ausgewählt | Monat existiert noch nicht in EEDC |
| Leerer Monat | ✓ Ausgewählt | Monatsdaten vorhanden, aber alle Felder leer |
| Ausgefüllter Monat | ✗ Nicht ausgewählt | Mindestens ein Feld hat einen Wert |
| Konflikt | ✗ Nicht ausgewählt | Werte in EEDC weichen von HA ab |
Hinweis: Du kannst jeden Monat individuell per Checkbox auswählen oder abwählen.
5. Home Assistant Integration
Abschnitt betitelt „5. Home Assistant Integration“EEDC kann berechnete KPIs an Home Assistant exportieren und Sensordaten aus Home Assistant für die automatische Monatswertberechnung nutzen.
5.1 Voraussetzungen
Abschnitt betitelt „5.1 Voraussetzungen“- Home Assistant mit MQTT-Broker (Mosquitto Add-on)
- MQTT-Benutzer und Passwort
5.2 MQTT konfigurieren
Abschnitt betitelt „5.2 MQTT konfigurieren“Pfad: EEDC Add-on Konfiguration in Home Assistant
In der Add-on-Konfiguration:
mqtt: enabled: true host: "core-mosquitto" port: 1883 username: "dein_mqtt_user" password: "dein_mqtt_passwort"5.3 MQTT Auto-Discovery
Abschnitt betitelt „5.3 MQTT Auto-Discovery“Wenn du das Sensor-Mapping konfigurierst und speicherst (→ siehe §3 Sensor-Mapping), erstellt EEDC automatisch MQTT-Entities in Home Assistant.
Wie funktioniert es?
Abschnitt betitelt „Wie funktioniert es?“Für jedes gemappte Feld mit Strategie „HA-Sensor” werden zwei Entities erstellt:
| Entity-Typ | Zweck | Beispiel |
|---|---|---|
| Number | Speichert den Zählerstand vom Monatsanfang | number.eedc_winterborn_mwd_inv1_ladung_kwh_start |
| Sensor | Berechnet automatisch den Monatswert | sensor.eedc_winterborn_mwd_inv1_ladung_kwh_monat |
Zusammenspiel:
┌─────────────────────────────────┐ ┌────────────────────────────────┐│ HA-Sensor (z.B. Batteriezähler) │ │ Number (Startwert Monatsanfang)││ aktueller Wert: 12.500 kWh │ │ gespeicherter Wert: 12.345 kWh │└───────────────┬─────────────────┘ └──────────────┬─────────────────┘ │ │ └──────────────┬───────────────────────┘ ▼ ┌─────────────────────────────┐ │ Berechneter Sensor (Monat) │ │ = 12.500 - 12.345 = 155 kWh │ └─────────────────────────────┘Entity-Benennung
Abschnitt betitelt „Entity-Benennung“Die Entity-IDs enthalten den technischen Key für Eindeutigkeit:
number.eedc_{anlage}_{key}_start— Startwertsensor.eedc_{anlage}_{key}_monat— Monatswert
Die Friendly Names enthalten den Investitionsnamen für bessere Lesbarkeit:
- „EEDC BYD HVS 12.8 Ladung Monatsanfang”
- „EEDC SMA eCharger 22 Ladung Monat”
5.4 Monatsstartwerte initialisieren
Abschnitt betitelt „5.4 Monatsstartwerte initialisieren“Wichtig: Damit die automatische Monatswert-Berechnung funktioniert, müssen einmalig die Startwerte (Zählerstände vom Monatsanfang) gesetzt werden.
Wann ist das nötig?
Abschnitt betitelt „Wann ist das nötig?“- Erstmalige Einrichtung — nach dem Speichern des Sensor-Mappings
- Nach MQTT-Bereinigung — wenn Discovery-Messages gelöscht wurden
- Korrektur falscher Werte — bei Fehlern in den Startwerten
Methode 1: Über den Sensor-Mapping-Wizard (empfohlen)
Abschnitt betitelt „Methode 1: Über den Sensor-Mapping-Wizard (empfohlen)“- Gehe zu Einstellungen → Sensor-Zuordnung
- Nach dem Speichern erscheint ein Dialog „Startwerte initialisieren?”
- Klicke auf „Startwerte initialisieren”
- EEDC liest die aktuellen Zählerstände aus HA und setzt sie als Startwerte
Methode 2: Manuell in Home Assistant
Abschnitt betitelt „Methode 2: Manuell in Home Assistant“- Gehe zu Einstellungen → Geräte & Dienste → Entitäten
- Suche nach
number.eedc_ - Klicke auf eine Number-Entity (z. B.
number.eedc_winterborn_mwd_inv1_ladung_kwh_start) - Gib den aktuellen Zählerstand als Wert ein
Methode 3: Über die HA-Entwicklerwerkzeuge
Abschnitt betitelt „Methode 3: Über die HA-Entwicklerwerkzeuge“- Gehe zu Entwicklerwerkzeuge → Dienste
- Wähle
number.set_value - Entity:
number.eedc_winterborn_mwd_inv1_ladung_kwh_start - Value: Der aktuelle Zählerstand
5.5 MQTT-Bereinigung bei Problemen
Abschnitt betitelt „5.5 MQTT-Bereinigung bei Problemen“Falls Entities doppelt erscheinen (mit _2-Suffix) oder andere Probleme auftreten:
Lösung: Discovery-Messages löschen
Abschnitt betitelt „Lösung: Discovery-Messages löschen“Mit mosquitto_pub (im Terminal/SSH):
# Beispiel für eine Number-Entity löschen:mosquitto_pub -h core-mosquitto -t "homeassistant/number/eedc_1_mwd_inv1_ladung_kwh_start/config" -r -n
# Beispiel für eine Sensor-Entity löschen:mosquitto_pub -h core-mosquitto -t "homeassistant/sensor/eedc_1_mwd_inv1_ladung_kwh_monat/config" -r -nOder im MQTT Explorer:
- Navigiere zu
homeassistant/number/undhomeassistant/sensor/ - Lösche alle Topics, die mit
eedc_beginnen - Home Assistant neu starten
- In EEDC: Sensor-Mapping erneut speichern
5.6 KPI-Export (klassisch)
Abschnitt betitelt „5.6 KPI-Export (klassisch)“Zusätzlich zur automatischen Monatswertberechnung kannst du KPIs exportieren:
Pfad: Einstellungen → HA-Export → Sensoren publizieren
| Sensor | Einheit | Beschreibung |
|---|---|---|
sensor.eedc_pv_erzeugung | kWh | Gesamte PV-Erzeugung |
sensor.eedc_eigenverbrauch | kWh | Selbst verbrauchter PV-Strom |
sensor.eedc_autarkie | % | Autarkiegrad |
sensor.eedc_eigenverbrauchsquote | % | EV-Quote |
sensor.eedc_einsparung | € | Finanzielle Einsparung |
sensor.eedc_co2_einsparung | kg | Vermiedene Emissionen |
sensor.eedc_jahres_ersparnis_euro | € | Gesamt-Jahresersparnis inkl. WP-/E-Auto-/BKW-Beiträgen |
sensor.eedc_roi_prozent | % | Jahres-ROI |
sensor.eedc_amortisation_jahre | Jahre | Verbleibende Amortisation |
Komponenten-Beiträge in MQTT-Sensoren (v3.19.1):
jahres_ersparnis_euro,roi_prozentundamortisation_jahrerechnen die Alternativkosten-Ersparnisse von Wärmepumpe (vs. Gas/Öl), E-Auto (vs. Benzin) und Balkonkraftwerk mit ein — analog zu Aussichten → Finanzen. Vorher kam bei Anlagen mit WP/E-Auto eine absurd lange Amortisation heraus (z. B. 188,6 Jahre, weil nur PV-Netto-Ertrag gezählt wurde).
5.7 Alternative: REST API
Abschnitt betitelt „5.7 Alternative: REST API“Statt MQTT kannst du auch die REST API nutzen:
rest: - resource: http://localhost:8099/api/ha/export/sensors/1 scan_interval: 3600 sensor: - name: "EEDC PV Erzeugung" value_template: "{{ value_json.pv_erzeugung_kwh }}" unit_of_measurement: "kWh"6. MQTT-Inbound
Abschnitt betitelt „6. MQTT-Inbound“MQTT-Inbound ermöglicht es, Live-Leistungsdaten und Monatswerte von jedem Smarthome-System an EEDC zu senden.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- MQTT-Broker (z. B. Mosquitto)
- Smarthome-System mit MQTT-Publish-Fähigkeit (HA, ioBroker, FHEM, openHAB, Node-RED)
Topic-Struktur
Abschnitt betitelt „Topic-Struktur“EEDC definiert zwei Topic-Typen:
eedc/{anlage_id}/live/{key} → Echtzeit-Leistung in Watt (W)eedc/{anlage_id}/energy/{key} → Zählerstände in kWh (monoton steigend)Live-Topics werden für das Live Dashboard verwendet (→ siehe Teil II, §2 Live Dashboard), Energy-Topics für den Monatsabschluss.
Einrichtung
Abschnitt betitelt „Einrichtung“Pfad: Einstellungen → Home Assistant → MQTT-Inbound
- MQTT-Verbindung konfigurieren (Host, Port, User, Passwort)
- Topics werden automatisch basierend auf deinen Investitionen generiert
- Monitor zeigt eingehende Werte in Echtzeit
- Beispiel-Flows für dein Smarthome-System kopieren (HA, Node-RED, ioBroker, FHEM, openHAB)
Home Assistant Automation Generator
Abschnitt betitelt „Home Assistant Automation Generator“Für HA-Nutzer gibt es einen integrierten Automation Generator — kein manuelles YAML-Schreiben nötig:
- HA Automation Generator aufklappen
- Pro Topic deine HA-Entity eintragen (z. B.
sensor.pv_power) - Intervall wählen und fertiges YAML kopieren
- In Home Assistant einfügen (Einstellungen → Automatisierungen → YAML-Modus)
Der Generator erzeugt zwei Automationen: Live (Echtzeit-Leistung) und Energy (Zählerstände für Monatsabschluss).
Energy → Monatsabschluss
Abschnitt betitelt „Energy → Monatsabschluss“MQTT Energy-Daten erscheinen als Vorschläge im Monatsabschluss-Wizard (Konfidenz 91 %). Tageswerte werden aus SQLite-Snapshots berechnet (alle 5 Minuten gespeichert, 31 Tage Retention).
Topic-Drift erkennen: Sobald in EEDC neue Felder dazukommen oder Investitions-IDs nach einem Re-Import wechseln, kann der statische Publisher (HA-Automation/iobroker/Node-RED) gegen den dynamisch aus
field_definitions.pyerzeugten Konsumenten driften. Der Daten-Checker meldet das in der Kategorie MQTT-Topic-Abdeckung (siehe §8) — pro Anlage erscheinen die fehlenden bzw. veralteten Topics mit Beispielen.
7. MQTT-Gateway
Abschnitt betitelt „7. MQTT-Gateway“Pfad: Einstellungen → Home Assistant → MQTT-Gateway
Das MQTT-Gateway ergänzt den MQTT-Inbound um ein flexibles Topic-Mapping: Du kannst die MQTT-Topics deiner eigenen Geräte (Shelly, OpenDTU, Tasmota, …) direkt auf EEDC-Felder mappen — ohne dein Smarthome-System zu ändern.
Unterschied zu MQTT-Inbound: MQTT-Inbound erwartet Daten auf fixen EEDC-Topics (
eedc/{id}/live/...). Das Gateway übersetzt beliebige eigene Topics in diese Struktur.
7.1 Geräte-Presets
Abschnitt betitelt „7.1 Geräte-Presets“Für gängige Geräte sind fertige Mapping-Vorlagen hinterlegt. Klicke auf „Preset laden” und wähle dein Gerät:
| Preset | Unterstützte Geräte |
|---|---|
| Shelly | Shelly Pro 3EM, Shelly EM, Shelly Plus 1PM |
| OpenDTU | OpenDTU (alle Wechselrichter-Typen) |
| Tasmota | Tasmota Energy-Template |
| Fronius Push | Fronius Solar API Push |
| SMA | SMA Speedwire MQTT Bridge |
Nach dem Laden eines Presets werden die Topic-Pfade mit deinen Gerätedaten (z. B. Seriennummer) befüllt.
7.2 Manuelles Topic-Mapping
Abschnitt betitelt „7.2 Manuelles Topic-Mapping“Für Geräte ohne Preset kannst du das Mapping manuell konfigurieren:
- EEDC-Zielfeld wählen (z. B. „PV-Leistung gesamt”)
- Quell-Topic eingeben (z. B.
solar/openDTU12345/total/Power) - JSON-Pfad angeben, falls das Payload ein JSON-Objekt ist (z. B.
data.power) - Einheit wählen (W oder kW — wird automatisch umgerechnet)
- Testen: Klicke „Letzte Nachricht”, um den empfangenen Wert sofort zu prüfen
7.3 Bridge-Modus (Connector → MQTT)
Abschnitt betitelt „7.3 Bridge-Modus (Connector → MQTT)“Geräte-Connectors (SMA, Fronius etc.) können ihre Messwerte über die MQTT-Bridge regelmäßig auf EEDC-Topics publishen — auch wenn das Gerät kein natives MQTT spricht:
Pfad: Einstellungen → Datenerfassung → Connector → „Als MQTT-Bridge aktivieren”
- Abruf-Intervall: 30 s, 60 s, 5 min (je nach Gerät)
- Published auf:
eedc/{anlage_id}/live/{key} - Ersetzt manuelles MQTT-Senden aus dem Smarthome-System
7.4 Diagnose
Abschnitt betitelt „7.4 Diagnose“Der Gateway-Tab zeigt live:
- Verbindungsstatus zum MQTT-Broker
- Letzte empfangene Nachricht pro Topic (Wert, Zeitstempel)
- Fehlermeldungen bei nicht auflösbaren JSON-Pfaden
8. Daten-Checker
Abschnitt betitelt „8. Daten-Checker“Pfad: Einstellungen → System → Daten-Checker
Der Daten-Checker prüft die Qualität deiner erfassten Daten in 8 Kategorien — von Stammdaten und Strompreisen über Plausibilität der Monatsdaten bis zu MQTT-Topic-Abdeckung und HA-Long-Term-Statistics-Verfügbarkeit der gemappten Sensoren. Pro Befund liefert er Severity (ERROR/WARNING/INFO/OK), erklärenden Text und einen „Beheben”-Link direkt zur betroffenen Stelle.
Severity-Übersicht
Abschnitt betitelt „Severity-Übersicht“| Symbol | Stufe | Bedeutung |
|---|---|---|
| ❌ | ERROR | Kerndaten fehlen oder Werte sind logisch unmöglich — Auswertungen sind betroffen. |
| ⚠️ | WARNING | Plausibilitäts-Abweichung oder fehlende Pflicht-Parameter — App rechnet, blendet aber Bereiche aus. |
| ℹ️ | INFO | Hinweis auf optionale Felder; Reaktion abhängig vom Anwendungsfall. |
| ✅ | OK | Prüfung bestanden. |
Vollständige Doku mit allen 8 Kategorien, Befund-Tabellen, Variantenmatrix HA Add-on vs. Standalone und Behebungs-Workflows: Daten-Checker-Handbuch (auch in der In-App-Hilfe unter Hilfe → Handbuch → Daten-Checker).
9. Protokolle
Abschnitt betitelt „9. Protokolle“Pfad: Einstellungen → System → Protokolle
Die Protokolle-Seite ist das zentrale Werkzeug zur Fehlersuche. Sie besteht aus zwei Tabs und bietet Debug-Modus sowie Neustart direkt im Header.
Header-Aktionen
Abschnitt betitelt „Header-Aktionen“| Button | Funktion |
|---|---|
| Debug (Käfer-Icon) | Schaltet den Log-Level zwischen INFO und DEBUG um. Debug zeigt alle Detail-Meldungen — ideal für Fehlersuche, danach wieder deaktivieren (erhöhter Speicherverbrauch). Kein Restart nötig. |
| Neustart (Pfeil-Icon) | Startet EEDC neu. Bei HA über die Supervisor-API, Standalone über Container-Restart. Bestätigungsdialog vor Ausführung. |
Tab 1: System-Logs
Abschnitt betitelt „Tab 1: System-Logs“Echtzeit-Logviewer mit In-Memory Ring Buffer (max. 500 Einträge, gehen bei Restart verloren).
Filter:
- Level — DEBUG, INFO, WARNING, ERROR (Minimum-Filter: WARNING zeigt auch ERROR)
- Modul — Freitextsuche im Logger-Namen (z. B. „connector”, „mqtt”, „wetter”)
- Suche — Freitextsuche in Log-Nachrichten
Aktionen:
- Auto-Refresh (Play/Pause) — Aktualisiert alle 5 Sekunden
- Copy (Clipboard-Icon) — Kopiert alle sichtbaren Logs als Markdown-Tabelle in die Zwischenablage, ideal zum Einfügen in GitHub Issues
- Download (Pfeil-Icon) — Exportiert gefilterte Logs als
.txt-Datei
Typische Fehlersuche im System-Logs Tab:
| Problem | Filter-Tipp |
|---|---|
| API-Fehler | Level: ERROR |
| MQTT-Probleme | Suche: „MQTT” oder Modul: „mqtt” |
| Wetter-API schlägt fehl | Suche: „Open-Meteo” oder „Bright Sky” |
| Solar-Prognose fehlt | Suche: „Solar” |
| Connector liest nicht | Modul: „connector”, Level: WARNING |
Tab 2: Aktivitäten
Abschnitt betitelt „Tab 2: Aktivitäten“Persistentes Aktivitätsprotokoll in der Datenbank (überlebt Restarts, automatisch bereinigt nach 90 Tagen / max. 1000 Einträge).
Filter:
- Kategorie — Dropdown mit allen Kategorien
- Status — Erfolgreich / Fehlgeschlagen
- Suche — Freitextsuche in Aktion und Details (z. B. „sma_ennexos”, „fehlgeschlagen”)
Aktionen:
- Copy (Clipboard-Icon) — Kopiert sichtbare Aktivitäten als Markdown-Liste
- Bereinigen (Papierkorb) — Löscht Einträge älter als 90 Tage, zeigt Toast mit Anzahl
- Pagination — Blättern durch ältere Einträge
Protokollierte Kategorien:
| Kategorie | Was wird protokolliert |
|---|---|
| Connector-Test | Verbindungstests zu Geräten (SMA, Fronius etc.) |
| Connector-Einrichtung | Neue Connector-Konfigurationen |
| Connector-Abruf | Zählerstand-Abfragen (Erfolg/Fehler) |
| Portal-Import | CSV-/Portal-Imports |
| Cloud-Import | Cloud-Verbindungstests (Growatt, Fronius etc.) |
| Cloud-Fetch | Monatliche Cloud-Datenabrufe |
| Backup-Export | JSON-Anlagen-Exporte |
| Backup-Import | JSON-Anlagen-Imports mit Details |
| Monatsabschluss | Monatsdaten speichern |
| HA-Statistiken | HA Recorder DB-Abfragen und Bulk-Imports |
| Scheduler-Jobs | Hintergrund-Tasks (Monatswechsel, Energie-Profil, MQTT-Snapshots, Sensor-Snapshots) |
| MQTT | Inbound/Gateway/Bridge Start und Verbindungsverluste |
| Community | Daten teilen/löschen, Server-Timeout |
| Sensor-Mapping | Sensor-Zuordnungen speichern/löschen |
| HA-Export | MQTT-Sensoren publizieren/entfernen |
Fehlersuche-Workflow
Abschnitt betitelt „Fehlersuche-Workflow“Bei einem Support-Fall empfehlen wir diesen Ablauf:
- Debug-Modus aktivieren (Button im Header)
- Problem reproduzieren (Aktion wiederholen, die fehlschlägt)
- System-Logs prüfen — Level: WARNING, Suche nach dem betroffenen Modul
- Aktivitäten prüfen — Kategorie filtern oder nach Stichwort suchen
- Logs kopieren — Copy-Button drücken, in GitHub Issue einfügen
- Debug-Modus deaktivieren (nicht vergessen!)
10. Energieprofile — Hintergrund
Abschnitt betitelt „10. Energieprofile — Hintergrund“EEDC sammelt automatisch stündliche Energiedaten und verdichtet sie zu Tages- und Monatswerten. Der Datenfluss:
Snapshot-basierte Architektur (ab v3.19.0, #135)
Abschnitt betitelt „Snapshot-basierte Architektur (ab v3.19.0, #135)“Stunden-kWh kommen seit v3.19.0 nicht mehr aus der Integration von 10-Min-Leistungs-Samples, sondern aus kumulativen Zähler-Snapshots:
- Stündlicher Snapshot-Job (Cron
:05) schreibt pro Anlage und gemapptem kWh-Sensor den aktuellen kumulativen Zählerstand in die Tabellesensor_snapshots. Quellen: HA Long-Term Statistics (Add-on) oder MQTT-Energy-Snapshots (Standalone/Docker). :55-Live-Preview (ab v3.21.0): zusätzlich zur :05-Aufnahme wird zum Stundenende ein Live-Snapshot geschrieben — die laufende Stunde ist damit sofort am Stundenende sichtbar statt erst um (h+1):05.- Tageszusammenfassung (00:15 für den Vortag): aus den 25 Snapshot-Werten (h = -1..23) werden pro Stunde Differenzen gebildet → 24 Stundenwerte. Snapshot-Lücken werden seit v3.20.0 (#145) linear zwischen Nachbar-Stunden interpoliert, statt das Delta in eine einzige Folge-Stunde aufzustauen. Tagessumme bleibt in jedem Fall korrekt (
snap[24] − snap[0]). - Monats-Rollup: Beim Monatsabschluss werden Tageszusammenfassungen zu Monatswerten verdichtet.
Phase D Cleanup (v3.21.0): Seit v3.21.0 ist der Zähler-Snapshot-Pfad die einzige kWh-Quelle — der frühere W-Integration-Fallback und das
EEDC_ENERGIEPROFIL_QUELLE-Feature-Flag sind entfernt. Auf Anlagen mit korrekt gemappten Energiezählern unverändert; auf Anlagen ohne Mapping erscheinen Stunden-kWh-Felder alsNULLstatt geschätzter Werte (siehe „Strikte NULL-Semantik”).
Backward-Slot-Konvention (ab v3.20.0, #144)
Abschnitt betitelt „Backward-Slot-Konvention (ab v3.20.0, #144)“Slot N enthält die Energie aus dem Intervall [N−1, N) — „die letzte Stunde”. Industriestandard, konsistent mit HA Energy Dashboard, SolarEdge, SMA, Fronius, Tibber. Slot 0 eines Tages enthält die Energie 23:00–24:00 des Vortags. Strompreis-Stunden bleiben Forward ([N, N+1), „gilt ab jetzt”). Nach Update auf v3.20.0 nötig: einmalig „Verlauf nachberechnen + überschreiben” auslösen.
Strikte NULL-Semantik (ab v3.19.0)
Abschnitt betitelt „Strikte NULL-Semantik (ab v3.19.0)“Wenn keine kumulativen Zähler gemappt sind, bleiben die betroffenen TagesEnergieProfil-Felder NULL statt aus Leistungs-Samples geschätzt zu werden. Im Frontend zeigt EEDC ein ⚠-Badge neben IST-Werten bei Datenlücken — Klick öffnet den Reparatur-Popover (siehe Teil II §7.2).
Restart-Recovery (v3.23.0)
Abschnitt betitelt „Restart-Recovery (v3.23.0)“Wird das Add-on zwischen :55 und :05 der Folgestunde neu gestartet, fehlten die Snapshots der laufenden und ggf. der gerade abgeschlossenen Stunde, weil die Cron-Trigger keine Misfire-Recovery hatten. sensor_snapshot_startup_recovery() läuft nach Scheduler-Start im Hintergrund: holt für die letzten 6 Stunden je Anlage HA-Statistics-Snapshots (idempotent dank Upsert) und für die laufende Stunde zusätzlich einen Live-Snapshot. Anschließend aggregate_today_all für sofortige Sichtbarkeit.
Tagesreset-Heuristik für utility_meter
Abschnitt betitelt „Tagesreset-Heuristik für utility_meter“HA-utility_meter-Sensoren mit täglichem Reset (z. B. „Erzeugung heute”) werfen um Mitternacht ein stark negatives Delta. Seit v3.23.0 erkennt EEDC das Daily-Reset-Muster (s1 < 0.5 ∧ s0 > 0.5) und nimmt max(0, s1) als Slot-0-Wert (Energie seit Reset, typ. ≈ 0 nachts). Vorher war Slot 0 dauerhaft None und der ganze Tag wurde als „IST unvollständig” geflaggt.
WP-Kompressor-Starts (ab v3.24.0, #136)
Abschnitt betitelt „WP-Kompressor-Starts (ab v3.24.0, #136)“Optional pro WP-Investition über einen Total-Increasing-Sensor. Architektur trennt Counter-Felder strikt von kWh-Feldern (KUMULATIVE_COUNTER_FELDER), damit reine Counter nicht versehentlich in die Energie-Bilanz fließen. Vollbackfill aus HA Long-Term Statistics greift für Tages-Summen (Faktor 1.0 statt 0.001 bei unbekannter Einheit); Stunden-Detail wird ab Live-Erfassung gefüllt.
Day-Ahead-Stundenprofil-Snapshot (intern, ab v3.23.4)
Abschnitt betitelt „Day-Ahead-Stundenprofil-Snapshot (intern, ab v3.23.4)“Zwei JSON-Felder in TagesZusammenfassung (pv_prognose_stundenprofil, solcast_prognose_stundenprofil) speichern den ersten OpenMeteo-/Solcast-Forecast des Tages als 24-Werte-Liste (Backward-Slot-Konvention). First-write-wins: spätere Aufrufe am selben Tag überschreiben das Profil nicht. Reine Hintergrund-Datensammlung für künftige Diagnostik (Korrekturprofil-Konzept).
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Ein Sensor-Mapping muss eingerichtet sein (kumulative kWh-Zähler für PV, Verbrauch etc.)
- Funktioniert mit HA-Sensoren und MQTT-Inbound
- HA-History hat nur ~10 Tage Retention. EEDC sichert die Daten dauerhaft, sodass auch langfristige Analysen (Jahresvergleiche, Speicher-Dimensionierung) möglich sind.
Datenbestand & Aktionen
Abschnitt betitelt „Datenbestand & Aktionen“UI-Bedienung: Einstellungen → Daten → Energieprofil — siehe §1.6.
Kraftstoffpreis-Backfill (ab v3.17.0)
Abschnitt betitelt „Kraftstoffpreis-Backfill (ab v3.17.0)“Für die korrekte Berechnung der E-Auto-Ersparnis nutzt EEDC echte monatliche Benzinpreise aus dem EU Weekly Oil Bulletin. Um Monatsdaten rückwirkend mit Preisen zu befüllen:
API:
POST /api/energie-profil/{anlage_id}/kraftstoffpreis-backfill/tages— befülltTagesZusammenfassung.kraftstoffpreis_euroPOST /api/energie-profil/{anlage_id}/kraftstoffpreis-backfill/monats— befülltMonatsdaten.kraftstoffpreis_euro
(Der frühere kombinierte Endpoint ist als Alias erhalten geblieben.)
UI-Bedienung:
- Tagesebene: Einstellungen → Daten → Energieprofil → Kraftstoffpreis-Backfill (Tages) — sichtbar nur bei offenen Tagen.
- Monatsebene: Einstellungen → Daten → Monatsdaten — Datenverwaltungs-Abschnitt unten, sichtbar nur bei offenen Monaten.
Der Backfill nutzt die Oil Bulletin History (seit 2005) und setzt nur Werte, wo noch keiner vorhanden ist. Kann gefahrlos mehrfach aufgerufen werden (z. B. nach jedem Datenimport).
Automatisch: Ein Scheduler-Job läuft wöchentlich (Dienstag 06:00) und befüllt neue Tage automatisch.
Letzte Aktualisierung: April 2026 (v3.24.1)