# Homey scripts probleem. Het setten van een variabele in Homeyscript

**URL:** <https://community.homey.app/t/homey-scripts-probleem-het-setten-van-een-variabele-in-homeyscript/59299>\
**Category:** 🇳🇱 Nederlands (Dutch)\
**Created:** [January 28, 2022, 8:50am UTC](https://community.homey.app/t/homey-scripts-probleem-het-setten-van-een-variabele-in-homeyscript/59299 "2022-01-28T08:50:57Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gerard\_L](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/gerard_l/32/30781_2.png) [@Gerard\_L](https://community.homey.app/u/Gerard_L)\
**Post date:** [January 28, 2022, 8:50am UTC](https://community.homey.app/t/homey-scripts-probleem-het-setten-van-een-variabele-in-homeyscript/59299/1 "2022-01-28T08:50:57Z")

</div>

Hierbij het probleem.  
Het lezen van een variabele gaat prima maar bij het wegschrijven (Set) krijg ik een vervelende foutmelding

const variabelen = await Homey.logic.getVariables();

console.log(‘Variables:’, variabelen);

//Get Logic variable objects

const RegelaarSetp = await Homey.logic.getVariable({ id:‘fc690371-ac77-4f9e-a197-29d193c26abe’}) ;

const TempSetpoint = await Homey.logic.getVariable({ id:‘a655c2e8-2a1b-4c8d-b6a9-6610f3e7547f’}) ;

const Iactie = await Homey.logic.getVariable({ id:‘af7e249c-e5a6-4608-bdab-3dc5d44a12f0’}) ;

const ControllerSetpoint = await Homey.logic.getVariable({ id:‘14913454-f657-459f-bf9b-99e3d7e6abef’}) ;

const Delta = await Homey.logic.getVariable({ id:‘7dcc904f-6639-4e62-9f7d-cc4d0c41cc1b’}) ;

const TemperatuurFilter = await Homey.logic.getVariable({ id:‘fc690371-ac77-4f9e-a197-29d193c26abe’}) ;

const TemperatuurMeting = await Homey.logic.getVariable({ id:‘fc690371-ac77-4f9e-a197-29d193c26abe’}) ;

// input filter

TemperatuurFilter.value = TemperatuurFilter.value + ((TemperatuurMeting.value - TemperatuurFilter.value)/3);

//update filter to variable

//await Homey.logic.updateVariable({ id:‘9a6cf53e-f3a0-42eb-9e98-0265e874f1a5’, variable: TemperatuurFilter.value});

RegelaarSetp.value=26;

//await Homey.logic.updateVariable({ id:‘fc690371-ac77-4f9e-a197-29d193c26abe’, variable: (String(RegelaarSetp.value))})

❌ Script Error  
⚠ invalid\_json: Er is een onbekende fout opgetreden [invalid\_json]  
at /node\_modules/athom-api/dist/index.js:1:1186403  
at processTicksAndRejections (internal/process/task\_queues.js:97:5)

---

<div class="post-metadata">

**Author:** ![Gerard\_L](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/gerard_l/32/30781_2.png) [@Gerard\_L](https://community.homey.app/u/Gerard_L)\
**Post date:** [January 28, 2022, 8:52am UTC](https://community.homey.app/t/homey-scripts-probleem-het-setten-van-een-variabele-in-homeyscript/59299/2 "2022-01-28T08:52:11Z")

</div>

De lijst van variabelen wordt prima weergegeven.  
Wat gaat hier fout

---

<div class="post-metadata">

**Author:** ![Gerard\_L](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/gerard_l/32/30781_2.png) [@Gerard\_L](https://community.homey.app/u/Gerard_L)\
**Post date:** [January 28, 2022, 9:15am UTC](https://community.homey.app/t/homey-scripts-probleem-het-setten-van-een-variabele-in-homeyscript/59299/3 "2022-01-28T09:15:06Z")

</div>

await Homey.logic.updateVariable({ id:‘fc690371-ac77-4f9e-a197-29d193c26abe’, variable:

Dit is de regel waarbij het fout gaat

❌ Script Error  
⚠ invalid\_json: Er is een onbekende fout opgetreden [invalid\_json]  
at /node\_modules/athom-api/dist/index.js:1:1186403  
at processTicksAndRejections (internal/process/task\_queues.js:97:5)

---

<div class="post-metadata">

**Author:** ![robertklep](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/robertklep/32/160628_2.png) [@robertklep](https://community.homey.app/u/robertklep)\
**Post date:** [January 28, 2022, 11:26am UTC](https://community.homey.app/t/homey-scripts-probleem-het-setten-van-een-variabele-in-homeyscript/59299/4 "2022-01-28T11:26:22Z")

</div>

De documentatie klopt niet, de juiste aanroep moet zijn:

```auto
await Homey.logic.updateVariable({ id: 'fc690371-ac77-4f9e-a197-29d193c26abe', variable: { value: RegelaarSetp.value })

```

Maar zoals ik al drie keer op Slack heb gezegd: **`updateVariable()` werkt niet vanuit Homeyscript**. Je hebt daar de rechten niet voor.

---

<div class="post-metadata">

**Author:** ![Gerard\_L](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/gerard_l/32/30781_2.png) [@Gerard\_L](https://community.homey.app/u/Gerard_L)\
**Post date:** [January 28, 2022, 12:08pm UTC](https://community.homey.app/t/homey-scripts-probleem-het-setten-van-een-variabele-in-homeyscript/59299/5 "2022-01-28T12:08:11Z")

</div>

id: ‘fc690371-ac77-4f9e-a197-29d193c26abe’  
Hier zit toch de rechten in. Of werkt het niet zo.  
Ik denk hierbij aan internet of things.

---

<div class="post-metadata">

**Author:** ![Gerard\_L](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/gerard_l/32/30781_2.png) [@Gerard\_L](https://community.homey.app/u/Gerard_L)\
**Post date:** [January 28, 2022, 12:11pm UTC](https://community.homey.app/t/homey-scripts-probleem-het-setten-van-een-variabele-in-homeyscript/59299/6 "2022-01-28T12:11:43Z")

</div>

Die oplossing met tags werkt maar ik kan geen grafische voorstelling van maken in my.Homey.app.  
De tags worden niet zichtbaar in my.Homey.app  
Beetje lastig allemaal.

---

<div class="post-metadata">

**Author:** ![Gerard\_L](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/gerard_l/32/30781_2.png) [@Gerard\_L](https://community.homey.app/u/Gerard_L)\
**Post date:** [January 28, 2022, 12:38pm UTC](https://community.homey.app/t/homey-scripts-probleem-het-setten-van-een-variabele-in-homeyscript/59299/7 "2022-01-28T12:38:17Z")

</div>

@WeeJeWel heb jij hier een antwoord op.  
Waarom wel rechten om te lezen maar niet om te schrijven. Terwijl het in dezelfde homey gebeurt.  
Zeer vreemd???

---

<div class="post-metadata">

**Author:** ![Slof](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/slof/32/1318_2.png) [@Slof](https://community.homey.app/u/Slof)\
**Post date:** [May 24, 2022, 6:26pm UTC](https://community.homey.app/t/homey-scripts-probleem-het-setten-van-een-variabele-in-homeyscript/59299/8 "2022-05-24T18:26:20Z")

</div>

Net Homey geüpdate maar kan nog geen voorbeeld vinden om een Logic te lezen of te schrijven via een script, weet iemand dat toevallig?  
En heeft een voorbeeld daarvoor als ik bijvoorbeeld de Logic Temp wil lezen en schrijven.

---

<div class="post-metadata">

**Author:** ![Peter\_Kawa](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/peter_kawa/32/173848_2.png) [@Peter\_Kawa](https://community.homey.app/u/Peter_Kawa)\
**Post date:** [May 24, 2022, 7:46pm UTC](https://community.homey.app/t/homey-scripts-probleem-het-setten-van-een-variabele-in-homeyscript/59299/9 "2022-05-24T19:46:19Z")

</div>

Geüpdatet naar v7.4.x?

Ongeveer als volgt:  
Je hebt vooraf de variabele ID nodig.  
(Maak eventueel eerst de variabelen aan welke je wil gaan schrijven)  
Om de ID te kunnen vinden, ga naar het kopje “Een variabele uitlezen” hier verderop.

Format:

```auto
await Homey.logic.updateVariable({id: 'VARIABLE_ID', variable: { value: A_VALUE } })

```

Voorbeelden:

```auto
await Homey.logic.updateVariable({id: '327a60e4-acbc-4614-8532-acb9ab012c24', variable: { value: false } })
// ID is van mijn var 'MyBoolVar'

await Homey.logic.updateVariable({id: '1a164078-63fc-470c-ac76-9da7f113445e', variable: { value: 123 } })
// ID is van mijn var 'MyNumVar'

await Homey.logic.updateVariable({id: 'aaa401d5-255b-4153-b0d0-e2af5060bd7d', variable: { value: 'Hello World' } })
// ID is van mijn var 'MyStringVar'

```

- Een variabele uitlezen:

```auto
await Homey.logic.getVariable()

// Vervang "MyVar" door de gezochte variabele naam
let varName = "MyVar"
// hieronder niets wijzigen
const logicVars = await Homey.logic.getVariables()
for (var iLogicVar in logicVars){
  if (logicVars[iLogicVar].name == varName)
  log("Variable: " + logicVars[iLogicVar].name + "\nType:\t " + logicVars[iLogicVar].type + "\nValue:\t " + logicVars[iLogicVar].value + "\nID:\t " + logicVars[iLogicVar].id)
}

```

Script output voorbeeld:

 ![Screenshot_20220524-215817_Chrome](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/6/c/6c1ee624b48ada7972e85dfbe961205f42a866c3.jpeg)

- [Bron](https://community.homey.app/t/diy-circadian-rhythm-based-lighting/33348/37)

---

<div class="post-metadata">

**Author:** ![Slof](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/slof/32/1318_2.png) [@Slof](https://community.homey.app/u/Slof)\
**Post date:** [May 24, 2022, 8:31pm UTC](https://community.homey.app/t/homey-scripts-probleem-het-setten-van-een-variabele-in-homeyscript/59299/10 "2022-05-24T20:31:18Z")

</div>

Bedankt! Had gehoopt het te kunnen doen zonder steeds met het ID te doen. Maar ja, dan maar goed documenteren.

---

<div class="post-metadata">

**Author:** ![Peter\_Kawa](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/peter_kawa/32/173848_2.png) [@Peter\_Kawa](https://community.homey.app/u/Peter_Kawa)\
**Post date:** [May 24, 2022, 8:55pm UTC](https://community.homey.app/t/homey-scripts-probleem-het-setten-van-een-variabele-in-homeyscript/59299/11 "2022-05-24T20:55:49Z")

</div>

Graag gedaan. Ja helaas kan het niet met enkel de naam van de variabele.  
Voordeel is dan dat het script blijft werken na het veranderen vd naam vd variabele.
