Ik zit met de volgende uitdaging:
Ik heb een Homey en een aantal Shelly dimmers (SD). In elke ruimte zit één SD op de hoofdverlichting, en 1 of meer SD op sfeerverlichting. De "hoofd-SD" heb ik achter een dubbele pulsschakelaar gezet gekoppeld aan S1 en S2 van de SD.
Het idee is dat ik met één van de 2 buttons de hoofdverlichting kan bedienen (aan/uit/dimmen) en met de andere button scene's kan activeren door 1, 2 of X maal te klikken. Hiervoor moet ik dus iets hebben dat telt hoe vaak ik op de 2e knop druk en afhankelijk daarvan een bepaalde flow start.
Ik heb daarvoor i.c.m. BetterLogic en Countdown flows gemaakt die:
1:
Detect: als ik op SD btn2 druk dan "intButtonpress + 1" en start flow "checktimer" (en strDeviceName=Shellynaam)
2:
CheckTimer: als de timer nog niet loopt, start dan timer 5 sec
3:
Reset als timer = 0 dan intButtonpress = 0
Als ik dus 1, 2 of 3 x op de knop druk dan krijg ik het aantal in intButtonpress, en dat reset na 5 seconde.
Vervolgens kan ik een flow starten op basis van detectie van
wijziging van de variabele intButtonPress
Scene 1: als inButtonpress changed EN intButtonpress =1 (en strDeviceName="xxxx") DAN start Scene1
Scene 2: als inButtonpress changed EN intButtonpress =2 (en strDeviceName="xxxx") DAN start Scene2
Scene 3: als inButtonpress changed EN intButtonpress =3 (en strDeviceName="xxxx") DAN start Scene3
Het werkt, maar het probleem hiervan is dat als ik de knop bijvoorbeeld 3x indruk alle 3 de scene's achter elkaar geactiveerd worden; de variable wijzigt immers 3x dus triggert voor elke waarde.
Met deze opzet kan ik alleen maar verzinnen dat ik eigenlijk een vertraging zou moeten inbouwen van bijv 1,5 a 2sec op de check van de
waarde van de variabele, maar ik zie niet hoe
Of ik moet een heel andere opzet maken...
Iemand een idee?
Een van de uitdagingen is ook dat ik dit in elke kamer wil doen. Deze opzet geeft me één counteropzet die voor elke kamer werkt: aangezien hij na 5 sec reset maakt het niet uit in welke kamer ik op SD btn2 druk. Om die reden heb ik in stap 1 ook nog een strDeviceName gezet, die ik in de scene's kan gebruiken om een scene alleen te starten wanneer ik een specifieke SD activeer en kan ik overal van dezelfde counter gebruik maken.
Alles werkt, alleen die hobbel van alléén het starten van SceneX bij X maal indrukken
edit: nou kom ik eigenlijk meteen zelf met een oplossing: bij de eerste flow start ik na 1 sec een flow die de waarde van intButtonPress overzet naar
intButtonPresses, en vervolgens trigger ik de andere flow op wijziging van intButtonPresses.
Nu wordt pas na 1sec gecontroleerd welke scene moet starten (lees: getriggerd)
[
Voor 6% gewijzigd door
Stefke op 11-09-2020 11:40
]