Skip to content

dr-apple/Solar-Load-Split

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Solar Load Split

Solar Load Split Logo

Solar Load Split ist eine Home-Assistant Custom Integration fuer HACS. Sie teilt den Verbrauch eines Geraets in zwei Anteile auf:

  • Solar/PV-Leistung und Solar/PV-Energie
  • Netz-Leistung und Netz-Energie

Die Einrichtung laeuft komplett ueber die Home-Assistant-Oberflaeche. YAML ist nicht noetig.

Was Macht Die Integration?

Du richtest einmal deinen Netzbezug-/Einspeise-Leistungssensor ein. Danach kann Solar Load Split passende Geraete-Leistungssensoren erkennen oder manuell hinzufuegen. Optional kannst du pro Geraet auch einen Energiezaehler des gleichen Zwischensteckers oder Shelly auswaehlen.

Aus jedem Geraet entstehen zwoelf Sensoren:

Sensor Einheit Device class State class
<Gerätename> PV Leistung kW power measurement
<Gerätename> Netz Leistung kW power measurement
<Gerätename> PV Energie kWh energy total_increasing
<Gerätename> Netz Energie kWh energy total_increasing
<Gerätename> PV Tagesenergie kWh energy total
<Gerätename> Netz Tagesenergie kWh energy total
<Gerätename> PV Wochenenergie kWh energy total
<Gerätename> Netz Wochenenergie kWh energy total
<Gerätename> PV Monatsenergie kWh energy total
<Gerätename> Netz Monatsenergie kWh energy total
<Gerätename> PV Jahresenergie kWh energy total
<Gerätename> Netz Jahresenergie kWh energy total

Die kWh-Sensoren sind fuer das Home-Assistant Energy Dashboard vorbereitet:

  • device_class: energy
  • native_unit_of_measurement: kWh
  • Gesamtzaehler: state_class: total_increasing
  • Tages-/Wochen-/Monats-/Jahreszaehler: state_class: total
  • last_reset = None

Bilder Zur Einrichtung

1. Netzsensor Einmalig Einrichten

Basiseinrichtung mit Netzsensor

Der Netzsensor muss Leistung in W oder kW liefern.

Nach optionaler Umkehrung gilt:

  • positiv = Netzbezug
  • negativ = Einspeisung
  • innerhalb der Netz-Totzone = PV/Akku, wird als PV gezaehlt
  • PV/Akku-Anteil = Geraete-Leistung minus echter Netzbezug

Wenn dein Zaehler die Vorzeichen andersherum liefert, aktiviere Netz-Vorzeichen umkehren.

2. Entdeckte Geraete Bestaetigen

Entdeckte Geraete

Solar Load Split durchsucht vorhandene sensor-Entitaeten nach Leistungssensoren:

  • device_class: power
  • oder Einheit W / kW

Offensichtliche Netzsensoren werden als Geraetesensor uebersprungen, wenn Name oder Entity-ID typische Begriffe enthalten, zum Beispiel:

  • grid
  • netz
  • meter
  • utility
  • einspeis
  • bezug

Fuer jedes passende, noch nicht konfigurierte Geraet wird ein eigener Entdeckt-Eintrag angelegt.

3. Erzeugte Sensoren

Erzeugte Sensoren

Alle Sensoren werden unter einem virtuellen Geraet gruppiert. Der Name, den du beim Hinzufuegen vergibst, wird direkt in die Entitaetsnamen uebernommen.

Installation

HACS Custom Repository

  1. In HACS ein neues benutzerdefiniertes Repository hinzufuegen.
  2. Kategorie Integration auswaehlen.
  3. Repository installieren.
  4. Home Assistant neu starten.
  5. Einstellungen > Geraete & Dienste > Integration hinzufuegen oeffnen.
  6. Solar Load Split suchen und hinzufuegen.

Manuelle Installation

  1. Den Ordner custom_components/pv_device_split nach config/custom_components/pv_device_split kopieren.
  2. Home Assistant neu starten.
  3. Einstellungen > Geraete & Dienste > Integration hinzufuegen oeffnen.
  4. Solar Load Split suchen und hinzufuegen.

Einrichtung

Basis-Eintrag

Beim ersten Einrichten fragt Solar Load Split nach:

  • name: Anzeigename des Basis-Eintrags
  • grid_power: Netzbezug-/Einspeise-Leistungssensor
  • invert_grid: optional, wenn dein Netzsensor die Vorzeichen andersherum liefert
  • enable_discovery: automatische Erkennung aktivieren oder deaktivieren, Standard ist aus
  • grid_buffer_seconds: zeitlicher Netzpuffer in Sekunden
  • grid_deadband_watts: Netz-Totzone in Watt, Standard ist 100 W

Dieser Basis-Eintrag erzeugt noch keine Split-Sensoren. Er speichert nur den Netzsensor, der fuer alle Geraete verwendet wird.

Der zeitliche Netzpuffer entprellt nur den Wechsel zwischen Netzbezug und Einspeisung. Die aktuelle Leistungshoehe wird nicht gemittelt. Das verhindert, dass Solar Load Split bei kurzen Akku-/Wechselrichter-Schwankungen sofort zwischen Netzbezug und Einspeisung springt. 0 deaktiviert den Puffer. Standard ist 0 Sekunden.

Die Netz-Totzone behandelt kleine Werte rund um 0 W als PV-/Akku-Versorgung. Beispiel: Bei 100 W Totzone werden +80 W Netzbezug oder -50 W Einspeisung nicht als echter Netzbezug gezaehlt. Das ist hilfreich, wenn ein Akku oder Wechselrichter den Netzanschlusspunkt regelt und der Zaehler staendig kleine Werte wie 9-80 W meldet. Innerhalb der Totzone zaehlt Solar Load Split die aktuelle Geraete-Leistung als PV-Energie und die Netz-Energie bleibt bei 0.

Wichtig: Der Netzsensor zeigt den Wert am Hausanschluss nach dem Geraet. Darum wird der echte Netzanteil des Geraets aus dem positiven Netzbezug abgeleitet und auf die Geraete-Leistung begrenzt. Alles, was nicht durch echten Netzbezug gedeckt ist, wird als PV-/Akku-Anteil gezaehlt.

Automatische Erkennung

Nach dem Laden des Basis-Eintrags scannt Solar Load Split vorhandene Leistungssensoren und erstellt Vorschlaege unter Entdeckt.

Wenn Automatische Erkennung aktivieren ausgeschaltet ist, werden keine Discovery-Vorschlaege erzeugt. Manuelles Hinzufuegen funktioniert weiterhin. Der Schalter ist standardmaessig ausgeschaltet.

Der Scan laeuft:

  • beim Start von Home Assistant
  • wenn der Basis-Eintrag geladen wird
  • wenn ein Solar-Load-Split-Eintrag geladen wird
  • zusaetzlich verzoegert nach dem Start, damit spaet geladene Sensoren erkannt werden

Wenn spaeter neue Leistungssensoren hinzukommen, lade die Integration neu oder starte Home Assistant neu.

Geraet Manuell Hinzufuegen

Wenn ein Sensor nicht automatisch erkannt wird:

  1. Integration hinzufuegen oeffnen.
  2. Solar Load Split erneut auswaehlen.
  3. Falls Home Assistant erst eine Auswahlseite zeigt, Eine weitere Instanz von Solar Load Split einrichten auswaehlen.
  4. Der Dialog Geraet manuell hinzufuegen oeffnet sich direkt.
  5. Geraete-Leistungssensor auswaehlen.
  6. Optional den Geraete-Energiesensor des gleichen Messgeraets auswaehlen.
  7. Falls noetig Netzsensor kontrollieren oder auswaehlen.
  8. Bestaetigen.

Der Netzsensor und invert_grid werden aus dem Basis-Eintrag uebernommen, wenn ein passender Eintrag erkannt wurde. Andernfalls kannst du sie im manuellen Dialog auswaehlen.

Bestehende Eintraege Aendern

Bereits eingerichtete Eintraege kannst du ueber Konfigurieren bearbeiten.

Je nach Eintrag kannst du anpassen:

  • Name
  • Geraete-Leistungssensor
  • Geraete-Energiesensor
  • Netzbezug-/Einspeise-Leistungssensor
  • Netz-Vorzeichen umkehren
  • Automatische Erkennung aktivieren
  • Zeitlicher Netzpuffer
  • Netz-Totzone

Nach dem Speichern wird der Eintrag automatisch neu geladen.

Berechnungslogik

Die Aufteilung nutzt immer den Geraete-Leistungssensor und den Netzsensor. Wenn ein optionaler Geraete-Energiesensor vorhanden ist, werden die echten kWh-Deltas dieses Sensors auf PV und Netz verteilt. Das liefert die genaueste Summe, weil PV + Netz dann direkt an den echten Energiezaehler des Zwischensteckers oder Shelly gekoppelt ist.

if invert_grid:
    grid_power = grid_power * -1

grid_power sign changes are delayed by grid_buffer_seconds

if abs(grid_power) <= grid_deadband_watts:
    grid_power = 0

grid_used = min(max(grid_power, 0), device_power)
pv_used = max(device_power - grid_used, 0)

if device_energy is available:
    device_energy_delta = current_device_energy - last_device_energy
    grid_energy_delta = device_energy_delta * grid_used / (pv_used + grid_used)
    pv_energy_delta = device_energy_delta - grid_energy_delta
else:
    grid_energy_delta = grid_used * elapsed_time
    pv_energy_delta = pv_used * elapsed_time

Ausgabe:

  • Leistungssensoren in kW
  • Energiesensoren in kWh
  • Rundung auf 2 Nachkommastellen

Intern rechnet Solar Load Split mit voller Praezision und rundet erst fuer die Anzeige der Sensorwerte.

Ordnerstruktur

.
├── docs/
│   └── images/
│       ├── setup-01-grid.svg
│       ├── setup-02-discovery.svg
│       └── setup-03-entities.svg
├── hacs.json
├── logo.svg
├── README.md
└── custom_components/
    └── pv_device_split/
        ├── __init__.py
        ├── config_flow.py
        ├── const.py
        ├── discovery.py
        ├── icon.svg
        ├── manifest.json
        ├── sensor.py
        ├── strings.json
        └── translations/
            ├── de.json
            └── en.json

Hinweise

  • Die Integration ist UI-only.
  • Die Integration ist HACS-kompatibel.
  • Deutsch und Englisch werden ueber Home-Assistant-Translations unterstuetzt.
  • Jeder Split-Eintrag hat stabile Unique IDs.
  • Bestehende Entitaetsnamen werden von Home Assistant im Entity Registry gespeichert. Wenn du Namen nach einem Update testen willst, loesche den betroffenen Eintrag und fuege ihn neu hinzu oder setze die Namen manuell zurueck.

English Short Version

Solar Load Split is a HACS-compatible Home Assistant custom integration. It splits one device power sensor into solar/PV usage and grid usage.

Setup is UI-only:

  1. Add Solar Load Split once and select the grid import/export power sensor.
  2. Positive grid power means import, negative grid power means export/feed-in.
  3. Confirm discovered device power sensors or add a device manually by adding Solar Load Split again.
  4. Each device creates PV power, grid power, PV energy, and grid energy sensors.

The grid sensor is assumed to measure the house connection after the device load. The device grid share is therefore the current positive grid import, limited to the device power. The remaining device power is counted as PV/battery share.

Energy sensors use kWh, device_class: energy, state_class: total_increasing, and last_reset = None.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages