Taal

Homey · prijs en CO2

Gebruik stroomprijs en CO2 in Homey zonder direct een eigen Homey-app te bouwen

Voor Homey is de logische eerste stap geen volledige App Store-integratie, maar een compacte summary-endpoint plus eenvoudige HomeyScript-kaarten in Advanced Flow. Dat is sneller te testen en veel makkelijker uit te leggen.

Belangrijke logica vroeg uitgelegd

De prijslogica is ook voor Homey niet simpelweg “alleen forecast”. Ze werkt bewust in twee stappen, zodat echte marktdata altijd voorrang houden zodra ze beschikbaar zijn.

Stap 1Zodra officiele day-ahead voor een slot bestaat, krijgt die prijs voorrang.
Stap 2Forecast wordt alleen gebruikt voor de toekomst die nog niet door officiele day-ahead-data is afgedekt.
Belangrijke uitkomstDe summary combineert dus echte day-ahead-prijzen met forecast alleen voor het nog open deel van de horizon.
Waarom dit voor Homey logisch is

Homey draait sterk om Flows en HomeyScript. Voor een eerste uitrol is dat veel pragmatischer dan meteen een volledige Homey-app bouwen, laten reviewen en onderhouden.

Belangrijk voor beginners

Deze pagina gebruikt bewust kleine HomeyScript-kaarten in Advanced Flow. Daardoor test je per kaart precies één waarde, in plaats van alles tegelijk te moeten debuggen.

Aanbevolen startpunt: summary

Voor Homey is er een eigen summary-pad. Technisch ligt het dicht bij de andere automation-endpoints, maar de structuur en naamgeving zijn bewust afgestemd op HomeyScript en Advanced Flow.

https://api.energypriceforecast.eu/api/v1/homey/summary?country=nl&hours=48&window_hours=4
Actuele prijsflat.current_price voor laad- of schakellogica.
CO2 liveflat.current_co2_g_kwh voor groenere automatiseringen.
Vensterlogicaflat.is_cheapest_window_now en price.next_full_window.start voor directe Flow-beslissingen.

Wat de API precies teruggeeft

De Homey-endpoint levert een compacte automation-weergave. Dat is belangrijk, omdat je in Homey meestal niet wilt starten met een complete ruwe tijdreeks, maar met een paar heldere waarden voor Flows.

Deel Inhoud Nut
flatActuele prijs, actuele CO2, actieve beste vensters en resterende minuten.Ideaal voor simpele HomeyScript-returnwaarden.
priceActueel prijsslot plus best_window en next_full_window.Voor planning en toekomstlogica.
co2Actueel CO2-slot plus CO2-vensters.Voor groener in plaats van alleen goedkoper sturen.
sourceMetadata over day-ahead en forecast.Belangrijk voor interpretatie en debug.
metaAPI-key-status, toegestane horizon en dagtellers.Nuttig voor limieten en foutopsporing.

Periode en resolutie

De voorbeelden gebruiken hours=48 en window_hours=4. Dat is een goed startpunt, maar niet de volledige productgrens.

PeriodeMet hours bepaal je de gevraagde horizon. Publiek communiceren we voor de prijsprognose nu maximaal 120 uur.
Feitelijk toegestaanZonder API-key zijn nu 48 uur vrij. Met key kan meer toegestaan zijn. Doorslaggevend is altijd meta.allowed_horizon_hours.
ResolutieDay-ahead kan in kwartieren komen, terwijl forecast en CO2 meestal per uur blijven. De summary vat dat compact samen voor automatiseringen.

Zo gebruik je dit in Advanced Flow

  1. Installeer HomeyScript.
  2. Maak in Advanced Flow een tijdtrigger, bijvoorbeeld elke 15 minuten.
  3. Voeg daarna een HomeyScript-kaart toe met returntype Number, Yes/No of Text.
  4. Plak een van de copy-paste-blokken hieronder.
  5. Gebruik de result-tag in de volgende Flow-stap.

Homey beschrijft HomeyScript expliciet als manier om website-API’s te benaderen. De onderstaande voorbeelden gebruiken precies dat met de Homey-summary-endpoint.

Voorbeeld 1: actuele prijs als Number teruggeven

Handig als je op drempelwaarden of vergelijkingen wilt sturen.

const API_KEY = '';
const url = 'https://api.energypriceforecast.eu/api/v1/homey/summary?country=nl&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);

Voorbeeld 2: loopt het beste prijsvenster nu?

Voor echte automatiseringen is dat vaak belangrijker dan alleen weten wanneer het volgende venster start.

const API_KEY = '';
const url = 'https://api.energypriceforecast.eu/api/v1/homey/summary?country=nl&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;

Voorbeeld 3: volgende volledige start als Text teruggeven

Praktisch voor planning, dashboards of meldingen.

const API_KEY = '';
const url = 'https://api.energypriceforecast.eu/api/v1/homey/summary?country=nl&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 || '');

Optioneel met API-key

Als je meer dan de vrije horizon wilt testen, zet je de key direct in het script. De API verwacht op dit moment een Bearer-header.

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

Doorslaggevend is uiteindelijk niet alleen wat je in de URL vraagt, maar wat de server in meta.allowed_horizon_hours echt toestaat.

Typische Homey-use-cases

EV ladenAlleen laden als is_cheapest_window_now waar is of de actuele prijs onder een grens zakt.
Warmtepomp of boilerGoedkope vensters gebruiken voor voorverwarmen of bufferen, in plaats van alleen vaste tijden.
MeldingenDe volgende goede start als tekst teruggeven en gebruiken in push- of spraakmeldingen.

Belangrijke meta-velden voor debug

Veld Betekenis Waarom relevant
meta.api_key_statemissing, valid, inactive of een andere foutstatus.Controleren of je Bearer-token echt wordt gebruikt.
meta.allowed_horizon_hoursServer-side toegestane maximale horizon.Belangrijk voor 48 uur versus 120 uur.
meta.used_horizon_hoursFeitelijk gebruikte horizon.Laat zien of een request is afgekapt.
meta.used_calls_todayAPI-calls die vandaag al zijn gebruikt.Nuttig om echt testgebruik te volgen.

Huidige productfase

Voor Homey kiezen we bewust eerst de lichte route via HomeyScript en Advanced Flow. Een echte Homey-app zou later kunnen, maar is als eerste stap veel zwaarder om te testen, reviewen en onderhouden.