Hi everyone,
Can anyone help me with this script. ChatGPT wrote it, so blame it ;-). Somehow it doesn’t create a fully working script, but something lik 70%.
// Functie om een variabele te controleren en aan te maken als deze niet bestaat
async function checkAndCreateVariable(variableName, variableType, initialValue = 0) {
try {
console.log(`Controleren of variabele voor ${variableName} bestaat...`);
// Haal de bestaande variabelen op
const existingVariables = await Homey.logic.getVariables();
// Controleer of de variabele al bestaat
if (existingVariables[variableName]) {
console.log(`Variabele ${variableName} bestaat al.`);
return null; // Geen nieuwe variabele nodig
}
console.log(`Variabele ${variableName} bestaat niet, wordt aangemaakt...`);
// Correcte manier om een variabele aan te maken
await Homey.logic.createVariable({
name: variableName,
type: variableType,
value: initialValue
});
console.log(`Variabele ${variableName} succesvol aangemaakt.`);
return variableName;
} catch (error) {
console.error(`Fout bij het controleren of aanmaken van de variabele ${variableName}:`, error);
}
}
// Functie om de status van lampen op te halen en nieuwe variabelen aan te maken
async function getLampStatuses() {
try {
const createdVariables = []; // Lijst van aangemaakte variabelen
// Verkrijg de lijst van apparaten in Homey
const devices = await Homey.devices.getDevices();
// Filter alleen de apparaten die lampen zijn
const lamps = Object.values(devices).filter(device => device.class === 'light');
console.log('Beschikbare lampen:', lamps);
for (let lamp of lamps) {
const lampStatus = lamp.capabilitiesObj?.onoff?.value || false; // Aan/uit status
const brightness = lamp.capabilitiesObj?.dim?.value || 0; // Helderheid
console.log(`Status voor ${lamp.name}: ${lampStatus ? 'Aan' : 'Uit'}, Helderheid: ${brightness}`);
// Variabelenamen op basis van de lampnaam
const statusVariableName = `${lamp.name.replace(/\s+/g, '_')}_Aan`;
const brightnessVariableName = `${lamp.name.replace(/\s+/g, '_')}_Helderheid`;
// Status-variabele controleren en aanmaken
const createdStatusVariable = await checkAndCreateVariable(statusVariableName, 'boolean', lampStatus);
if (createdStatusVariable) createdVariables.push(createdStatusVariable);
// Helderheid-variabele controleren en aanmaken
const createdBrightnessVariable = await checkAndCreateVariable(brightnessVariableName, 'number', brightness);
if (createdBrightnessVariable) createdVariables.push(createdBrightnessVariable);
}
if (createdVariables.length > 0) {
console.log('De volgende variabelen zijn succesvol aangemaakt:');
createdVariables.forEach(variableName => console.log(`- ${variableName}`));
} else {
console.log('Er zijn geen nieuwe variabelen aangemaakt.');
}
} catch (error) {
console.error('Fout bij het ophalen van lampstatus:', error);
}
}
// Voer de functie uit
getLampStatuses();