SFML Vorhersage in evcc integrieren

Wenn dem dann so wäre, würde ich nun bestenfalls ein Issue auf evcc aufmachen?

Was meinst Du dazu?

Die SFML Prognose passt ja zeitlich einwandfrei im HA-Energy Dashboard, aber nicht außerhalb in evcc. Wie ich gerade gesucht hatte, gab es schon ähnliche Timeshift Problemstellungen mit Prognosen anderer Lösungen wie Solcast, etc., im HA-Energy Dashboard…

P.S. Habe mit Hilfe der KI den Code für evcc nun gefixt - es wird nun “in evcc” automatisch plus 2 Std. für die Sommerzeit, bzw. plus 1. Std. für die Winterzeit als Offset aufgerechnet:

tariff: solar
forecast:
  source: http
  uri: "http://Home assistant IP:8123/api/states/sensor.solar_forecast_ml_evcc_solar_prognose"
  headers:
    Authorization: "Bearer xxxxx"
  jq: |
    (
      now
      | strflocaltime("%z")
      | sub("(?<h>[+-][0-9]{2})(?<m>[0-9]{2})$"; "\(.h):\(.m)")
    ) as $tz
    | .attributes.forecast
    | map(
        .start = (.start + $tz)
        | .end = (.end + $tz)
      )
    | tostring
  cache: 30m

Ich hoffe, das hält dann auch so über die Zeit, bzw. auch beim Wechsel zurück auf die Winterzeit…

@Tom-HA Erklärung der KI was gemacht wurde:

Lösung für 2-Stunden-Zeitversatz bei Solar Forecast ML / Home Assistant → evcc

Ich hatte bei der Einbindung der Solar-Forecast-ML-Prognose aus Home Assistant in evcc einen Zeitversatz von 2 Stunden. Der Peak wurde z. B. in evcc um 15:00 Uhr angezeigt, obwohl er laut Prognose um 13:00 Uhr liegen sollte.

Ursache war nicht der Sensor selbst, sondern die fehlende bzw. falsche Zeitzonenangabe in den Forecast-Zeitstempeln.

Home Assistant liefert die Zeiten z. B. so:

"start": "2026-04-25T13:00:00",
"end": "2026-04-25T13:30:00"

Wenn man in evcc einfach +00:00 anhängt, wird daraus UTC. In Deutschland während der Sommerzeit interpretiert evcc das dann korrekt als 15:00 Uhr lokale Zeit — daher der 2-Stunden-Shift.

Die Lösung ist, den aktuellen lokalen Offset von evcc per jq zu ermitteln und an die Zeitstempel anzuhängen:

tariff: solar
forecast:
  source: http
  uri: "http://HA-IP:8123/api/states/sensor.solar_forecast_ml_evcc_solar_prognose"
  headers:
    Authorization: "Bearer DEIN_TOKEN"
  jq: |
    (
      now
      | strflocaltime("%z")
      | sub("(?<h>[+-][0-9]{2})(?<m>[0-9]{2})$"; "\(.h):\(.m)")
    ) as $tz
    | .attributes.forecast
    | map(
        .start = (.start + $tz)
        | .end = (.end + $tz)
      )
    | tostring
  cache: 30m

Der Block macht keine Zeitumrechnung, sondern hängt nur den passenden lokalen Zeitzonen-Offset an.

Aus:

2026-04-25T13:00:00

wird im Sommer:

2026-04-25T13:00:00+02:00

und im Winter automatisch:

2026-12-25T13:00:00+01:00

Wichtig ist, dass evcc bzw. der Container die richtige Zeitzone verwendet, z. B.:

Europe/Berlin

Danach ggf. den evcc-Cache leeren, evcc neu starten oder testweise cache: 0s setzen. Bei mir verschwindet damit der 2-Stunden-Versatz, ohne dass in Home Assistant ein zusätzlicher Sensor per configuration.yaml nötig ist.