Files

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.json gelesen.
  • 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.