Skip to content

Releases: dr-apple/Solar-Load-Split

v1.0.2

Choose a tag to compare

@dr-apple dr-apple released this 08 Aug 12:13

Home Assistant 2026.8 thread-safety fix.

  • Keeps delayed automatic discovery callbacks on Home Assistant's event loop.
  • Prevents hass.async_create_task from being called from a worker thread.
  • Restores reliable delayed sensor discovery after startup.
  • Includes regression coverage.

Solar Load Split 1.0.1

Choose a tag to compare

@dr-apple dr-apple released this 08 Aug 08:47

Home Assistant 2026.8 compatibility release. Fixes startup availability, entity naming migration, discovery retries, option reloads, validation, and adds automated tests.

V0.30

Choose a tag to compare

@dr-apple dr-apple released this 07 Jun 10:49

das war ein echter Integrationsfehler und ich habe ihn gefixt.
Die Ursache war, dass pv_device_split an zwei Stellen hass.async_create_task(...) benutzt hat. Diese Variante darf nur direkt im Event-Loop-Thread aufgerufen werden. In deinem Fall wurde das offenbar manchmal aus einem anderen Kontext ausgelöst, daher die Meldung:
custom integration 'pv_device_split' calls hass.async_create_task from a thread other than the event loop
Ich habe die Stellen auf die thread-sichere HA-Variante umgestellt:
discovery.py
config_flow.py

V0.20

Choose a tag to compare

@dr-apple dr-apple released this 22 Apr 08:52

Solar Load Split kann pro Gerät jetzt optional einen Geräte-Energiesensor nutzen, also den kWh-Sensor vom gleichen Shelly/Zwischenstecker. Wenn du den setzt, verteilt die Integration nicht mehr nachgerechnete Energie aus Watt, sondern die echten kWh-Deltas des Messgeräts auf PV und Netz. Genau das sollte solche Ausreißer wie bei der Klima deutlich sauberer machen.

Die Änderungen sitzen in config_flow.py, sensor.py, const.py und den Übersetzungen in de.json. Die Doku habe ich auch angepasst in README.md.

Geprüft mit:

python3 -m compileall -q custom_components/pv_device_split

Wichtig für dich jetzt: Bei den bestehenden Einträgen auf Konfigurieren gehen und den passenden Energiesensor des Geräts (optional) auswählen. Erst dann läuft der jeweilige Eintrag auf der neuen, genaueren kWh-Basis. Für Obergeschoss Klima würde ich genau damit anfangen.

V0.19

Choose a tag to compare

@dr-apple dr-apple released this 21 Apr 07:16

ich glaube jetzt ist der wahrscheinlichere Fehler gefunden: nicht mehr die Aufteilungsformel selbst, sondern die Rundung vor der Energieintegration.

Bisher hat Solar Load Split erst die Leistung auf 0,01 kW gerundet und dann daraus die kWh aufsummiert. Dadurch konnten sich PV- und Netz-Tageswerte über den Tag merklich vom echten Gesamtverbrauch wegdrücken.

Ich habe das geändert:

intern jetzt volle Präzision
Rundung auf 2 Nachkommastellen erst bei der Anzeige
dadurch sollten PV + Netz viel sauberer zum Gesamtverbrauch passen
Geändert in sensor.py, Doku ergänzt in README.md.

Geprüft mit:

python3 -m compileall -q custom_components/pv_device_split

Wichtig: Bereits angelaufene Tageswerte werden dadurch nicht rückwirkend repariert. Am besten Integration neu laden und den nächsten frischen Tageslauf vergleichen. Wenn es dann immer noch stark abweicht, schauen wir als Nächstes auf den Quellsensor für den Hausverbrauch und ob er zeitlich wirklich exakt zur gleichen Basis zählt wie unsere PV-/Netz-Tageszähler.

V0.18

Choose a tag to compare

@dr-apple dr-apple released this 20 Apr 18:58

Der Netzsensor misst am Hausanschluss nachdem das Auto schon lädt. Deshalb war die alte Formel falsch.

Alt war sinngemäß:

PV = nur die sichtbare Einspeisung

Das ist beim Überschussladen falsch, weil dein Auto den PV-Überschuss ja schon verbraucht hat. Wenn nach dem Laden noch wenig oder keine Einspeisung sichtbar ist, heißt das nicht, dass das Auto aus dem Netz geladen hat.

Ich habe die Berechnung jetzt geändert auf:

netz_anteil = aktueller positiver Netzbezug, begrenzt auf Geräte-Leistung
pv_akku_anteil = Geräte-Leistung - netz_anteil
Beispiel:

Auto lädt: 11.000 W
Haus-Netzbezug: 500 W

Auto Netz = 500 W
Auto PV/Akku = 10.500 W
Bei Einspeisung oder innerhalb der Netz-Totzone:

Auto Netz = 0 W
Auto PV/Akku = komplette Auto-Leistung
Damit kann dein Auto-Sensor nicht mehr mehr Netz-kWh zählen als am Hausanschluss überhaupt bezogen wurde. In deinem Beispiel mit nur 3,16 kWh realem Netzbezug hätte 7,18 kWh Auto-Netzbezug also genau aus der alten falschen Logik kommen können.

Geändert in sensor.py und die Berechnungsbeschreibung in README.md angepasst.

V0.17

Choose a tag to compare

@dr-apple dr-apple released this 17 Apr 18:14

Ich habe die Totzone jetzt korrigiert:

-100 W bis +100 W = PV/Akku-Versorgung

Also bei deinem Beispiel:

Gerät zieht 500 W
Netzsensor schwankt bei +9 W bis +80 W
Netz-Totzone steht auf 100 W
Dann rechnet Solar Load Split jetzt:

PV Leistung = 0,50 kW
Netz Leistung = 0,00 kW

Und die kWh laufen entsprechend auf PV Energie, nicht auf Netz und nicht ins Nirvana.

Geändert in sensor.py und die README-Erklärung in README.md angepasst.

V0.16

Choose a tag to compare

@dr-apple dr-apple released this 17 Apr 17:50

Es gibt eine neue Einstellung „Netz-Totzone“ in Watt.

Standard ist jetzt:

Netz-Totzone = 100 W

Bedeutet konkret:

Netzsensor +9 W bis +80 W → wird als neutral behandelt
kein Netzbezug wird gezählt
keine PV-Einspeisung wird gezählt
erst oberhalb der Totzone zählt es wieder als echter Netzbezug
erst unterhalb der negativen Totzone zählt es wieder als echte Einspeisung
Das passt gut für Batterie-/Wechselrichter-Regelrauschen. Wenn dein Haus gerade aus der Batterie versorgt wird und der Zähler nur so kleine positive Werte pendelt, zählt Solar Load Split dadurch nicht mehr fälschlich Netzbezug.

Du findest den Wert an diesen Stellen:

Beim ersten Einrichten:
Solar Load Split einrichten → Netz-Totzone

Bei bestehenden Einträgen:
Einstellungen → Geräte & Dienste → Solar Load Split → Konfigurieren → Netz-Totzone

Standardwert ist:

100 W

Für deinen Fall würde ich so starten:

100 W, wenn die Schwankungen meistens bis ca. 80 W gehen
150 W, wenn es öfter kurze Peaks über 100 W gibt
0 W, wenn du die Filterung komplett ausschalten willst
Wichtig: Die Totzone wirkt auf deinen Netz-/Einspeisesensor nach optionaler Vorzeichenumkehr. Also weiterhin:

positiv = Netzbezug
negativ = Einspeisung
-100 W bis +100 W = neutral, wird nicht gezählt

V0.15

Choose a tag to compare

@dr-apple dr-apple released this 17 Apr 12:55

Der Netz-/Einspeisesensor bleibt weiterhin so interpretiert:

positiv = Netzbezug
negativ = Einspeisung

Der Puffer macht jetzt keinen Durchschnitt der Leistung mehr. Vorher konnte genau dadurch bei schwankenden Werten, Akku-Regelung oder kurzer Einspeisung rechnerisch trotzdem Netzbezug entstehen. Jetzt entprellt der Puffer nur noch den Vorzeichenwechsel zwischen Netzbezug und Einspeisung. Die aktuelle Leistung bleibt erhalten.

Außerdem ist der Standard jetzt:

Zeitlicher Netzpuffer = 0 Sekunden

Wichtig für bereits eingerichtete Geräte: Wenn dort noch ein alter Pufferwert gespeichert ist, bitte in Home Assistant bei der Integration auf Konfigurieren gehen und den Wert testweise auf 0 setzen. Danach Integration neu laden oder Home Assistant einmal neu starten.

V0.14

Choose a tag to compare

@dr-apple dr-apple released this 17 Apr 10:12

Fehler: kW-Quellsensoren wurden intern wie Watt behandelt.