Dobbelt sluk: sluk lyset af flere omgange

Du kender det sikkert godt: Du går ud af et rum og slukker lyset på vejen ud, og opdager først nu, at der er en lampe i den anden ende af rummet, som stadigvæk er tændt og pludseligt virker meget langt væk.
Nu venter det kedelige ritual med at tænde lyset igen, gå tilbage til den tændte lampe, slukke den, gå tilbage ud af rummet og slukke lyset på ny.

Det er meget almindeligt, at én kontakt kun kontrollerer de dele af lyset i et rum, som den er i nærheden af.
Jeg har f.eks. et lang bryggers, hvor jeg kan tænde og slukke lyset i bryggerset fra kontakter i begge ender af rummet. I den ene ende af bryggerset er der et arbejdsbord med vask, som har sit eget lys, som kontrolleres af en separat kontakt.
Jeg har ofte stået i modsatte ende af rummet og slukket for det generelle lys i rummet og opdaget at lyset over arbejdsbordet stadigvæk er tændt.

Den problematik har jeg løst ved, at 1. gang der trykkes på sluk på kontakten, der slukker det generelle lys, og 2. gang der trykkes, der slukker alt lys i rummet.

Den nemme måde

Flow1: Dette er det almindelige flow til at slukke lyset, som hører til kontakten. Jeg bruger hue app’ens funktion, til at slukke alle lyskilder i rummet i én kommando, for at få slukket dem samtidig og ikke en af gangen med et lille delay imellem hver.
Mit lys over arbejdsbordet (kaldet “Lifx over vasken” i min Homey) er ikke en Hue lyskilde, så det slukker ikke af denne kommando – og det skal det heller ikke. Det styres af sin egen kontakt normalt.

Flow2: Her er endnu et flow, som reagerer på sluk knappen, på samme kontakt som i flow1. Her checker jeg samtidig, om de 4 lyskilder i bryggerset allerede er slukket i AND-sektionen, og hvis de er det, så slukker jeg lyset over arbejdsbordet (kaldet “Lifx over vasken” i min Homey).

Denne løsning fungerer, men har du allerede på forhånd opdaget, at du skal have begge lys zoner slukket, så kan du ikke bare trykke 2 hurtige gange på sluk knappen.
Du er nødt til at vente til lyset fra flow1 er blevet slukket helt og Homey har opdaget det, før end flow2 kan blive udført ved næste tryk på sluk knappen. Det tager ca. 1-2 sekunder og resulteret bliver, at du skal gøre følgende: tryk SLUK (flow1 udføres) – vent mindst 1-2 sek. – tryk SLUK igen (flow2 udføres).

Den avanceret måde – uden pause

For rent faktisk at kunne lave et dobbelttryk på sluk knappen, ligesom man dobbeltklikker på en mus, så er vi nødt til at tælle hvor mange gange, der er trykket på sluk knappen, siden at lyset blev tændt.
Til det formål skal vi bruge en numerisk tæller variable, som jeg har valgt at kalde for “Bryggers Switch off”. Den skal oprettes, før du begynder at oprette nogle af de 4 flows.

Flow1: Når der bliver trykket på sluk knappen, så bliver der faktisk ikke slukket noget direkte mere. I stedet tæller vi hvor mange gange der er trykket på knappen. Det er lige meget hvor længe der er gået imellem trykkene, der bliver bare altid lagt 1 oven i den aktuelle værdi.

Flow2 og flow3: Disse flows bliver udført når den numeriske tæller, som holder øje med hvor mange gange vi har trykket på off knappen, bliver ændret. F.eks. når der tælles fra 0 til 1 eller 1 til 2.
I AND-sektionen kigger vi på, om det er 1. eller 2. gang, at Flow1 har registeret et tryk, og slukker henholdsvis det generelle lys i bryggerset hvis det er 1. gang, og lyset over arbejdsbordet (kaldet “Lifx over vasken” i min Homey) hvis det er 2. gang.

Trykker man 2 gange på sluk knappen som et dobbeltryk, så bliver værdien først 1 og siden 2, og begge flows bliver derfor udført lige efter hinanden. Det ligner at de udføres samtidig.

Flow4: Her bliver tælleren sat tilbage til 0, når lyset i bryggerset bliver tændt.
Jeg har gjort det på denne måde, så tælleren bliver nulstillet uanset hvilken kontakt (eller Google Home), som tænder for lyset.

Tip1: Jeg har ændret mit flow3 , så der under AND står “Bryggers Switch off is greater than 1” i stedet for “… is exactly 2”.
Det gør, at i det sjældne tilfælde, at jeg har slukket alt lyset med et dobbelt-tryk og nogen igen har tændt lyset over arbejdsbordet, men ikke tændt det generelle lys i bryggerset, så får den numeriske variable værdien 3 næste gang jeg trykker på sluk, og så ville der normalt ikke ske noget, for der er ingen flows der reagerer på værdien 3. Med denne ændring bliver flow3 altid udført.

Tip2: Du kan med denne tælle metode nemt udvide til at have et tripple-tryk eller mere.