Native Homey-app · openbare test
Plan energiegebruik in Homey op prijs en net-CO₂
Installeer Energy Price Forecast als een normale Homey-app. De app toont actuele waarden, maakt betrouwbare warmtepomp- en weekendplannen en levert de resultaten als Flow-kaarten—zonder HomeyScript.
- voor Homey Pro, Homey Pro mini en Homey Self-Hosted Server
- tot 48 uur gratis, zonder account of API-key
- optioneel Private Pro: tot 120 uur en een eerder weekendplan
Wat de app je geeft
Een virtueel prognoseapparaat combineert prijs- en net-CO₂-data met kant-en-klare plannen voor normale Homey Flows.
- Warmtepomp of boiler: kies de goedkoopste N losse uren binnen elk vast X-uursblok. Zo wordt verwarmen niet eindeloos uitgesteld.
- Elektrische auto: plan het weekend en laad alleen in de geselecteerde goedkope uren.
- Flexibele verbruikers: gebruik het goedkoopste aaneengesloten prijsvenster of het groenste CO₂-venster.
- Duidelijke status: bekijk databron, prognosehorizon en actualiteit direct op het apparaat.
Installeren in vier stappen
- Open de Homey testpagina.
- Accepteer de melding voor het testkanaal en installeer de app op je compatibele Homey.
- Voeg het apparaat Prijs- & CO₂-prognose toe en volg de begeleide configuratie.
- Gebruik de Flow-kaarten om op het juiste moment te schakelen, laden, verwarmen of melden.
Deze versie is nog niet door Homey gecertificeerd. Momenteel worden Homey Pro, Homey Pro mini en Homey Self-Hosted Server ondersteund. Homey Cloud wordt in deze eerste testversie niet ondersteund.
Zonder API-key plant de app tot 48 uur vooruit, inclusief een weekendplan van zaterdag tot zondag. Private Pro verlengt de horizon tot 120 uur en kan het weekend al vanaf vrijdag voorbereiden.
Zo wordt de prognose opgebouwd
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.
Koppelen, statuswaarden, planlogica en Flow-kaarten zitten in één begeleide Homey-ervaring. HomeyScript is hieronder alleen nog nodig als geavanceerde optie voor eigen API-logica.
De API-voorbeelden hieronder blijven nuttig als de native app een gewenste waarde nog niet aanbiedt of wanneer je volledig eigen berekeningen wilt bouwen.
De API levert waarden en signalen voor HomeyScript en Flows. Ze overschrijft niet de dynamische prijzen in het native Homey Energy-scherm.
Geavanceerd alternatief: HomeyScript en directe API-toegang
Voor de meeste gebruikers is de native app hierboven de juiste start. Voor eigen scripts blijft er een summary-pad waarvan structuur en naamgeving zijn afgestemd op HomeyScript en Advanced Flow.
https://api.energypriceforecast.eu/api/v1/homey/summary?country=nl&hours=48&window_hours=4flat.current_price voor laad- of schakellogica.flat.current_co2_g_kwh voor groenere automatiseringen.flat.is_cheapest_window_now en price.next_full_window.start voor directe Flow-beslissingen.Alternatief: volledige prijsreeks voor eigen logica
Wil je prijzen zelf vergelijken, drempels berekenen of eigen tijdvensters kiezen in plaats van alleen kant-en-klare signalen te gebruiken? Gebruik dan de Homey-prijsreeks.
https://api.energypriceforecast.eu/api/v1/homey/prices?country=nl&hours=48&mode=mixed&resolution=15mmode=mixed gebruikt officiële day-ahead-prijzen zodra die beschikbaar zijn en vult alleen de resterende horizon aan met de prognose. Echte kwartierprijzen blijven kwartierprijzen; uurprognoses worden als vier gelijke kwartierslots geleverd.
const API_KEY = '';
const url = 'https://api.energypriceforecast.eu/api/v1/homey/prices?country=nl&hours=48&mode=mixed&resolution=15m';
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();
const next12Hours = data.entries.slice(0, 48);
const prices = next12Hours.map(slot => Number(slot.value)).filter(Number.isFinite);
if (prices.length === 0) throw new Error('Geen geldige prijzen ontvangen');
return Math.min(...prices);
Dit voorbeeld geeft de laagste basisprijs van de komende twaalf uur terug als Number. De waarden zijn standaard marktprijzen zonder belastingen en netkosten.
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 |
|---|---|---|
flat | Actuele prijs, actuele CO2, actieve beste vensters en resterende minuten. | Ideaal voor simpele HomeyScript-returnwaarden. |
price | Actueel prijsslot plus best_window en next_full_window. | Voor planning en toekomstlogica. |
co2 | Actueel CO2-slot plus CO2-vensters. | Voor groener in plaats van alleen goedkoper sturen. |
source | Metadata over day-ahead en forecast. | Belangrijk voor interpretatie en debug. |
meta | API-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.
hours bepaal je de gevraagde horizon. Publiek communiceren we voor de prijsprognose nu maximaal 120 uur.meta.allowed_horizon_hours.Zo gebruik je dit in Advanced Flow
- Installeer HomeyScript.
- Maak in Advanced Flow een tijdtrigger, bijvoorbeeld elke 15 minuten.
- Voeg daarna een HomeyScript-kaart toe met returntype
Number,Yes/NoofText. - Plak een van de copy-paste-blokken hieronder.
- 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();
const price = Number(data.flat?.current_price);
if (!Number.isFinite(price)) throw new Error('Geen actuele prijs ontvangen');
return price;
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
is_cheapest_window_now waar is of de actuele prijs onder een grens zakt.Belangrijke meta-velden voor debug
| Veld | Betekenis | Waarom relevant |
|---|---|---|
meta.api_key_state | missing, valid, inactive of een andere foutstatus. | Controleren of je Bearer-token echt wordt gebruikt. |
meta.allowed_horizon_hours | Server-side toegestane maximale horizon. | Belangrijk voor 48 uur versus 120 uur. |
meta.used_horizon_hours | Feitelijk gebruikte horizon. | Laat zien of een request is afgekapt. |
meta.used_calls_today | API-calls die vandaag al zijn gebruikt. | Nuttig om echt testgebruik te volgen. |
Help de native Homey-app testen
Installeer de testversie en deel je Homey-model, land en automatiseringsdoel in het communitytopic. Feedback over koppelen, planwissels en Flow-triggers is bijzonder waardevol.