Bestaat er een Homey-app voor de actuele Nederlandse stroommix?
Ik zoek het percentage groene stroom op het elektriciteitsnet.
Ik gebruik Homey Premium. Is er een app of Flow-oplossing die deze gegevens ophaalt en beschikbaar maakt in Homey?
Mijn idee is om een Mill electrische kachel in te schakelen als de groene stroom mix op het net boven de 50% uitkomt. Zodoende kan mijn cv wat lager en gaat mijn uitstoot ook wat omlaag.
Ik heb een dynamisch energiecontract bij Zonneplan.
Waarschijnlijk niet. Op Homey Cloud worden alleen apps toegelaten die met een online dienst of apparaten van een fabrikant communiceren. Algemene “Tools” apps worden niet toegelaten op Homey Cloud
Geen flauw idee of je op Homey Cloud Homeyscripts kunt draaien, maar anders even de app “Homey Script” installeren en onderstaande code gebruiken.
Deze geeft het actuele percentage groene stroom terug:
/**
* Percentage groene stroom Nederland
* Bron: Energy-Charts API
* Geen API-key nodig
*
* HomeyScript tags:
* Groene_stroom_percentage
* Groene_stroom_tijd
*/
const urls = [
'https://api.energy-charts.info/v2/signal?country=nl',
'https://api.energy-charts.info/signal?country=nl'
];
async function getData(url) {
const response = await fetch(url);
if (!response.ok) {
throw new Error(`HTTP ${response.status}`);
}
return await response.json();
}
try {
let percentage = null;
let meetTijd = null;
let bron = '';
for (const url of urls) {
try {
const json = await getData(url);
const now = Date.now();
// Nieuwe API v2
if (Array.isArray(json.data)) {
const points = json.data
.map(item => ({
timestamp: new Date(item.timestamp).getTime(),
value: item.values?.renewable_share_of_load
}))
.filter(item =>
Number.isFinite(item.timestamp) &&
item.timestamp <= now &&
typeof item.value === 'number' &&
Number.isFinite(item.value)
);
if (points.length > 0) {
const latest = points.reduce((a, b) =>
b.timestamp > a.timestamp ? b : a
);
percentage = latest.value;
meetTijd = new Date(latest.timestamp);
bron = 'API v2';
}
}
// Oude API v1
if (percentage === null &&
Array.isArray(json.share) &&
Array.isArray(json.unix_seconds)) {
const points = json.share
.map((value, i) => ({
timestamp: json.unix_seconds[i] * 1000,
value
}))
.filter(item =>
item.timestamp <= now &&
typeof item.value === 'number' &&
Number.isFinite(item.value)
);
if (points.length > 0) {
const latest = points.reduce((a, b) =>
b.timestamp > a.timestamp ? b : a
);
percentage = latest.value;
meetTijd = new Date(latest.timestamp);
bron = 'API v1';
}
}
if (percentage !== null) break;
} catch (error) {
log(`API-fout: ${error.message}`);
}
}
if (percentage === null) {
throw new Error('Geen geldige actuele meting gevonden. Controleer API-respons.');
}
percentage = Math.round(percentage * 10) / 10;
const tijd = meetTijd.toLocaleString('nl-NL', {
timeZone: 'Europe/Amsterdam'
});
await tag('Groene_stroom_percentage', percentage);
await tag('Groene_stroom_tijd', tijd);
log('------------------------------');
log(`Groene stroom: ${percentage}%`);
log(`Meetmoment: ${tijd}`);
log(`Bron: ${bron}`);
log('------------------------------');
return percentage;
} catch (error) {
log(`FOUT groene stroom: ${error.message}`);
throw error;
}
Nee, dat is niet mogelijk. Alle apps die toegang nodig hebben tot de Homey API, alle community apps en alle apps die niet met een apparaat/fabrikant of online dienst verbinden worden nooit toegelaten op Homey Cloud
Ok, bedankt voor de reacties. Ik heb nu een homey pro aangeschaft. En ik ga het groene stroom script zeker eens proberen.
Aha, top welkom in de wereld van Homey gebruikers (het is echt verslavend
) en succes met het script !