4.8 KiB
SolarEdge Optimizer Data App
Diese Home Assistant App stellt die Optimierer-Daten einer SolarEdge-Anlage als lokale, gecachte HTTP-API bereit. Sie läuft unabhängig von einem Browser und aktualisiert die Daten standardmäßig alle zehn Minuten.
Die verwendeten Optimierer-Endpunkte sind interne, nicht offiziell dokumentierte SolarEdge-Portal-Endpunkte. SolarEdge kann sie jederzeit ändern. Verwende die App nur für Anlagen, auf die du zugreifen darfst.
Konfiguration
username: owner@example.com
password: dein-portal-passwort
site_id: "4886699"
poll_interval_minutes: 10
username: Benutzername des SolarEdge Monitoring Portals.password: Portal-Passwort; wird weder geloggt noch von der API ausgegeben.site_id: numerische SolarEdge Site-ID.poll_interval_minutes: Aktualisierungsintervall, mindestens zehn Minuten.
Die Zeitzone liest die App automatisch aus Home Assistant über die Supervisor-API. Dadurch wird der Tageswechsel passend zur Home-Assistant-Zeit berechnet.
HTTP API
GET /api/optimizers
Liefert den letzten gecachten Datensatz:
{
"status": "ok",
"siteId": "4886699",
"date": "2026-08-10",
"timeZone": "Europe/Berlin",
"fetchedAt": "2026-08-10T08:00:00.000Z",
"nextRefreshAt": "2026-08-10T08:10:00.000Z",
"optimizerCount": 34,
"successfulOptimizerCount": 34,
"failedOptimizerCount": 0,
"totalDailyEnergyWh": 12345,
"totalCurrentPowerW": 4567,
"optimizers": [
{
"serial": "OPTIMIZER_SERIAL",
"inverterId": "1",
"stringId": "1.1",
"optimizerId": "1.1.1",
"dailyEnergyWh": 321.5,
"currentPowerW": 123.4,
"lastMeasurement": "2026-08-10T07:59:00Z"
}
]
}
status ist:
ok: alle Tagesenergie-Werte wurden gelesen.partial: einzelne Optimierer-Abfragen sind fehlgeschlagen.stale: der letzte vollständige Abruf ist fehlgeschlagen; die vorherigen Daten bleiben verfügbar.
Der API-Aufruf selbst löst keinen SolarEdge-Abruf aus. Er liefert immer den Cache und kann daher auch häufiger als alle zehn Minuten gelesen werden.
GET /health
Kompakter Status für Überwachung und Docker Healthchecks. Während des ersten
Abrufs antworten /health und /api/optimizers mit HTTP 503. Danach liefern sie
HTTP 200, solange mindestens ein gecachter Datensatz vorhanden ist.
GET /
Liefert dieselben Daten wie /api/optimizers und ist über Home Assistant Ingress
im App-Panel erreichbar.
Zugriff aus Home Assistant
Die App veröffentlicht standardmäßig keinen ungeschützten Port im lokalen Netz. Ab Version 0.2.0 meldet sie ihren internen Host und Port automatisch über die Supervisor-Diensterkennung. Dadurch kann die SolarEdge Optimizers Integration ohne manuelle interne URL eingerichtet werden.
Nach Installation und Start der App erscheint unter Einstellungen → Geräte & Dienste die gefundene Integration SolarEdge Optimizers. Installiere die Custom Integration vorher über HACS und bestätige anschließend den Fund.
Home Assistant und andere Apps können die API außerdem direkt über das interne
App-Netzwerk erreichen. Bei einer lokalen Installation lautet der Hostname
typischerweise local-solaredge-optimizer-data:
http://local-solaredge-optimizer-data:8099/api/optimizers
Bei Installation aus einem App-Repository ersetzt dessen Repository-ID den
Präfix local. Die JSON-Ansicht für Menschen ist unabhängig davon über Ingress
im Home-Assistant-Seitenpanel verfügbar.
Installation als App-Repository
Füge im Home-Assistant-App-Store unter ⋮ → Repositories diese URL hinzu:
https://git.jensneuber.de/jens/solaredge-optimizers
Installiere anschließend SolarEdge Optimizer Data, pflege Benutzername, Passwort und Site-ID im Tab Konfiguration und starte die App. Der Supervisor lädt das zur App-Version passende Multi-Arch-Image aus der Registry.
Lokale Installation
Der Ordner ist ein eigenständig baubares Home-Assistant-App-Paket. Kopiere ihn für eine lokale Installation nach:
/addons/solaredge-optimizer-data
Lade anschließend den App Store neu, installiere SolarEdge Optimizer Data,
pflege Benutzername, Passwort und Site-ID im Tab Konfiguration und starte
die App. Der Supervisor lädt dabei das zur App-Version passende Multi-Arch-Image
git.jensneuber.de/jens/solaredgeoptimizers:0.2.0.
Sicherheit und Betrieb
- Anmeldedaten werden ausschließlich aus
/data/options.jsongelesen. - Tokens, Cookies und Passwörter werden nicht persistiert oder geloggt.
- SolarEdge-Sitzung und Cookies existieren nur im Arbeitsspeicher.
- Gleichzeitige Energie-Abfragen sind auf drei begrenzt.
- Das Mindestintervall von zehn Minuten reduziert die Last auf den internen, nicht dokumentierten SolarEdge-Endpunkten.
- MFA-/OTP-Anmeldungen werden derzeit nicht unterstützt.