Sprache

Homey · Preis und CO2

Strompreis und CO2 in Homey nutzen, ohne eigene Homey-App zu bauen

Für Homey ist der sinnvollste Start kein eigener App-Store-Adapter, sondern ein kompakter Summary-Endpunkt plus einfache HomeyScript-Karten in Advanced Flow. Das ist schneller testbar und deutlich leichter verständlich.

Wichtige Logik früh erklärt

Die Preislogik ist auch bei Homey nicht einfach „nur Forecast“. Sie arbeitet bewusst in zwei Schritten, damit echte Marktdaten immer Vorrang haben, sobald sie vorhanden sind.

Schritt 1Sobald offizieller Day-Ahead für einen Slot vorliegt, wird dieser Preis bevorzugt verwendet.
Schritt 2Forecast wird nur für die Zukunft genutzt, für die noch keine offiziellen Day-Ahead-Werte verfügbar sind.
Wichtige FolgeDie Summary kombiniert also reale Day-Ahead-Preise mit Forecast nur für den noch offenen Teil des Horizonts.
Warum dieser Weg für Homey sinnvoll ist

Homey selbst setzt stark auf Flows und HomeyScript. Für einen ersten Einstieg ist das deutlich pragmatischer als sofort eine vollständige Homey-App mit Review- und Wartungsaufwand zu bauen.

Wichtig für Einsteiger

Diese Seite geht bewusst über einzelne HomeyScript-Karten in Advanced Flow. Das ist leichter zu testen als eine große Sammel-Logik, weil du pro Karte genau einen Wert zurückbekommst.

Empfohlener Einstieg: Summary

Für Homey gibt es einen eigenen Summary-Pfad. Technisch ist er nah an den anderen Automations-Endpunkten, aber in Struktur und Benennung klar auf HomeyScript und Advanced Flow zugeschnitten.

https://api.energypriceforecast.eu/api/v1/homey/summary?country=de&hours=48&window_hours=4
Aktueller Preisflat.current_price für Lade- oder Schaltentscheidungen.
CO2 liveflat.current_co2_g_kwh für klimaorientierte Automationen.
Fensterlogikflat.is_cheapest_window_now und price.next_full_window.start für direkte Flow-Entscheidungen.

Was die API genau liefert

Der Homey-Endpunkt liefert eine kompakte Automation-Sicht. Das ist wichtig, weil du in Homey meistens nicht mit einer kompletten Rohpreisreihe starten willst, sondern mit wenigen klaren Werten für Flows.

Teil Inhalt Nutzen
flatAktueller Preis, aktuelles CO2, aktive beste Fenster und Restlaufzeiten.Ideal für einfache HomeyScript-Rückgabewerte.
priceAktueller Preis-Slot sowie best_window und next_full_window.Für Planung und Zukunftslogik.
co2Aktueller CO2-Slot sowie CO2-Fenster.Für grünere statt billigere Automationen.
sourceMetadaten zu Day-Ahead und Forecast.Wichtig für Einordnung und Debug.
metaAPI-Key-Status, erlaubter Horizont und Tageszähler.Hilft bei Limits und Fehlersuche.

Zeitraum und Auflösung

Die Beispiele nutzen hours=48 und window_hours=4. Das ist ein sinnvoller Einstieg, aber nicht die gesamte Produktgrenze.

ZeitraumMit hours legst du den angefragten Horizont fest. Öffentlich belastbar kommunizieren wir für die Preisprognose aktuell maximal 120 Stunden.
Tatsächlich erlaubtOhne API-Key sind aktuell 48 Stunden frei. Mit Key kann mehr erlaubt sein. Maßgeblich ist immer meta.allowed_horizon_hours.
AuflösungDay-Ahead kann in Viertelstunden kommen, Forecast und CO2 bleiben meist stündlich. Die Summary fasst das für Automationen kompakt zusammen.

So nutzt du es in Advanced Flow

  1. HomeyScript installieren.
  2. In Advanced Flow einen Zeit-Trigger anlegen, zum Beispiel alle 15 Minuten.
  3. Danach eine HomeyScript-Karte mit Rückgabetyp Number, Yes/No oder Text einfügen.
  4. Einen der Copy-Paste-Blöcke unten einfügen.
  5. Das Ergebnis-Tag im nächsten Flow-Schritt weiterverwenden.

Homey bewirbt explizit, dass HomeyScript Website-APIs ansprechen kann. Die folgenden Beispiele nutzen genau das für den Homey-Summary-Endpunkt.

Beispiel 1: aktuellen Preis als Number zurückgeben

Diese Karte eignet sich, wenn du auf Schwellwerte oder Vergleiche aufbauen willst.

const API_KEY = '';
const url = 'https://api.energypriceforecast.eu/api/v1/homey/summary?country=de&hours=48&window_hours=4';

const response = await fetch(url, {
  headers: API_KEY.trim()
    ? { Authorization: `Bearer ${API_KEY.trim()}` }
    : {},
});

if (!response.ok) {
  throw new Error(`HTTP ${response.status}`);
}

const data = await response.json();
return Number(data.flat?.current_price ?? 0);

Beispiel 2: läuft das beste Preisfenster gerade?

Das ist für echte Automationen oft wichtiger als nur der nächste Startzeitpunkt.

const API_KEY = '';
const url = 'https://api.energypriceforecast.eu/api/v1/homey/summary?country=de&hours=48&window_hours=4';

const response = await fetch(url, {
  headers: API_KEY.trim()
    ? { Authorization: `Bearer ${API_KEY.trim()}` }
    : {},
});

if (!response.ok) {
  throw new Error(`HTTP ${response.status}`);
}

const data = await response.json();
return data.flat?.is_cheapest_window_now === true;

Beispiel 3: nächsten vollständigen Start als Text zurückgeben

Das ist sinnvoll, wenn du einen Flow für Planung, Anzeigen oder Benachrichtigungen bauen willst.

const API_KEY = '';
const url = 'https://api.energypriceforecast.eu/api/v1/homey/summary?country=de&hours=48&window_hours=4';

const response = await fetch(url, {
  headers: API_KEY.trim()
    ? { Authorization: `Bearer ${API_KEY.trim()}` }
    : {},
});

if (!response.ok) {
  throw new Error(`HTTP ${response.status}`);
}

const data = await response.json();
return String(data.price?.next_full_window?.start || '');

Optional mit API-Key

Wenn du mehr als den freien Horizont testen willst, trägst du den Key direkt im Script ein. Die API erwartet aktuell einen Bearer-Header.

const API_KEY = 'DEIN_API_KEY';
const url = 'https://api.energypriceforecast.eu/api/v1/homey/summary?country=de&hours=120&window_hours=4';

Maßgeblich ist am Ende nicht nur der gewünschte Wert in der URL, sondern das, was der Server in meta.allowed_horizon_hours tatsächlich freigibt.

Typische Use Cases in Homey

WallboxNur laden, wenn is_cheapest_window_now wahr ist oder der aktuelle Preis unter einem Grenzwert liegt.
Wärmepumpe oder BoilerGünstige Fenster zum Vorziehen oder Puffern nutzen, statt nur blind auf Uhrzeiten zu setzen.
BenachrichtigungenDen nächsten guten Start als Text zurückgeben und in Push- oder Sprachmeldungen einsetzen.

Wichtige Meta-Felder für Debug

Feld Bedeutung Warum relevant
meta.api_key_statemissing, valid, inactive oder ein anderer Fehlerstatus.Prüfen, ob dein Bearer-Token wirklich greift.
meta.allowed_horizon_hoursServerseitig erlaubter Maximalhorizont.Wichtig für 48h vs. 120h.
meta.used_horizon_hoursTatsächlich verwendeter Horizont.Zeigt, ob ein Request gekürzt wurde.
meta.used_calls_todayBisherige API-Aufrufe am Tag.Hilft bei echter Nutzungsbeobachtung im Test.

Aktueller Produktstand

Für Homey bauen wir bewusst erst den leichten Einstieg über HomeyScript und Advanced Flow. Eine echte Homey-App wäre technisch möglich, ist aber als erster Schritt deutlich schwerer zu testen, zu reviewen und zu pflegen.