ik probeer voor mijn zonwering een script te schrijven maar blijf tegen de zelfde problemen aanlopen met het vinden van variabelen.
/ Variabelen ophalen
let zonweringStatus = await Homey.logic.getVariable({ id: ‘Zonwering_Uitgerold’ });
let overrideStatus = await Homey.logic.getVariable({ id: ‘Zonwering_Override’ });
let windkracht = await Homey.logic.getVariable({ id: ‘Windkracht’ });
let regen = await Homey.logic.getVariable({ id: ‘Regen’ });
let bewolking = await Homey.logic.getVariable({ id: ‘Bewolking’ });
let lux = await Homey.logic.getVariable({ id: ‘Lichtsterkte’ }); // Optioneel
Melding van Homey Script na test.
———————————————————
Script Error
Error: Not Found: Variable with ID Zonwering_Uitgerold
at ManagerDatabase.findEntry (file:///app/lib/ManagerDatabase.mjs:32:23)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Variable.findEntry (file:///node_modules/@athombv/homey-core/dist/lib/DatabaseEntry.mjs:203:23)
Wie o wie kan mij helpen. ik heb een homey pro 2023
1 Like
Hoi Alle,
De ID dient echt de ID, en niet de naam van de variabele te zijn.
//Name of Logic Variable
var name = "TVProgramma";
//Read Logic Var
var value = await ReadLogicVar(name);
console.log("The parameter '"+name+"' has a value '"+value+"'");
//Write Logic Var
var new_value = "NOS Journaal";
await WriteLogicVar(name,new_value);
async function ReadLogicVar(name){
let Logic = await Homey.logic.getVariables();
let idArr = Object.entries(Logic);
let filtered = idArr.filter(([key,value]) => value.name==name);
let [[,{id:varID}]] = filtered;
var varArr = await Homey.logic.getVariable({id:varID});
return varArr.value;
}
async function WriteLogicVar(name,value){
let Logic = await Homey.logic.getVariables();
let idArr = Object.entries(Logic);
let filtered = idArr.filter(([key,value]) => value.name==name);
let [[,{id:varID}]] = filtered;
var varArr = await Homey.logic.getVariable({id:varID});
if (typeof(value) == varArr.type){
await Homey.logic.updateVariable({id:varID,variable:{value:value}})
//console.log("Value has been updated")
return true;
}
else{
console.log("New value has the wrong type! Expected type is '"+varArr.type+"', not '"+typeof(value)+"'. Value has NOT been updated!")
return false;
}
}
Bedankt @Peter_Kawa!
Het is geslaagd! Vriendelijk dank!
1 Like