Slimme scene tips
Slimme tips voor slimmere scenes
Oftewel vergeet je smartphone. Vaak vragen mensen mij wat de makkelijkste interface is van een slim basisstation. Op zich een goede vraag, maar eigenlijk moet je nog een stap verder denken. Waarom zou je je smartphone willen gebruiken om je domotica-systeem in huis te willen bedienen? Kun je niet veel beter je scenes zo slim maken dat je je smartphone niet meer nodig hebt? Hoe, wij geven een aantal slimme scene tips..
Ga eerst even rustig zitten voor je begint.
Bedenk eerst wat je allemaal automatisch wilt laten gebeuren. Voorbeelden zijn:
- Automatisch de lampen uit om 05.00
- De hond laten blaffen als de postbode komt (maar niet te vaak)
- De radio aanzetten als je thuiskomt
- De lamp aan bij beweging (als het donker is)
- De thermostaat lager als er langere tijd geen beweging is
- Hetzelfde geldt voor de lampen.
- etc, etc.
(op onze projectenpagina staan deze voorbeelden uitgewerkt)
Het idee is dat je zo weinig mogelijk je smartphone hoeft te gebruiken zonder dat je systeem irritante dingen gaat doen.
Zo maak ik bijvoorbeeld gebruik van een centrale scene (zie tip 4) die iedere minuut loopt (checkhousescene) en die een aantal zaken controleerd.
Of de lampen te lang aan staan, of er niemand thuis is zodat de verwarming omlaag kan enzovoorts. Maar dit heeft ook een nadeel. Stel je komt terug van Schiphol, je zet de verwarming vast hoger omdat je dan lekker warm thuiskomt. Maar 1 minuut later zet je checkhousescene de CV weer lager.....grrrr kom je nog koud thuis.
Oplossing : De auto-Variabele
Om die reden heb ik een variabele gemaakt. In mijn geval heet die Vergrendeld.
bij het inschakelen van het alarm zet ik hem op 0 en als de waarde op 0 staat laat ik alle zaken automatisch gebeuren.
Zet ik hem via mijn smarthome app op 1 dan gebeuren al die zaken niet automatisch en zal de verwarming dus niet automatisch weer op laag gezet worden. Het is maar een idee.
Wat heb je nodig? Allereerst een plan...
Denk na over hoe lang je de lampen wilt laten branden. De lamp in de gang mag bij mij na 5 minuten geen beweging uit, de lamp in de keuken pas na 30 minuten. Per lamp kun je bepalen hoe lang je hem aan wilt laten. En wil je de lamp altijd aanzetten, of alleen als het donker is. En moet hij gelijk aanschakelen als hij uit is, of wil je dat hij pas na een half uur uit weer aanschakelt
Ook dat kan van belang zijn want iedere keer inschakelen is best irritant bij een romantisch diner met kaarslicht :)
En wil je dat hij pas aangaat 30 minuten uit of na 30 minuten na de laatste beweging. Ook dat is een verschil. Straks kom ik daar op terug.
En zo zijn er nog veel meer interessante zaken.
De verlichting.
Het inschakelen van de verlichting doe ik met een gewone scene. Soms wil ik speciale voorwaarden, zoals.
Pas inschakelen als de er minimaal xx-minuten geen beweging is geweest. Hiervoor heb je een variabele nodig.
Zie onder 2 oplossingen voor schakelen na verloop van tijd
Afbeelding 1 : Schakelen als er 600 seconden geen beweging is
Afbeelding 1 : Schakelen als er 600 lamp 600 seconden uit is
Bij de oplossing van afbeelding 1 gaat de lamp pas weer aan als je 600 seconden niet in de keuken geweest bent. Aan het begin van de scene lezen we de variabele MotionKitchenLast uit. Als de huidige tijd os.time() min de MotionKitchenLast > 600 dan gaat de lamp aan.
En als laatste slaan we de huidige tijd op in de variabele (voor de volgende keer dat er beweging is).
Als je nu weer de keuken inloopt en het verschil is minder dan 600 seconden dan word de huidige tijd weer opgeslagen in de variabele MotionKitchenLast. Oftewel, zo lang je binnen 600 seconden de keuken inloopt gaat de lamp niet aan.
in afbeelding 2 is het net even anders. Als je de keuken inloopt en het is binnen de 600 seconden dan gaat de lamp niet aan, maar de tijd word ook niet aangepast (gereset). Dit betekent dat als je na 250 seconden keuken inloopt en vervolgens na 400 seconden weer, dan zal de lamp aangaan omdat de timer niet is gereset.
Uitschakelen van de verlichting
Voor het uitschakelen van de verlichting maak ik gebruik van een functie in de checkhousescene. De eerder genoemde auto vergrendeld variabele zie je terug op regel 72. Als deze op 1 staat dan schakel ik de verlichting niet uit.
Om het eenvoudig te maken heb ik een functie gemaakt. Helaas is het nog niet mogelijk om functies tussen verschillende scenes aan te roepen (globale scene). Voor de experts ; Een tussenoplossing kan zijn door gebruik te maken van een scene met functie die variabelen ophaalt uit het variabelen-paneel. Voordat je de functie aanroept vul je de variabelen in het paneel en bij het uitvoeren van de functie. Misschien ga ik dat nog eens apart beschrijven.
Terug naar de uitschakel functie binnen de checkhouse scene. Hij ziet er zo uit:
De functie ziet er zo uit:
De parameters die doorgegeven worden zijn:
- _App : Het ID van de lamp/apparaat dat mogelijk uitgeschakeld dient te worden.
- _Tijd : De tijd waarna _App uitgeschakeld moet worden (sec)
-_IdSens : Optionele bewegingsmelder
Als er geen Id voor de bewegingsmelder word meegegeven dan word de inschakeltijd (regel 65) van _App opgevraagd.
Wanneer er wel een bewegingsmelder ID wordt meegegeven aan de functie dan word de LastBreached variabele van de sensor uitgelezen. De LastBreached functie is een zeer krachtige variabele waarmee je veel dingen kunt regelen. Ik vind het zelf leuker om te werken met de tijd dat een sensor geen beweging heeft gemeld dan andersom. De beweginsmelder als stiltemelder.
Het aanroepen van de functie gebeurd als volgt:
Vul bij de laatste parameter 0 in als er geen sensor in de buurt is. Voor de sensor kun je zowel een bewegingsmelder als raam-deursensor gebruiken.
Als toetje nog een scene die in 1 keer alle lampen uitzet (de scene is niet door ons zelf geschreven).
De temperatuur
Met de functie "LastBreached" kun je nog veel meer. Bijvoorbeeld je thermostaat omlaag zetten of je alarm inschakelen als er een bepaalde tijd geen beweging is. Voor de schuur zou je de tijd op 1800 seconden (1/2 uur) kunnen zetten en voor de woonkamer op 4 uur (zo lang lig je niet stil op de bank een film te kijken). Langer er korter kan natuurlijk ook.
Op dit moment kun je de NEST thermostaat helaas alleen maar via een IFTT-commando aansturen.
Maar geen probleem, doen we dat gewoon.
Er zijn een aantal voorwaarden voordat we de temperatuur lager zetten:
- Vergrendeld mag niet op 1 staan (ivm koud thuiskomen uit schiphol)
- Het moet langer dan 7200 seconden geleden zijn dat er beweging was
- De variabele PauzeTijdNest moet groter zijn dan 30 en wel om de volgende reden.
Onze checkhousescene loopt iedere minuut. Als we te vaak de IFTTT scenenummer 1 aanroepen dan blokkeert IFTTT de aanvraag. Vandaar de teller die iedere minuut ophoogt met 1. Na 30 keer (= 30 minuten) zetten we de temperatuur omlaag. En de variabele weer op 1. Dan begint hij weer overnieuw.
Bij het inschakelen van het alarm zou je kunnen kiezen om de variabel alvast op 29 te zetten, dan gaat hij gelijk met de volgende keer dat de checkhousescene runt mee.
En het alarm
Hetzelfde geldt voor het alarm. Met dezelfde LastBreached functie. Het leuke is dat we de de Satel sensoren uitlezen uit de satel en vervolgens hetzelfde Satel systeem in te schakelen als er langere tijd geen beweging is.
Wij vinden het een superleuke en veilige toepassing.
Je ziet ook de variabele alarmvertraging. Deze heb ik gebruikt om te voorkomen dat wanneer ik het alarm uitschakel en toevallig net de checkhousescene loopt en het alarm weer inschakelt. Learn-by-doing zal ik maar zeggen.
De variabele word op de huidige tijd gezet als het alarm word uitgeschakeld.
In dit voorbeeld maak ik gebruik van 1 sensor maar via het 'and' commando kun je natuurlijk meerdere sensoren toevoegen aan je vergelijking.
Suggesties/ opmerkingen meer dan welkom.
Veel domotiseer plezier!
Team ROBBshop