Homey Community Forum

Looplicht maken

Hallo allemaal,

Newbie hier en net een paar dagen met Homey begonnen.
Zeker geen newbie op het gebied van domotica.
Vanaf dag 1 al Fibaro gebruiker, maar door de jaren heen veel meer devices gekregen en inmiddels laat fibaro ook wat wensen over (tenminste voor mij).
Ook nog flink aan de gang geweest met Home Assistant, kan ik goed mijn weg mee vinden maar slechte ervaring met de z-wave ondersteuning en steeds maar weer niet bruikbare scenes.
Nu gelukkig gebruiker van Homey!

Maar… ik heb heel wat Philips Hue spots in mijn woning en zou hier graag een ‘looplicht’ mee willen maken.
Looplicht in de zin van: ik kom de woning binnen, bewegingssensor in de keuken ziet me en de spots in het plafond gaan één voor één alle 15 aan.
De flow voor het licht aan te doen met de sensor heb ik natuurlij al allemaal klaar met bijhorende timers om het weer uit te zetten.

Waar het mij om gaat is, hoe kan ik het looplicht maken in een flow (of andere manier).
Dat wil zeggen, Hue spot 1 gaat aan, 400ms later gaat spot 2 aan, 400ms later spot 3 enz…
Had al gevonden dat ik de spots achter elkaar kon zetten en iedere keer de vertraging te vergroten.
Helaas loop ik hier tegen de beperking dat de vertraging een minimum tijd kent van 1 sec, waar je voor een ‘goed’ effect toch echt met milliseconden of decimalen (0,4s) moet kunnen werken.

Weet iemand hoe ik dit effect toch kan maken, op welke manier dan ook?
Heb uiteraard ook al de zoekfunctie gebruikt maar heb nog geen vergelijkbare situatie/vraag kunnen vinden, vandaar dat ik dit topic open.

Je zou 15 flows kunnen maken, waarbij het aangaan van lamp 1 de flow voor het aanzetten van Lamp 2 triggered. En het aangaan van lamp 2 de flow voor het aanzetten van lamp 3 triggered. Etc etc.
Overigens geen flauw benul wat de delay tijden dan zijn

Ik heb het nog nooit geprobeerd maar je zou het met de Group app kunnen proberen.

Dan alle lampen in een group zetten met een onderlingen vertraging. Dit kan milisec

Kijk, die vertraging had ik nog niet gevonden!

Heb het geprobeerd aangezien ik de groepen ook al heb ingericht.
Het werkt ‘half’ als in;

  • Bij het aanzetten is de vertraging te zien en werkt zoals ik bedoelde
  • Bij het uitzetten lijkt het te worden genegeerd en gaat alles gelijktijdig uit

Helaas is het grootste nadeel dat de vertraging nu ‘willekeurig’ naar een spot gaat.
Hiermee kan ik dus zelf niet de volgorde bepalen waarin het plaatsvind.
Bedoeling was om de lampen dan ook vanaf de kant waar je de ruimte in komt aan te laten gaan.

Ik weet niet of het werkt maar misschien kan je zoals hierboven al werd aangegeven dat ALS lamp 1 aangaat dan de flow starten dat lamp 2 aangaat en dan een flow starten dat lamp 3 aangaat
maar bij de flow van lamp 1 ook lamp 4 aan laten gaan met een vertraging van een seconde.
En bij de flow van lamp 2 dan lamp 5 ook aan laat gaan met een vertraging van een seconde.

Ik verzin ook maar iets. Geen idee of het wat tijd betreft goed loopt.

Ik heb het even geprobeerd op deze manier en dat WERKT!
Het effect is niet altijd precies hetzelfde en de lampen gaan net wat te snel achter elkaar aan.
Maaarrrrr, dit is wat op dit moment voor 80% de lading dekt.
Dus ga eens even aan de slag met wat flows, heb in totaal 56 hue lampen te gaan voor de keuken, bijkeuken en woonkamer bij elkaar.

80% is dus het grootste gedeelte. Weet ook niet of er een aparte app voor is. Maar misschien een beetje varieren met welke lamp je in welke flow zet met welke vertraging.
In elk geval, succes.

Dat is flink, via de Bridge of direct op Homey?
Als je veel ZigBee direct op Homey hebt nodig ik je speciaal uit hier even te kijken:

(en te rapporteren :wink: )

Zo te zien werk je overigens alleen nog met vertragingen? Voor het beter werk zeker ook de chronograph app of andere uitproberen. Naast timers heeft die ook transitions. Je zou bijvoorbeeld kunnen denken aan een transition van1 to 10 over de tijd die je in totaal wilt, en dan alle lampen op een andere transitiewaarde laten schakelen, dus b.v. als transitie de waarde 5 heeft bereikt gaat lamp 5 aan.

In totaal heb ik nog veel meer Hue draaien. Maar zitten nu allemaal via de bridges verbonden. Zal er eens naar kijken als ik wat meer tijd beschikbaar heb.

1 Like

Dank voor de tip, zal eens naar die chronograph app gaan kijken.

Leuk idee, Pierre. Ik heb je idee voor mezelf even uitgewerkt in een HomeyScript. Daar heb je alle controle die je maar wilt. Hieronder een voorbeeld voor 5 lampen.

//Script to turn on the listed lights with a delay

//specify the delay here in milliseconds
let delay = 400

//specify the lights here
let lamp1 = await Homey.devices.getDevice({id: "xxxxxxxxxxxxxxxx4a2bcbedbaf9"});
let lamp2 = await Homey.devices.getDevice({id: "xxxxxx4ced-a1ce-b1060df21d43"});
let lamp3 = await Homey.devices.getDevice({id: "xxxxxx43d0-9fa7-c8b59a04131a"});
let lamp4 = await Homey.devices.getDevice({id: "xxxxx9-457e-9ee2-2de9ff3f1696"}); 
let lamp5 = await Homey.devices.getDevice({id: "xxxxxxxxxxxb7cc-b8c7c271ec79"}); 

await TurnOnAllLights();

//function in which the list of lights to turn on is defined
async function TurnOnAllLights(){
        await TurnOn(lamp1);
        await TurnOn(lamp2);
        await TurnOn(lamp3);
        await TurnOn(lamp4);
        await TurnOn(lamp5);
}

//function to turn on a light and then wait x miliseconds before completing
async function TurnOn(light){
    console.log("Lamp " + light.name);
    light.setCapabilityValue('onoff', true);
    await wait(delay);
    return;
}

//function to wait for specified number of milliseconds
async function wait (timeout) {
  return new Promise((resolve) => {
    _.delay(function(text) {
        resolve();
    }, timeout)
  })
}

Om dit script te gebruiken doe je het volgende:
-Ga naar developer.athom.com
-Zoek het id van elke lamp op en zet die in het eerste deel van het script. Voeg extra variabelen toe voor lamp 6, 7 etc.
-Voeg de lamp toe in de methode “TurnOnAllLights”
-Save & Test
-Als je tevreden bent, start het script vanuit een Flow.

Met de delay moet je waarschijnlijk een beetje spelen. Als de delay te laag is, dan is het netwerk waarschijnlijk niet snel genoeg om de requests af te handelen.

Uiteraard kun je het script ook aanpassen om lampen uit te zetten en kun je parameters meegeven etc. Dit is maar een voorbeeld.

3 Likes