Gedeelde script van: Jeroen Huls

Ik bereken met HomeyScript een douchewaarde. Dit doe ik dmv een aantal

sensoren:

– Een watermeter (waarde: 5)

– P1-meter (waarde: 1)

– Slimme stekker met stroommeting op mijn CV-ketel (waarde: 1)

– Bewegingssensor in de voorruimte van de badkamer (waarde: 3)

– Bewegingssensoren in de toiletten (waarde: -1 per toilet, het is aannemelijk dat er zo doorgetrokken wordt en daarmee de waterdoorstroming op het niveau douchen komt)

Bovenstaande factoren heb ik getallen/waardes meegegeven, deze waardes heb ik in variabelen gestopt. Aan de hand van de berekende waarde is het aannemelijk dat er iemand staat te douchen, daar doe ik dan in diverse flows weer acties mee uitvoeren (meten hoe lang, berekenen hoeveelheid water en gas tijdens douchebeurt, spiegel verwarming wel of niet aan, verlichting dimmen).

Ik begin altijd met alles op 0 of false te zetten. Daarna haal ik in het script de standaard waardes op (de ID’s heb ik even vervangen door sterretjes). Vervolgens ga ik kijken of de factoren ’true’ zijn, zo ja, dan tel ik de bijbehorende waarde bij mijn douchewaarde op. De uiteindelijk berekende waarde stop ik in een Better Logic variabele (Homey’s eigen variabelen zijn helaas alleen maar uit te lezen, niet te vullen) om daar vervolgens de benoemde acties mee uit te voeren.

/* Stel de douchewaarde opnieuw in */ 

// Variabelen voor waardes maken
var DW = 0;
var DA = false;
var DWw = 0; 
var = 0;
var DWs = 0; 
var DWa = 0; 
var DWt1 = 0; 
var DWt2 = 0; 
// Rekenwaarde variabelen specificeren 
let VAR_DWw = await Homey.logic.getVariable({id: "*****"}); 
let VAR_DWg = await Homey.logic.getVariable({id: "*****"}); 
let VAR_DWs = await Homey.logic.getVariable({id: "*****"}); 
let VAR_DWa = await Homey.logic.getVariable({id: "*****"}); 
let VAR_DWt1 = await Homey.logic.getVariable({id: "*****"}); 
let VAR_DWt2 = await Homey.logic.getVariable({id: "*****"}); 
let VAR_DA = await Homey.logic.getVariable({id: "*****"}); 

// Reken waardes in Script variabelen stoppen 
DA = VAR_DA.value; DWa = VAR_DWa.value; 
DWw = VAR_DWw.value; DWg = VAR_DWg.value; 
DWs = VAR_DWs.value; DWt1 = VAR_DWt1.value; 
DWt2 = VAR_DWt2.value;

// Controle variabelen specificeren 
let VAR_Aanw = await Homey.logic.getVariable({id: "*****"}); 
let VAR_Wat = await Homey.logic.getVariable({id: "*****"}); 
let VAR_Gas = await Homey.logic.getVariable({id: "*****"}); 
let VAR_Str = await Homey.logic.getVariable({id: "*****"}); 
let VAR_WC1 = await Homey.logic.getVariable({id: "*****"}); 
let VAR_WC2 = await Homey.logic.getVariable({id: "*****"});

// Douchewaarde berekenen 
// AANWEZIGHEID if ((VAR_Aanw.value == true) || (DA.value == true)) { DW = DW + DWa; 
}; 
// WATER 
if (VAR_Wat.value == true) { DW = DW + DWw; }; 
// GAS 
if (VAR_Gas.value == true) { DW = DW + DWg; }; 
// STROOM 
if (VAR_Str.value == true) { DW = DW + DWs; }; 
// WC 1 
if (VAR_WC1.value == true) { DW = DW + DWt1; }; 
// WC 2
if (VAR_WC2.value == true) { DW = DW + DWt2; }; 

// Variabele in Better Logic plaatsen 
let BLApp = await Homey.apps.getApp({id:"net.i-dev.betterlogic" }); BLApp.apiPut("Douchewaarde/" + DW); 

// Klaar return(true);