EKZ Dynamische Stromtarife in Home Assistant integrieren

Seit Januar 2026 bietet EKZ (Elektrizitätswerke des Kantons Zürich) dynamische Stromtarife an. Die Preise ändern sich alle 15 Minuten und werden über eine öffentliche API bereitgestellt. In diesem Beitrag zeige ich, wie man diese Tarife in Home Assistant integriert und für Automationen nutzen kann.

Was sind dynamische Stromtarife?

Bei dynamischen Tarifen variiert der Strompreis je nach Angebot und Nachfrage im Netz. EKZ veröffentlicht die Preise für den Folgetag jeweils bis 18:00 Uhr. Der Tarif setzt sich zusammen aus:

  • Energiepreis – variiert nach Spotmarkt (EPEX Spot)
  • Netzpreis – variiert nach prognostizierter Netzlast
  • Regionale Gebühren – meist fix

Der Vorteil: Wer seinen Verbrauch in günstige Zeiten verschiebt (z.B. E-Auto laden, Wärmepumpe, Waschmaschine), kann Geld sparen.

Voraussetzungen

  • Home Assistant Installation (Core, Container oder OS)
  • EKZ als Stromanbieter (oder einfach Interesse an den Tarifdaten)
  • Zugang zum config-Verzeichnis von Home Assistant

Installation der Custom Component

Schritt 1: Dateien herunterladen

Lade die Custom Component herunter: ekz_tariff_v2.zip

Schritt 2: Dateien kopieren

Entpacke das ZIP-Archiv. Du erhältst einen Ordner custom_components/ekz_tariff/.

Kopiere diesen Ordner in dein Home Assistant Konfigurationsverzeichnis:

        
    /config/custom_components/ekz_tariff/   
        

Die Ordnerstruktur sollte so aussehen:

        
    config/   
    └── custom_components/   
        └── ekz_tariff/   
            ├── __init__.py   
            ├── api.py   
            ├── config_flow.py   
            ├── const.py   
            ├── coordinator.py   
            ├── manifest.json   
            ├── sensor.py   
            └── translations/   
                ├── de.json   
                └── en.json   
        

Für Home Assistant OS / Supervised:

Am einfachsten geht es mit dem „File Editor“ oder „Samba Share“ Add-on.

Für Home Assistant Container:

        
    docker cp ekz_tariff/ homeassistant:/config/custom_components/   
        

Für Home Assistant Core:

        
    cp -r ekz_tariff/ ~/.homeassistant/custom_components/   
        

Schritt 3: Home Assistant neu starten

Nach dem Kopieren muss Home Assistant neu gestartet werden:

  • Web UI: Einstellungen → System → Oben rechts auf „Neu starten“
  • CLI: ha core restart

Schritt 4: Integration hinzufügen

1. Gehe zu EinstellungenGeräte & Dienste

2. Klicke unten rechts auf + Integration hinzufügen

3. Suche nach „EKZ“

4. Wähle „EKZ Dynamische Stromtarife“

5. Bestätige mit „Absenden“

Die Integration verbindet sich mit der EKZ API und erstellt automatisch alle Sensoren.

Verfügbare Sensoren

Nach der Einrichtung stehen folgende Sensoren zur Verfügung:

SensorBeschreibung
sensor.ekz_energiepreisAktueller Energiepreis in Rp./kWh
sensor.ekz_netzpreisAktueller Netznutzungspreis in Rp./kWh
sensor.ekz_gesamtpreisSumme aus Energie + Netz in Rp./kWh
sensor.ekz_gesamtpreis_heute_minTiefster Preis heute
sensor.ekz_gesamtpreis_heute_maxHöchster Preis heute
sensor.ekz_gesamtpreis_heute_durchschnittDurchschnittspreis heute
sensor.ekz_preisniveau„günstig“, „normal“ oder „teuer“
sensor.ekz_preisprognoseForecast mit allen Zeitslots

Der Sensor sensor.ekz_preisniveau berechnet automatisch, ob der aktuelle Preis unter 80% (günstig) oder über 120% (teuer) des Tagesdurchschnitts liegt.

Beispiel-Automatisierungen

Benachrichtigung bei günstigen Preisen

        
    automation:   
      – alias: „EKZ: Benachrichtigung bei günstigen Preisen“   
        trigger:   
          – platform: state   
            entity_id: sensor.ekz_preisniveau   
            to: „günstig“   
        condition:   
          – condition: time   
            after: „06:00:00“   
            before: „22:00:00“   
        action:   
          – service: notify.mobile_app   
            data:   
              title: „💰 Strompreis günstig!“   
              message: >    
                Aktueller Preis: {{ states(’sensor.ekz_gesamtpreis‘) }} Rp./kWh   
                (Durchschnitt: {{ states(’sensor.ekz_gesamtpreis_heute_durchschnitt‘) }} Rp./kWh)   
        

E-Auto laden bei niedrigen Preisen

        
    automation:   
      – alias: „E-Auto laden bei günstigen Preisen“   
        trigger:   
          – platform: numeric_state   
            entity_id: sensor.ekz_gesamtpreis   
            below: 20  # unter 20 Rp./kWh   
        condition:   
          – condition: state   
            entity_id: binary_sensor.auto_verbunden   
            state: „on“   
        action:   
          – service: switch.turn_on   
            target:   
              entity_id: switch.wallbox   
        

Wärmepumpe nach Strompreis steuern

        
    automation:   
      – alias: „Wärmepumpe Temperatur nach Strompreis“   
        trigger:   
          – platform: state   
            entity_id: sensor.ekz_preisniveau   
        action:   
          – choose:   
              – conditions:   
                  – condition: state   
                    entity_id: sensor.ekz_preisniveau   
                    state: „günstig“   
                sequence:   
                  – service: climate.set_temperature   
                    target:   
                      entity_id: climate.waermepumpe   
                    data:   
                      temperature: 22   
              – conditions:   
                  – condition: state   
                    entity_id: sensor.ekz_preisniveau   
                    state: „teuer“   
                sequence:   
                  – service: climate.set_temperature   
                    target:   
                      entity_id: climate.waermepumpe   
                    data:   
                      temperature: 19   
        

Dashboard-Karte

Eine einfache Entities-Karte für das Dashboard:

        
    type: entities   
    title: EKZ Stromtarife   
    entities:   
      – entity: sensor.ekz_gesamtpreis   
        name: Aktueller Preis   
      – entity: sensor.ekz_preisniveau   
        name: Preisniveau   
      – type: divider   
      – entity: sensor.ekz_gesamtpreis_heute_min   
        name: Heute Min   
      – entity: sensor.ekz_gesamtpreis_heute_max   
        name: Heute Max   
      – entity: sensor.ekz_gesamtpreis_heute_durchschnitt   
        name: Heute Ø   
        

Preisverlauf mit ApexCharts

Für eine grafische Darstellung des Preisverlaufs eignet sich die ApexCharts Card:

        
    type: custom:apexcharts-card   
    header:   
      title: EKZ Strompreis Verlauf   
      show: true   
    graph_span: 24h   
    series:   
      – entity: sensor.ekz_gesamtpreis   
        name: Gesamtpreis   
        type: line   
        stroke_width: 2   
        color: „#039be5“   
        

Technische Details

  • Update-Intervall: Alle 15 Minuten (entspricht den Tarifslots)
  • API-Caching: Daten werden für 1 Stunde gecacht
  • Datenquelle: https://api.tariffs.ekz.ch/v1/tariffs (öffentlich, ohne Authentifizierung)
  • Preisformat: API liefert CHF/kWh, Sensoren zeigen Rp./kWh

Troubleshooting

Integration erscheint nicht in der Liste?

  • Prüfe, ob der Ordner korrekt unter custom_components/ekz_tariff/ liegt
  • Stelle sicher, dass Home Assistant neu gestartet wurde
  • Kontrolliere die Logs unter Einstellungen → System → Protokolle

Sensoren zeigen „unavailable“?

  • Prüfe die Internetverbindung
  • Teste die API manuell: curl https://api.tariffs.ekz.ch/v1/tariffs
  • Schaue in die Home Assistant Logs für Fehlermeldungen

Falsche Preise?

  • Die Preise kommen direkt von der EKZ API
  • Regionale Gebühren und Abgaben können je nach Gemeinde variieren

Fazit

Mit dieser Integration lassen sich die dynamischen EKZ-Stromtarife einfach in Home Assistant einbinden. Die Automatisierungsmöglichkeiten sind vielfältig – vom E-Auto über die Wärmepumpe bis zur Waschmaschine kann der Stromverbrauch intelligent in günstige Zeitfenster verschoben werden.

Die EKZ API ist öffentlich zugänglich und erfordert keine Authentifizierung für die Basisdaten. Für kundenspezifische Tarife (falls sich diese vom Standardtarif unterscheiden) wäre eine OAuth-Authentifizierung über myEKZ nötig – das ist in dieser Version noch nicht implementiert.

Getestet mit Home Assistant 2026.1

Download: ekz_tariff_v2

Referenzen:
https://api.tariffs.ekz.ch/swager/index.html?urls.primaryName=EKZ