Important
Helft mir bei der Weiterentwicklung und beantwortet eine Frage - danke!
Inoffiziell. Die Firma Solar Manager AG ist für diesen Code nicht verantwortlich und bietet keinen Support dafür.
Bindet das Solar Manager Gateway in Home Assistant ein — wahlweise über die Cloud-API (voller Funktionsumfang) oder direkt über die lokale REST-API (nur Sensoren, kein Internet nötig).
- Cloud-API: cloud.solar-manager.ch – voller Funktionsumfang inkl. Steuerung
- Lokale API:
GET /v2/pointdirekt am Gateway – Sensoren, kein Account nötig - HA Quality Scale (Selbsteinschätzung): Bronze ✓ · Silver 95 % (volle Testabdeckung in Arbeit) · Gold: alle anwendbaren Regeln umgesetzt (Repair-Issue für die E-Mail/Passwort-Migration; Discovery nicht anwendbar)
- Home Assistant ≥ 2025.8
- Solar Manager Gateway
Cloud-Modus (voller Funktionsumfang):
- Solar Manager Account
- Gateway ID (
smId, im Solar Manager Portal → Endkunden Information) - Cloud API Key (Profil → Cloud-API-Schlüssel)
Lokaler Modus (nur Sensoren):
- IP-Adresse des Gateways im lokalen Netzwerk
- Kein Account, kein Internet nötig
- HACS → Integrationen →
⋮→ Benutzerdefinierte Repositories - URL:
https://github.com/Soardiac/ha-solarmanager· Kategorie: Integration - „Solar Manager" suchen → installieren → Home Assistant neu starten
Ordner custom_components/solarmanager in <config>/custom_components/ kopieren, HA neu starten.
Die Integration kommuniziert über das Solar Manager Gateway als zentrale Einheit. Je nach Modus stehen unterschiedliche Entitäten zur Verfügung.
| Entitätstyp | Cloud | Lokal |
|---|---|---|
| Echtzeit-Leistungssensoren (PV, Verbrauch, Netz, Batterie) | ✓ | ✓ ¹ |
| Energie-Intervallwerte (Wh, per Default deaktiviert) | ✓ | ✓ |
| Batterie-SOC, Geräteübersicht | ✓ | ✓ |
| Gerätesensoren (Leistung, SOC, Temperatur, …) | ✓ | ✓ |
| Verbindungsstatus pro Gerät | ✓ | ✓ |
| Tages-Energiesensoren (PV, Verbrauch, Netz, Batterie) | ✓ | ✓ ² |
| Tagesstatistiken (Autarkiegrad, Eigenverbrauchsquote) | ✓ | ✓ ² |
| Betriebsmodi-Select (Wallbox, Batterie, …) | ✓ | – |
| Parameter-Number (SOC-Grenzen, Konstantstrom, …) | ✓ | – |
| Datetime-Entitäten (Ladeziel-Termin) | ✓ | – |
¹ Netz Import/Export (W) liefert die lokale API nicht direkt — die Werte werden aus der Energiebilanz berechnet (cW + bcW − pW − bdW). ² Im lokalen Modus werden die Tages-Energiewerte durch Integration der Leistungswerte über die Zeit berechnet. Die Tageszähler überleben Neustarts und Reloads (Persistenz auf Disk).
Alle über das Gateway registrierten Geräte werden automatisch erkannt (Cloud und Lokal):
| Gerät | Sensoren | Steuerung |
|---|---|---|
| Batteriespeicher | SOC, Leistung | Eco-/Peak-Shaving-Parameter |
| Wallbox / Car Charger | Leistung, SOC | Lademodus, Konstantstrom, Ladeziel |
| V2X Wallbox | Leistung | Lademodus |
| Wärmepumpe / SG-Ready | Betriebszustand | Betriebsmodus |
| Warmwasserboiler | – | Betriebsmodus, Leistung |
| Smart Plug / Schalter | Schaltzustand | Schaltmodus |
| Wechselrichter | Leistung | Einspeisebegrenzung |
| Weitere Geräte | power / soc / temperature | – |
- Geräte, die nicht über ein Solar Manager Gateway registriert sind
Solar Manager stellt die Authentifizierung per E-Mail/Passwort ein. Für Neueinrichtungen ist der Cloud API Key der einzig unterstützte Weg. Bestehende Instanzen mit E-Mail/Passwort funktionieren noch bis 30. Juni 2027 — danach ist ein Wechsel auf den API Key erforderlich (siehe Migration für bestehende Nutzer).
- Im Solar Manager Portal → Profil bearbeiten → Cloud-API-Schlüssel → API Schlüssel hinzufügen
- Neuen Key erstellen:
- Enddatum: leer lassen (kein Ablaufdatum)
- Scopes: alle vier aktivieren:
read,write,externalOverride:read,externalOverride:write - «Erneuerung erlauben»: NICHT aktivieren — sonst muss der Key regelmässig in HA erneuert werden
- Den generierten Token sofort kopieren — er ist nur direkt nach der Erstellung sichtbar und kann danach nicht mehr abgerufen werden
- Den Token beim Einrichten der Integration in das Feld Cloud API Key einfügen
Hinweis: Falls der Bereich «Cloud-API-Schlüssel» noch nicht sichtbar ist, Solar Manager Support kontaktieren — das Feature wird auf Anfrage freigeschaltet.
Einstellungen → Geräte & Dienste → Integration hinzufügen → Solar Manager
Im ersten Schritt den Verbindungsmodus wählen:
| Feld | Pflicht | Beschreibung |
|---|---|---|
| Solar Manager ID | Ja | Gateway-ID (smId) aus dem Portal |
| Cloud API Key | Ja | Zuvor erstellter API Key (siehe oben) |
| Nein | Nur als Fallback wenn noch kein API Key verfügbar | |
| Passwort | Nein | Nur als Fallback wenn noch kein API Key verfügbar |
| Feld | Pflicht | Beschreibung |
|---|---|---|
| IP-Adresse / Hostname | Ja | Gateway-IP im lokalen Netzwerk (z. B. 192.168.1.100) |
| Protokoll | Ja | http oder https gemäss Gateway-Einstellungen (Standard: http) |
| API Key | Nein | Lokaler API Key falls am Gateway konfiguriert (X-API-Key-Header) |
Die Integration testet beim Einrichten direkt die Verbindung (GET /v2/point) und meldet einen Fehler, wenn das Gateway nicht erreichbar ist. Bei HTTPS wird das selbst-signierte Zertifikat des Gateways akzeptiert.
Hinweis: Zugangsdaten,
smId, Host, Protokoll — und auch der Verbindungsmodus selbst (Cloud ↔ Lokal) — lassen sich jederzeit ohne Neueinrichtung ändern (siehe Neu konfigurieren).
Einstellungen → Geräte & Dienste → Solar Manager → ⋮ → Neu konfigurieren
-
Cloud: E-Mail, Passwort,
smIdund API Key ändern — leere Felder behalten die gespeicherten Werte. Beim Wechsel dersmIdbleiben die Entitäten erhalten. -
Lokal: IP-Adresse/Hostname, Protokoll und API Key ändern (z. B. nach einem IP-Wechsel des Gateways).
-
Wechsel Cloud ↔ Lokal: Im ersten Schritt von „Neu konfigurieren" den anderen Modus auswählen und die Zugangsdaten für den neuen Modus eingeben. Sensoren und Geräte behalten ihre bestehenden Entity-IDs (Historie bleibt erhalten).
Achtung beim Wechsel auf Lokal: Betriebsmodi, Parameter und Ladeziel-Termine (Select/Number/Datetime-Entitäten) gibt es nur im Cloud-Modus. Nach dem Wechsel werden sie nicht mehr aktualisiert und sind nicht verfügbar — Skripte, Automationen und Dashboards, die diese Steuerelemente verwenden, funktionieren dann nicht mehr. Beim Zurückwechseln zu Cloud werden dieselben Entity-IDs wiederverwendet, alles läuft dann wieder ohne Anpassung.
Die neuen Werte werden vor dem Speichern gegen die API validiert; danach lädt die Integration automatisch neu.
Wer die Integration bisher mit E-Mail/Passwort betrieben hat, kann jederzeit auf den API Key wechseln. Solange kein API Key gesetzt ist, zeigt Home Assistant unter Einstellungen → System → Reparaturen proaktiv eine Karte an, die direkt in den Reauth-Dialog führt.
- API Key wie oben beschrieben erstellen
- In HA: Einstellungen → Geräte & Dienste → Solar Manager → Neu authentifizieren
- API Key eintragen — E-Mail/Passwort-Felder können leer bleiben
- Bestätigen — die Integration lädt neu und nutzt ab sofort den API Key
Nach der Einrichtung: Konfigurieren → Optionen → Scan-Intervall in Sekunden (Standard: 10 s).
Tagesstatistiken werden alle 5 Minuten neu geladen. Geräte-Metadaten (Modi, Parameter) werden höchstens alle 60 Sekunden aktualisiert — nach einem Schreibbefehl aus HA jedoch sofort.
Wenn HA einen Auth-Fehler erkennt (abgelaufene Zugangsdaten oder Passwortänderung), erscheint automatisch eine Benachrichtigung. Über den Link darin können die Zugangsdaten aktualisiert werden — ohne die Integration zu löschen.
Alle Werte beziehen sich auf die gesamte Anlage.
| Entität | Einheit | Beschreibung |
|---|---|---|
| PV-Leistung | W | Aktuelle Erzeugungsleistung |
| Hausverbrauch | W | Aktueller Gesamtverbrauch |
| Batterie-Leistung | W | Positiv = Laden, negativ = Entladen |
| Netz Import | W | Bezug aus dem Netz |
| Netz Export | W | Einspeisung ins Netz |
| Netzleistung | W | Positiv = Bezug, negativ = Einspeisung |
| PV-Überschuss | W | PV-Leistung − Hausverbrauch − Batterie-Leistung; positiv = Überschuss |
Rohwerte des letzten Stream-Intervalls (≈ 10 s); Klasse measurement. Für Dashboards ungeeignet, daher per Default deaktiviert — die Tages-Energiesensoren unten sind die richtige Wahl fürs Energie-Dashboard.
| Entität | Einheit | Beschreibung |
|---|---|---|
| PV-Energie (Intervall) | Wh | PV-Ertrag im letzten Intervall |
| Verbrauch (Intervall) | Wh | Verbrauch im letzten Intervall |
| Netzbezug (Intervall) | Wh | Netzbezug im letzten Intervall |
| Netzeinspeisung (Intervall) | Wh | Einspeisung im letzten Intervall |
| Batterie geladen (Intervall) | Wh | Geladene Energie im letzten Intervall |
| Batterie entladen (Intervall) | Wh | Entladene Energie im letzten Intervall |
Klasse total_increasing — direkt im Energie-Dashboard verwendbar. Quelle im Cloud-Modus: /v1/statistics/gateways (alle 5 Minuten aktualisiert); im lokalen Modus werden die Werte aus den Leistungsdaten integriert bzw. aus den Intervallwerten summiert. Alle Tageszähler überleben Neustarts und Reloads.
| Entität | Einheit | Cloud | Lokal | Beschreibung |
|---|---|---|---|---|
| PV Tageserzeugung | Wh | ✓ | ✓ | Gesamterzeugung des heutigen Tages |
| Verbrauch heute | Wh | ✓ | ✓ | Gesamtverbrauch des heutigen Tages |
| Eigenverbrauch heute | Wh | ✓ | ✓ | Direkt selbst genutzter PV-Strom |
| Netzbezug heute | Wh | ✓ | ✓ | Aus dem Netz bezogene Energie |
| Netzeinspeisung heute | Wh | ✓ | ✓ | Ins Netz eingespeiste Energie |
| Batterie geladen heute | Wh | ✓ | ✓ | In die Batterie geladene Energie |
| Batterie entladen heute | Wh | ✓ | ✓ | Aus der Batterie entnommene Energie |
| Eigenverbrauchsquote | % | ✓ | – | Anteil PV-Strom, der selbst verbraucht wurde |
| Autarkiegrad | % | ✓ | – | Anteil des Verbrauchs, der aus PV/Batterie gedeckt wurde |
| Entität | Einheit | Beschreibung |
|---|---|---|
| Batterie-SOC | % | Aktueller Ladestand der Batterie |
| Geräte (Stream-Übersicht) | – | Anzahl der vom Stream gemeldeten Geräte inkl. Rohdaten-Attributen. Diagnose-Sensor, per Default deaktiviert |
Pro Gerät werden automatisch Sensoren erstellt, wenn das entsprechende Feld im Stream vorhanden ist. Neue Geräte werden zur Laufzeit erkannt — ein Reload oder Neustart ist nicht mehr nötig.
| Sensor | Einheit | Geräteklasse | Bedingung |
|---|---|---|---|
| Leistung | W | Leistung | Feld power vorhanden |
| SOC | % | Batterie | Feld soc vorhanden |
| Temperatur | °C | Temperatur | Feld temperature vorhanden |
| Aktivstatus | – | – | Feld activeDevice (1=aktiv/laden, 0=aus, −1=entladen) |
| Tagesverbrauch | Wh | Energie | Feld iWhTotal vorhanden |
| Tageseinspeisung | Wh | Energie | Feld eWhTotal vorhanden |
| Betriebszustand | – | – | Feld operationState (Wärmepumpe) |
| Schaltzustand | – | – | Feld switchState vorhanden |
| Heizungskorrektur | – | – | Feld heatingAdjustment vorhanden |
| Restreichweite | km | – | Feld remainingRange vorhanden |
Pro Gerät mit signal-Feld: Ein = connected, Aus = getrennt (Diagnose-Kategorie).
Pro Gerät ein Haupt-Modus-Select. Die Optionen hängen vom Gerätetyp ab.
| Wert | Modus |
|---|---|
| 0 | Standard |
| 1 | Eco |
| 2 | Peak-Shaving |
| 3 | Manuell |
| 4 | Tarif-Optimiert |
| 5 | Standard (aktiv) |
| 6 | KI-Optimierung |
Zusätzlich: Manuell Richtung (Select) — Laden / Entladen / AUS
Gerätetypen: car, car charger, carcharger, car charging, carcharging, ocpp charger, wallbox
| Wert | Modus |
|---|---|
| 0 | Immer laden |
| 1 | Nur Solar |
| 2 | Solar & Tarif |
| 3 | Nie laden |
| 4 | Konstanter Strom |
| 5 | Minimal & Solar |
| 6 | Ladeziel (kWh) |
| 7 | Ladeziel (SoC) |
| 8 | Aria |
| Wert | Modus |
|---|---|
| 0 | Immer laden |
| 1 | Solar-Optimiert |
| 2 | Solar & Tarif |
| 3 | Manuell |
| 4 | Ziel-SOC |
Gerätetypen: heat pump, heatpump, sg ready switch
| Wert | Modus |
|---|---|
| 0 | Kein Modus |
| 1 | EIN |
| 2 | AUS |
| 3 | Nur Solar |
| 4 | Solar & Tarif |
| 5 | Keine Steuerung |
| 6 | Normalbetrieb |
| 7 | OEM 14 |
| 8 | KI-Optimierung |
| Wert | Modus |
|---|---|
| 1 | EIN |
| 2 | AUS |
| 3 | Nur Solar |
| 4 | Solar & Tarif |
| 5 | Keine Steuerung |
| 6 | ECO |
| 7 | KI-Optimierung |
| Wert | Modus |
|---|---|
| 1 | EIN |
| 2 | AUS |
| 3 | Nur Solar |
| 4 | Solar & Tarif |
| 5 | Keine Steuerung |
| Wert | Modus |
|---|---|
| 0 | Kein Modus |
| 1 | EIN |
| 2 | AUS |
| 3 | Nur Solar |
| 4 | Solar & Tarif |
| 5 | Keine Steuerung |
Einstellbare Werte pro Gerät. Die Werte wirken jeweils nur, wenn der passende Modus aktiv ist — das ist die Logik von Solar Manager, nicht von HA.
| Parameter | Einheit | Bereich |
|---|---|---|
| Einspeisebegrenzung | % | 0 – 100 |
| Parameter | Einheit | Bereich |
|---|---|---|
| Eco Entlade-Limit | % | 0 – 100 |
| Eco Morgen-Limit | % | 0 – 100 |
| Eco Lade-Limit | % | 0 – 100 |
| Parameter | Einheit | Bereich |
|---|---|---|
| SOC-Obergrenze | % | 0 – 100 |
| SOC-Untergrenze | % | 0 – 100 |
| Parameter | Einheit | Bereich | Schritt |
|---|---|---|---|
| Netzlimit | W | 0 – 20 000 | 100 |
| Nachladepower | W | 0 – 20 000 | 100 |
| SOC-Entladegrenze | % | 0 – 100 | 1 |
| SOC-Maximum | % | 0 – 100 | 1 |
| Parameter | Einheit | Bereich | Schritt |
|---|---|---|---|
| Ladeleistung | W | 0 – 20 000 | 100 |
| Entladeleistung | W | 0 – 20 000 | 100 |
| Parameter | Einheit | Bereich | Schritt |
|---|---|---|---|
| Preislimit | CHF/kWh | 0 – 2,00 | 0,01 |
| SOC-Maximum | % | 0 – 100 | 1 |
| Parameter | Einheit | Bereich | Modus |
|---|---|---|---|
| Konstantstrom | A | 6 – 32 | Konstanter Strom |
| Ladeziel SOC | % | 0 – 100 | Ladeziel (SoC) |
| Ladeziel SOC Maximum | % | 0 – 100 | Ladeziel (SoC) |
| Ladeziel SOC Termin | Datum/Zeit | ISO-Datetime | Ladeziel (SoC) |
| Ladeziel kWh Menge | kWh | 1 – 100 | Ladeziel (kWh) |
| Ladeziel kWh Maximum | kWh | 0 – 100 | Ladeziel (kWh) |
| Ladeziel kWh Termin | Datum/Zeit | ISO-Datetime | Ladeziel (kWh) |
| Parameter | Einheit | Bereich |
|---|---|---|
| Leistung | % | 0 – 100 |
- Modi und Parameter: Parameter greifen in HA immer, werden von Solar Manager aber nur im jeweils passenden Modus berücksichtigt (z. B. Konstanter Strom nur im Modus „Konstanter Strom").
- Gerätetypen: Werden automatisch aus der API erkannt. Unbekannte Typen bekommen keine Steuerentitäten, aber alle verfügbaren Sensoren.
- Zweisprachig: Entitätsnamen folgen der HA-Sprache (Deutsch und Englisch enthalten). Die Optionen der Modus-Selects (z. B. „Nur Solar") sind bewusst feste Werte, damit Automationen sprachunabhängig stabil bleiben.
- Batterie-Schreibschutz: Batterie-Einstellungen werden immer als vollständiges Settings-Objekt geschrieben (read-modify-write). Direkt nach dem Start — bevor die Geräte-Metadaten geladen sind — wird ein Schreibversuch mit einer Fehlermeldung abgelehnt, statt fremde Felder auf Werks-Defaults zurückzusetzen. Ein paar Sekunden warten und erneut versuchen.
- Cloud-Abhängigkeit (Cloud-Modus): Bei Cloud-Ausfall sind alle Werte nicht verfügbar. Der Lokale Modus ist davon nicht betroffen. Ein transient abgelaufener Token wird automatisch erneuert, ohne dass eine Reauth-Aufforderung erscheint.
- Modus-Wechsel Cloud ↔ Lokal: Jederzeit über Neu konfigurieren möglich, ohne die Integration zu löschen — Entity-IDs und Historie bleiben erhalten (siehe Neu konfigurieren).
- API-Doku: Swagger
- PV-Überschuss nutzen: Gerät (Wallbox, Smart Plug, Boiler) automatisch einschalten, sobald die PV-Leistung den Hausverbrauch übersteigt.
- Batterie schonen: Automationen nur ausführen, wenn der Batterie-SOC über einem Schwellwert liegt — verhindert ungewollte Tiefentladung.
- Tages-Dashboard: Autarkiegrad und Eigenverbrauchsquote auf einem HA-Dashboard visualisieren und historisch verfolgen.
- Lastspitzen vermeiden: Bei hohem Netzbezug eine Benachrichtigung senden oder steuerbare Lasten reduzieren.
- Anwesenheitsbasiertes Laden: Wallbox-Lademodus wechseln, wenn jemand nach Hause kommt und SOC unter 50 % liegt.
Seit HA 2026.7 können Integrationen eigene Trigger/Conditions anbieten (siehe
Release-Notes). Solar Manager
liefert damit solarmanager.surplus_available (Trigger) und solarmanager.is_surplus_present
(Condition) — beide berechnen den Überschuss (PV-Leistung − Hausverbrauch − Batterie-Leistung)
selbst und bringen einen eingebauten for-Debounce (Default 2 Minuten) mit, damit eine einzelne
Wolkenlücke nicht sofort auslöst. Das ersetzt das numeric_state-Beispiel weiter unten, ohne dass
man wissen muss, dass negative Netzleistung Einspeisung bedeutet:
automation:
alias: "Wallbox Solar-Modus bei PV-Überschuss"
trigger:
- trigger: solarmanager.surplus_available
target:
device_id: <device_id des Solar-Manager-Geräts>
options:
threshold: 500 # W
for: "00:02:00"
action:
- action: select.select_option
target:
entity_id: select.meine_wallbox_modus
data:
option: "Nur Solar"Status: experimenteller Spike — Details siehe Issues.
automation:
alias: "Wallbox Solar-Modus bei PV-Überschuss"
trigger:
- platform: numeric_state
entity_id: sensor.solarmanager_netzleistung
below: -500 # > 500 W Einspeisung
for: "00:02:00"
action:
- action: select.select_option
target:
entity_id: select.meine_wallbox_modus
data:
option: "Nur Solar"automation:
alias: "Benachrichtigung: Batterie voll, PV-Überschuss"
trigger:
- platform: numeric_state
entity_id: sensor.solarmanager_batterie_soc
above: 95
condition:
- condition: numeric_state
entity_id: sensor.solarmanager_netz_export
above: 300
action:
- action: notify.mobile_app_mein_telefon
data:
title: "Solar Manager"
message: "Batterie voll – {{ states('sensor.solarmanager_netz_export') }} W Überschuss ins Netz."
Symptom: Nach dem Start oder nach einer Weile sind alle Sensoren unavailable.
Lösung: Protokoll auf WARNING/ERROR von custom_components.solarmanager prüfen. Häufigste Ursache: Cloud nicht erreichbar oder Zugangsdaten abgelaufen → unter Einstellungen → Geräte & Dienste → Neu authentifizieren.
Symptom: HA zeigt automatisch eine Reauth-Aufforderung oder der API Key schlägt fehl.
Lösung: Neuen API Key im Solar Manager Portal erstellen (Profil → Cloud-API-Schlüssel) und unter Neu authentifizieren eintragen. Wichtig: Token sofort kopieren, er ist nur einmal sichtbar.
Symptom: Gerät ist im Solar Manager Portal sichtbar, aber keine HA-Entity vorhanden.
Lösung: Neue Geräte werden automatisch erkannt, sobald sie im Datenstream bzw. in den Geräte-Metadaten auftauchen (spätestens nach ~60 Sekunden). Erscheint das Gerät dennoch nicht, die Integration neu laden (Einstellungen → Geräte & Dienste → Solar Manager → ⋮ → Neu laden) und prüfen, ob das Gerät im Portal korrekt dem Gateway zugeordnet ist.
Symptom: Sensoren spiegeln den aktuellen Zustand nicht schnell genug wider.
Lösung: Update-Intervall reduzieren: Einstellungen → Geräte & Dienste → Solar Manager → Konfigurieren → Scan-Intervall (Minimum empfohlen: 10 s, API-Rate-Limit beachten).
Symptom: Kein Menüpunkt «Cloud-API-Schlüssel» im Portal sichtbar.
Lösung: Feature wird auf Anfrage freigeschaltet — Solar Manager Support kontaktieren.
- Einstellungen → Geräte & Dienste → Solar Manager →
⋮→ Löschen - Home Assistant neu starten
- Den Ordner
custom_components/solarmanageraus<config>/custom_components/entfernen (bei manueller Installation) oder die Integration in HACS deinstallieren
Fehler und Feature-Requests bitte im Issue Tracker melden.
Ich habe diese Integration für mich geschrieben, weil keine der anderen passend für mich war. Die Arbeit ist besser investiert, wenn auch andere davon profitieren, darum ist das hier verfügbar und wird gepflegt. Ich verwende Claude Code (oder andere Tools) zur Unterstützung, anders ist es nicht zu machen. KI-Code ist von mir gechecked.