Software om het huis slimmer te maken

Slaapkamer domotica (incl. LUA script!)

Door kazz1980 op maandag 15 juli 2019 12:02 - Reacties (2)
Categorieën: Domoticz, Smart Home, Xiaomi, Views: 557

De herstart van mijn blog is een feit! Maar ik begin met een stukje domotica dat ik al een tijdje heb draaien maar nog nooit op m'n blog had beschreven... Het begin van de automatisering van de slaapkamer! Hier liep ik tegen de nodige uitdagingen aan. Allereerst omdat niet alle apparatuur ondersteund werd door Domoticz, daarnaast bleek de slaapkamer te ver van de hub waardoor de signalen niet goed doorkwamen! Een verslag.



Wat moest er geautomatiseerd?
De slaapkamer kende nog geen domotica om een heel simpele reden: er was één lamp aan het plafond en één bedlamp. Daar valt weinig winst te behalen qua automatisering... Maar toen kreeg ik als bedankje voor het spreken op een conferentie ineens een Amazon giftcard van 100 dollar.... Tja. Ik wilde al lang een TV op de slaapkamer. Maar een TV in Amerika bestellen? Héél duur in de verzending en redelijk risico op schade tijdens de verzending. Geen optie dus... Maar een budget beamer? Dat kon wel! En dat leverde een leuk hobbyprojectje op...

De beamer moest budget opgehangen worden en ik had nog een 'antieke' versterker met speakers ergens liggen, dus die zouden onder het bed geplaatst worden. Daarnaast kon mijn Playstation 3 er mooi op aangesloten worden, want die lag ook enkel stof te vangen! Maar gevolg hiervan: om even TV te kijken zou ik dus allerlei apparaten in moeten schakelen die ik tevens allemaal enigszins uit het zicht wilde wegwerken en waarvan de aan/uitknop dus lastig bereikbaar is. Hier zou een intelligente schakeling een oplossing kunnen bieden! Bovendien wilde ik absoluut niet dat deze budget beamer ooit per ongeluk zou blijven draaien terwijl ik van huis ben wegens mogelijk brandgevaar. En tja, als ik dan toch bezig ben kan het bedlampje net zo goed meteen ook geautomatiseerd worden!


Slaapkamer overzicht

DIY
Allereerst een paar plaatjes van de DIY opstelling zoals hij geworden is. Een simpel Ikea kastje met glazen deurtje is omgetoverd tot een beamer-kast. Dat betekent dat ik wat gaten gemaakt heb zodat de snoeren er aan de achterzijde uit kunnen, maar belangrijker: er is een ventilator* ingebouwd. Deze is via USB aangesloten op de beamer en gaat dus automatisch aan als de beamer ingeschakeld wordt! Nette roostertjes* ervoor die wit gespoten zijn en ook de fan zelf is wit gespoten. De versterker is geplaatst in een nieuw bedkastje (ook Ikea) waar ik meteen dan ook maar een Qi draadloos oplaadpunt in gemaakt heb. Op die manier kan ik enerzijds de telefoon makkelijk opladen, maar tevens kan ik nu TV kijken via de mobiel op de beamer zonder mij zorgen hoeven te maken dat de accu leeg getrokken wordt. Op dat moment kan er immers geen laadkabel in de telefoon omdat de HDMI kabel daar al op aangesloten zit!

Alles getest: werkt perfect!

Slaapkamer beamer
Slaapkamer beamer

Domotica
Vervolgens kwam de domotica aan de beurt. Alle audiovisuele apparatuur ging in een verdeelstekker welke aangesloten is op een Xiaomi Smart Socket* (let op: alleen de Zigbee variant werkt met Domoticz!). De bedlamp is aangesloten op een tweede Smart Socket. Schakelen van de apparatuur kan via een (dubbele) Xiaomi wall switch*, schakelen van de lamp via dezelfde switch én via een deur sensor*. Op die manier gaat mijn bedlamp automatisch aan zodra ik door de deur naar binnen loop en kan deze uit zichzelf uit gaan als ik de slaapkamer weer verlaat (nb. dat werkt bij mij omdat ik de deur toch altijd al daadwerkelijk sluit i.v.m. aanwezige katten die ik niet in de slaapkamer wil! Anders had hier wellicht beter iets slims gedaan kunnen worden met een IR sensor).

Uitdaging 1:
Nadat ik alle apparatuur geïnstalleerd had bleek meteen dat de Xiaomi switch en plugs niet goed gevonden werden door de hub. Ze waren te ver weg van de hub met teveel betonnen muren er tussen! Nu is het allemaal Zigbee protocol, en dat maakt gebruik van een zogenaamd mesh-netwerk. Ofwel, de verschillende apparaten geven de signalen aan elkaar door en zo komt het uiteindelijk terecht bij de hub. Maar: omdat het in de lucht houden van zo'n mesh-netwerk stroom kost doen enkel de apparaten die direct op stroom aangesloten dit. De meeste Xiaomi producten werken op batterij en zijn daarom geen onderdeel van de mesh... Ze versturen enkel signalen! Er moest dus tussen de hub en mijn slaapkamer een extra Smart plug komen... En dan hopen dat daarmee de afstand wel te overbruggen was. Een extra smart plug in de hal geplaatst, en: succes!! De slaapkamer is onderdeel geworden van mijn domotica infrastructuur.

Uitdaging 2:
Nu moest er een nieuw stukje code in Domoticz komen. Alleen deze kon niet gebruik maken van de Wall Switch omdat deze in Domoticz nog niet ondersteund werd (nb. in de laatste recente update is deze ondersteuning als het goed is wél toegevoegd! Heb zelf de update nog niet gedaan... Dus heb dat nog niet kunnen uitproberen).
De code zelf was redelijk simpel:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
commandArray = {}
    timenow = os.date("*t")
    minutesnow = timenow.min + timenow.hour * 60


if ((globalvariables['Security'] ~= 'Armed Away')) then
    if (devicechanged['Slaapkamerdeur']=='Open') and (otherdevices['Bedlamp']=='Off') and ((minutesnow >= 1200) or (minutesnow <= 480)) then 
        commandArray['Bedlamp']='On FOR 60' 
        print ("Bedlamp aan voor max 1 uur")
    elseif (devicechanged['Slaapkamerdeur']=='Open') and (otherdevices['Bedlamp']=='On') then 
        commandArray['Bedlamp']='Off AFTER 10' 
        print ("Bedlamp uit over 10 seconden")
    end    
else
    commandArray['Bedlamp']='Off' 
    commandArray['Beamer']='Off'
end

return commandArray



Allereerst werkt het script enkel wanneer ik niet van huis ben (dan staat het alarm op 'Armed Away'). Bovendien: mocht de lamp of beamer aan blijven staan, dan gaat deze vanzelf uit zodra het alarm (automatisch) ingeschakeld wordt wanneer ik het huis verlaat, al is dit helaas niet 100% betrouwbaar: de wijziging van alarm status triggert een script namelijk niet goed. Hier heb ik dus nog wat uitzoekwerk zitten!...
Ben ik wel aanwezig, dan zal tussen 8 uur 'savonds en 8 uur 's ochtends de lamp aan gaan wanneer de deur geopend wordt en de lamp uit staat. In het script wordt gerekend in minuten... Vandaar groter dan 1200 of kleiner dan 480 verstreken minuten op de dag. De lamp gaat op dat moment een uur aan. Mocht ik vergeten deze uit te zetten (bijvoorbeeld doordat ik in slaap val), dan gaat deze dus vanzelf weer uit na een tijdje.

Wordt de deur geopend terwijl de lamp aan staat, dan gaat deze na 10 seconden uit. Niet direct omdat ik dan in het donker sta... In mijn hal werkt de verlichting namelijk op een sensor en deze gaat veelal pas enkele seconden nadat ik de slaapkamer verlaat daadwerkelijk aan.

De Wall Switch kon ik niet opnemen in het script, deze heb ik dus ingesteld in de Mi Home App. Simpelweg schakelen van de smart plugs bij het indrukken van de knoppen. Doordat het bovenstaande script in/uitschakelen bepaalt door de status uit te lezen van de smart plug zitten beide systemen elkaar nooit in de weg! Zodra ik Domoticz geupdate heb zal ik de Wall Switch wellicht alsnog toevoegen in Domoticz.


Slaapkamer nachtkast Slaapkamer nachtkast

Slaapkamer Mi Home app Slaapkamer Mi Home app Slaapkamer Mi Home app Slaapkamer Mi Home app

Wat is er nodig om dit zelf te bouwen?Binnenkort: Mijn ervaringen met Google Home / Google Assistent inclusief een review van de nieuwe Nest Hub. Alvast een tipje van de sluier: De Assistent werkt nu ook samen met Yeelight en Xiaomi! Dat biedt veel nieuwe mogelijkheden... Maar eerst ga ik een paar weekjes vakantie vieren! Dus, even geduld!


-------------------------
* Alle links naar Banggood zijn affiliate linkjes. Het is veelal daadwerkelijk de goedkoopste
(betrouwbare) leverancier, maar het staat een ieder (uiteraard) vrij ook elders te kijken, zoals Aliexpress of Gearbest. Veel producten zijn inmiddels ook (voor hogere prijzen) bij Nederlandse winkels te koop zoals bol.com. Nb. kopen via de affiliate link wordt uiteraard gewaardeerd. Alle eventuele opbrengsten gaan weer rechtstreeks terug in mijn blog/vlog en maken het mogelijk deze steeds van nieuwe content te blijven voorzien

Smart Terrarium

Door kazz1980 op woensdag 19 september 2018 12:40 - Reacties (32)
Categorieën: Domoticz, Smart Home, Xiaomi, Views: 5.507

Aangezien ik niet alleen in huis woon moesten de huisdieren er ook aan geloven... Althans, mijn baardagaam! Een baardagaam is een hagedis die in het wild enkel in Australië voorkomt. Het is een koudbloedig woestijndier. Dat betekent dat het dier de zon nodig heeft om te overleven. In Nederland is er uiteraard veel te weinig zon - dus het dier kan enkel overleven in een terrarium. In het terrarium moeten de omstandigheden van een woestijn nagebootst worden. Dat is best lastig... Maar met een slim stukje software en domotica een koud kunstje!


De woestijn in huis
Nabootsen van een woestijn, wat houdt dat dan in? Dat wil zeggen dat er overdag veel zon is en de temperatuur oploopt en 's nachts is het donker en koelt het flink af. Overdag is de luchtvochtigheid laag, 's nachts mag die best iets oplopen. In de winter zijn ook in de woestijn de dagen veel korter en de nachten langer waardoor het over de gehele dag genomen koeler is! Dat heeft de baardagaam echt nodig om een rustperiode te pakken (geen winterslaap, maar wel een winterrust).

Voorheen gebruikte ik hiervoor een stekkerdoos met timer. Die moest ik de hele tijd bijstellen om te zorgen dat de dagen richting de winter korter werden en in de lente geleidelijk aan weer langer. Veel gedoe en ook nog eens foutgevoelig... Bovendien kwam deze tropische zomer een probleem aan het licht... In mijn huis werd het maar liefst 30 graden en in het terrarium liep de temperatuur met alle lampen dus te hoog op! Regelmatig moest het licht in het terrarium dus even uit... Maar ja - ik kon het niet iedere dag in de gaten houden, immers moet ik ook gewoon werken!

Toen op een dag ook nog eens de timer kapot bleek kwam het eureka moment... Waarom niet automatiseren binnen mijn domotica systeem? Zo gezegd, zo gedaan.

Smart terrarium
In het terrarium kwam dus een sensor die de temperatuur en de luchtvochtigheid meet (en ook de luchtdruk, maar daar doe ik verder niks mee!). Deze kan ik uitlezen in Domoticz.
De lampen (warmtelamp én zonnelamp) van het terrarium sloot ik aan op een Smart plug en kan ik daarmee in en uitschakelen vanuit de software.

Terrarium1 Terrarium2

Vervolgens moest er een relatief eenvoudig scriptje geschreven worden dat er als volgt uitziet:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
commandArray = {}
    timenow = os.date("*t")
    minutesnow = timenow.min + timenow.hour * 60
    
if (tonumber(otherdevices['Terrarium temperatuur']) > 37) and uservariables['overheat']==0 then
    commandArray['Variable:overheat']= '1'
elseif (tonumber(otherdevices['Terrarium temperatuur']) < 34) and uservariables['overheat']==1 then
    commandArray['Variable:overheat']= '0'
end    

if ((minutesnow < timeofday['SunriseInMinutes']) or (minutesnow > timeofday['SunsetInMinutes']))or uservariables['overheat']==1 then
    if otherdevices['Terrarium']=='On' then
        commandArray['Terrarium']='Off'  
        print ("Terrarium uit")
    end    
elseif otherdevices['Terrarium']=='Off' then
    commandArray['Terrarium']='On' 
        print ("Terrarium aan")
end     

return commandArray



Het inschakelen en uitschakelen van het licht gebeurt op basis van de zonsop- en ondergang. Met daarbij één uitzondering als de temperatuur te hoog oploopt. Wanneer de temperatuur hoger dan 37 graden wordt gaat het licht uit totdat de temperatuur weer onder de34 graden zakt. Tamelijk simpel, maar het werkt perfect. En een heel mooie bijkomstigheid is dat ik ten alle tijden kan zien of het licht aan is én wat de temperatuur en luchtvochtigheid is... Ongeacht of ik thuis ben of niet!

terrarium3

Ook kan dit in mooie grafieken getoond worden:

terrarium5 terrarium4

Met dank aan mijn domotica zit mijn baardagaam dus altijd veilig in het zonnetje én heb ik er geen omkijken naar. Beestje blij, ik blij! Lang leve automatisering ;)

Op verzoek:
Gebruikte sensor: Xiaomi Aqara Temperature Humidity Sensor (Xiaomi Gateway v2 of hoger vereist)
Deze stuurt ieder uur de waarden door, maar bij een verandering van de temperatuur met 0,5 graden celcius of meer en/of een wijziging in de luchtvochtigheid van 6% of meer ten opzichte van de laatst verzonden waarde wordt de nieuw gemeten waarde direct doorgestuurd (volgens de specs - heb het niet getest! \).
Batterijduur moet ik nog ervaren... als ik daar nieuws over heb laat ik het weten in mijn blog! Voor wie het interesseert, volgens Domoticz is de gebruikte sensor zelf een LaCrosse TX3 (zegt mij niet zoveel...).

DISCLAIMER
Ik kijk dus wél om naar het beestje, enkel niet langer naar de techniek rondom de verlichting/verwarming van het terrarium (wat onder de streep veiliger is voor de baardagaam). Middels deze blog wil ik mensen niet oproepen om zonder daar goed over na te denken een baardagaam of ander 'terrarium-beest' aan te schaffen. Dit zijn levende dieren met bepaalde behoeften. Voordat je de aanschaf van een baardagaam (of welk ander huisdier ook) overweegt zul je je eerst goed moeten verdiepen in een dergelijk huisdier en welke verantwoordelijkheden en kosten dit met zich meebrengt. Bezint eer ge begint...



==============================================================================
Deze blogpost is door Tweakers gekozen als Tweakblog van de maand september 2018! Super leuk.
Dank aan de mensen die mijn blog daarvoor genomineerd hadden! _/-\o_

==============================================================================

Hoe frustrerend is Domotica?

Door kazz1980 op vrijdag 14 september 2018 18:33 - Reacties (26)
Categorie: Software, Views: 5.725

De laatste tijd heb ik meermaals discussies gezien/gehoord over de frustraties van thuis automatisering. Regelmatig gaat frustratie de overhand nemen zodra eenmaal de nieuwigheid er vanaf is. Want een beetje Tweaker vind het heerlijk om wat te prutsen met (nieuwe) hardware en software, niet waar? Maar zodra je op een avondje bank hangen ineens in het donker zit omdat je domotica in opstand komt of wanneer je verwarming op hol slaat doordat deze je sensoren niet langer snapt... Dan is het ineens zo leuk niet meer! Ook ik krijg wel eens de vraag van mensen of ik het niet een keer zat ben, al dat gepruts aan mijn domotica. Het antwoord is simpel: Nee! En wel om een hele simpele reden. Ik heb mijn domotica vanaf dag 1 beschouwd als een Agile software ontwikkelingstraject. Graag vertel ik wat meer over hoe ik dat aangepakt heb (ter leering ende vermaeck).

Euh... Agile?
Iedere IT-er weet volgens mij meteen wel wat ik bedoel met Agile... maar voor wie de term niet kent even een korte uitleg. Op Wikipedia staat het vrij uitgebreid beschreven. Maar in het kort gaat Agile software ontwikkeling om het iteratief ontwikkelen van software en kenmerkt zich door veel samenwerking en communicatie en minder op contracten en uitgebreide documentatie. Door het iteratieve karakter gaat de werkwijze uit van kort cyclisch steeds aanpassen/verbeteren in plaats van lang werken aan een perfect product en deze middels een big bang introduceren.

Leuk. Maar hoe zit dat dan met domotica?
Allereerst werk ik in mijn eentje aan mijn domotica. Dus het samenwerken en communiceren, dat essentieel is binnen de Agile werkwijze, is niet zo van toepassing. Of toch wel? Uiteraard heb ik geen uitgebreide vergaderingen met mijzelf en voer ik ook geen heet gebakerde discussies... Maar ik heb wel degelijk verschillende petten op tijdens de ontwikkeling: ontwerp, ontwikkel, test. En ik zorg dat deze disciplines elkaar versterken. Dus tijdens het ontwerpen van functionaliteit denk ik al na over hoe het te automatiseren en testen valt en bij automatisering en test blijf ik het oorspronkelijke ontwerp in gedachten houden (hoe verleidelijk het ook is om af te gaan wijken zodra de techniek je een andere kant op wil duwen...).

Maar belangrijker is het gebruik van iteraties. Ik beperk iedere functionele aanpassing van mijn domotica tot een behapbaar stukje werk dat ik binnen 1 of maximaal 2 dagen af denk te krijgen. Ongeacht of dit een verbetering is van de bestaande functionaliteit of de toevoeging van nieuwe sensoren, verlichting, etcetera. Een belangrijk aspect hierbij is het credo 'Goed is goed genoeg!'... Het hoeft niet meteen perfect, als het maar werkt! Het kan op een later moment altijd verbeterd worden om nog beter of sneller te werken. En heb ik dan het idee dat het daadwerkelijk goed genoeg is dan wil ik dat bevestigd zien door een goede test. Dat kan ik redelijk makkelijk doen omdat ik alle software gebouwd heb met testbaarheid in gedachten. Dat betekent dat ik soms tijdens de ontwikkeling bijvoorbeeld niet een fysieke lamp of sensor in mijn code gebruik, maar eerst nog een Dummy switch (in feite een stub of driver, voor de IT-ers onder ons!). Daarmee heb ik alle controle om de onderliggende software te testen (zonder continu knipperende lampen om mij heen!) en pas zodra ik tevreden ben sluit ik de daadwerkelijke hardware aan. Vervolgens wil ik de nieuwe functionaliteit minstens pakweg 1 a 2 weken goed zien werken voordat ik het hoofdstuk sluit en kan gaan kijken naar andere nieuwe functionaliteit. Veelal is deze nieuwe functionaliteit gebaseerd op de ervaringen van die afgelopen 1 a 2 weken en bestaat uit een verdere verbetering van hetgeen ik al gebouwd heb. Maar zo nu en dan voeg ik ook geheel nieuwe functionaliteit toe (laatste project was mijn terrarium, daarover later meer).

Dus, geen frustratie?
Nope! Mijn domotica werkt eigenlijk altijd (m.u.v. grote verstoringen in het begin doordat ik de hardware niet op orde bleek te hebben). In het begin werkte het misschien nog niet helemaal zoals ik wilde, maar het werkte wel. En inmiddels ben ik op het punt beland waar het mij om te doen was. Geheel autonome domotica. Mijn huis bedenkt zelf wanneer het licht aan of uit moet op bepaalde plaatsen en reageert op mijn handelingen (zo heeft mijn keuken sfeerlicht, maar verandert dit licht bij het aanrecht in werklicht zodra ik in de buurt van het aanrecht kom). Daarmee is mijn domotica niet een vervanging van de lichtknoppen, maar voegt het echt iets aan gebruiksgemak toe én tegen minder stroomkosten. En als ik nu terugkijk naar mijn oorspronkelijke ontwerp, dan ben ik daar helemaal niet ver van afgeweken... Ik heb het destijds modulair ontworpen met de mogelijkheid om eindeloos uit te breiden. En dat blijkt te werken... Het begon met 1 sensor en 1 lamp. Inmiddels heb ik op basis van diezelfde initiële software 9 lampen, 8 sensoren, 1 multimedia hub en een Google Home smart speaker die samenwerken om mijn leven gemakkelijker te maken!

'Hello home!': Praten met je Smart huis

Door kazz1980 op vrijdag 3 augustus 2018 09:12 - Reacties (29)
Categorieën: Controlicz, Domoticz, Google, IFTTT, Views: 7.620

Wanneer je denkt aan een Smart home denk je aan een huis waar mee te communiceren valt. Bij voorkeur niet via ouderwetse knopjes, maar gewoon via spraak! Nu is dit tamelijk complexe technologie die je niet zomaar even zelf in elkaar kunt klussen... Gelukkig zijn er mogelijkheden om deze technologie (betaalbaar) in huis te halen in de vorm van smart speakers. Alleen, hoe koppel je die aan je thuisautomatisering op een manier dat de intelligentie van het systeem behouden blijft? Een lichtknop vervangen door een spraakopdracht is niet zo ingewikkeld, maar een smart speaker volwaardig onderdeel maken van intelligente domotica? Dat is lastiger... Gelukkig kent Domoticz diverse mogelijkheden om thuis assistenten te koppelen. Ik zal mij hier focussen op de Google Home omdat ik die zelf gebruik - maar ook voor Amazon Alexa (Dot) en Apple Siri (HomePod) zijn er vergelijkbare mogelijkheden met veelal dezelfde software, al heb ik zelf voor Siri nog niets weten te vinden helaas!


IFTTT

Mijn eerste experiment was met IFTTT ("If This Then That": http://www.ifttt.com). Een briljant simpele web interface die precies doet wat de naam zegt... Als er Dit gebeurt, dan doet het systeem Dat. Dus bijvoorbeeld als ik mijn Google Assistant zeg 'Doe het licht aan' dan kan ik inregelen dat via een directe URL een lamp in Domoticz ingeschakeld wordt. Zo'n URL ziet er bijvoorbeeld als volgt uit:
http://<gebruikersnaam>:<wachtwoord>@<IP-adres>:<poort>/json.htm?type=command&param=switchlight&idx=30&switchcmd=Set%20Level&level=20
Briljant in zijn eenvoud! Maar daardoor dus ook tamelijk beperkt... Zo moet je bijvoorbeeld exact de opgegeven spraakopdracht uitspreken. Er zit geen enkele intelligentie in. De Google Home zal vervolgens altijd exact het antwoord geven dat je zelf hebt ingesteld. Dat is even leuk, maar het maakt van een volwaardige spraak assistent ineens een simpel antwoordapparaat welke tevens beperkt Domoticz aan kan sturen. Beperkt aangezien je maar 1 switch tegelijk kunt aansturen met 1 bepaalde instelling. Dus ik zocht verder...

Controlicz

Na het nodige zoekwerk kwam ik uit bij Controlicz (https://www.controlicz.com/). Van oorsprong een hobby project van ene Nick Madge. Een veelbelovende interface die het mogelijk maakt om ieder apparaat in Domoticz te koppelen aan Google Home of Alexa. Het werkt simpel.

Je maakt binnen je Domoticz setup een gebruiker aan, bijvoorbeeld met de naam 'Controlicz'. Vervolgens geef je deze gebruiker de controle ver de apparaten die je wilt bedienen met je Home Assistant. Vervolgens maak je een Controlicz account aan waarin je de gegevens opgeeft van je Domoticz installatie inclusief de gebruikersnaam en wachtwoord van de zojuist aangemaakte gebruiker. En voila! Controlicz is ingesteld voor gebruik....

Controlicz instellen 1 Controlicz instellen 2 Controlicz instellen 3

Controlicz instellen 4 Controlicz instellen 5 Controlicz instellen 6

Nu moet je enkel Google Home/Assistant of Alexa nog vertellen dat deze gebruik moet maken van Controlicz. Hierbij de stappen om dit binnen de Google Assistant in te regelen:
Je voegt een nieuw apparaat toe (bij apparaatinstellingen te vinden onder 'Home-apparaten bedienen'). Druk op het plusje en zoek naar Controlicz. Vervolgens wordt je gevraagd in te loggen in je Controlicz account en Google toegang te geven tot dit account. Daarna zal de Assistant alle apparaten vinden die je binnen Domoticz vrijgegeven hebt voor de Controlicz gebruiker. Je kunt eventueel nog opgeven in welke kamers deze zich bevinden. En dan is alles gereed om te kunnen praten met je huis!!

Google Assistant instellen 1 Google Assistant instellen 2 Google Assistant instellen 3

Je kunt lichten aan en uit zetten, maar ook kleuren instellen, de media bedienen... Gewoon alles dat vanuit Domoticz mogelijk is...

Ikzelf gebruik Controlicz om de Toggle aan en uit te zetten die zorgt dat het licht aan en uit gaat op momenten dat mijn systeem dit niet zelf doet. Bijvoorbeeld als ik overdag het licht aan wil, of juist na zonsondergang eens in het donker wil zitten... Ik heb tevens een Dummy Switch gemaakt die al mijn media uit schakelt via een script. In Domoticz heb ik deze als lamp aangemerkt met als gevolg dat wanneer ik Google vraag alle lichten uit te schakelen deze automatisch ook al mijn media apparatuur uitschakelt. Iets dat ik eigenlijk altijd wil op het moment dat ik alle lichten uit doe. En omdat je nu de volwaardige intelligentie van de Assistant tot je beschikking hebt kun je gewoon normale taal gebruiken in plaats van bepaalde voor gedefinieerde zinnen en kun je ook meerdere apparaten bedienen. Bijvoorbeeld opdrachten als 'Doe alle lichten in de keuken aan' werkt perfect! Of 'Zet de Playstation uit', geen probleem!

Een machtig mooi systeem dat uitermate eenvoudig in te regelen is.
Zijn er dan geen minpunten? Jawel:

Allereerst: het is niet gratis (meer)! Het kost je 2 pond per maand (of 20 pond voor het hele jaar)... Is het wat mij betreft zeker waard! En uiteraard kost het in de lucht houden van deze dienst gewoon geld... Dus ik begrijp de keuze prima dat de ontwikkelaar recent besloten heeft toch een bijdrage te vragen voor Controlicz.
Een tweede minpuntje is dat Controlicz héél af en toe niet reageert waarop de Assistant aangeeft dat Controlicz onbereikbaar is, in plaats van dat je apparaten bediend worden. Eén enkele keer bleek dit bij mij zelfs zo hardnekkig dat ik in de settings van Google Assistant heel Controlicz moest verwijderen en opnieuw instellen. Een klusje van slechts enkele minuten, maar toch vervelend wanneer je eigenlijk gewoon even het licht uit had willen doen om naar bed te gaan... Sindsdien is me dit niet meer gebeurt, dus ik hou het op een eenmalige hick-up in het systeem...

Conclusie
Toen ik begon met een blog over spraak besturing binnen mijn domotica op basi van Domoticz had ik het idee vele systemen te proberen en ervaringen te beschrijven. Maar ik ben blijven hangen bij Controlicz, simpelweg omdat het in mijn ogen precies doet wat het moet doen... En het prijskaartje? Dat neem ik dan maar voor lief... Wil je er geen geld aan uitgeven dan is IFTTT een leuk alternatief om op een simpele manier en met de nodige beperkingen Domoticz aan te sturen middels spraakopdrachten via Google Home of Alexa. En wil je je huis nu aansturen met Siri? Tja... ik heb nog niks gevonden dat dit mogelijk maakt! Maar aangezien ik zelf Siri niet gebruik heb ik ook niet heel hard gezocht moet ik eerlijk bekennen... Dus als iemand hier iets voor weet: laat het weten in de comments!

Aanwezigheidssensoren in huis, hoe voorkom je knipperende lampen

Door kazz1980 op vrijdag 6 juli 2018 22:00 - Reacties (29)
Categorieën: Domoticz, Xiaomi, Views: 11.273

Wanneer je op internet zoekt naar de aansturing van lampen middels bewegingssensoren/aanwezigheidsensoren is steevast de grootste uitdaging waar men tegenaan loopt dat de lampen iedere 2 minuten uit gaan. Immers, de meeste bewegingssensoren (en zo ook de door mij gebruikte Xiaomi sensoren) blijven 2 minuten ingeschakeld na het zien van beweging en gaan dan weer uit - indien in de tussentijd niet een nieuwe beweging gesignaleerd is....

Dat is niet handig, want zeker tijdens een avondje bank hangen beweeg je niet iedere twee minuten voldoende om door de sensor opgemerkt te worden! Op internet worden diverse oplossingen voor dit veelvoorkomende probleem aangedragen, waaronder:
  • Gebruik een Dummy switch die voor een bepaalde tijd aan gaat wanneer de bewegingssesnsor aangaat
  • Gebruik de Off Delay functie binnen de instellingen van de sensor zelf
  • Zorg dat de verlichting zelf voor een bepaalde periode ingeschakeld wordt na activering door de sensor
  • Gebruik de functionaliteit binnen Domoticz om uit te lezen wanneer de sensor voor het laatst van status gewijzigd is
Mijn bevindingen:

Dummy Switch
Werkt redelijk, maar is in de praktijk vooral een uitstellen van het probleem. Immers, na 10 minuten gaat de Dummy switch uit. Ongeacht of deze in de tussentijd opnieuw geactiveerd is door de bewegingssensor. Of toch niet?? Ben er nooit helemaal goed uitgekomen wat er gebeurde (ondanks veel debuggen en de logging in de gaten houden). Maar het bleef lastig om de verlichting ingeschakeld te houden wanneer ik gewoon in de ruimte aanwezig was! Met enige regelmaat ging het licht toch uit en moest ik weer actief zwaaien naar de sensor... Bovendien zorgt deze oplossing voor een overvloed aan Dummy switches. Verre van ideaal omdat het alles zéér onoverzichtelijk (en dus foutgevoelig) maakt...
Dummy Switch aanmaken
Off delay
Ieder device dat gebruikt wordt om te schakelen heeft in Domoticz een 'Off delay'. Heel erg handig! Hiermee kun je aangeven na hoeveel tijd het device weer terug naar 'Off' gezet moet worden vanaf het moment dat deze ingeschakeld wordt. Ideaal bij het gebruik van knoppen (Xiaomi Wireless Switch of de Aqara Wall Switches), maar ondanks dat deze oplossing met enige regelmaat aangedragen wordt op fora werkt dit in het geheel niet bij bewegingssensoren. Immers, de sensor gaat zelf na 2 minuten uit - en de Off Delay verandert daar niks aan... Enkel zal deze na 10 minuten de sensor nogmaals uit pogen te zetten... Kortom: het probleem wordt hooguit nóg erger!
Off delay
Verlichting aan voor bepaalde periode
Het is mogelijk een lamp aan te zetten voor een periode: commandArray['Group:Nachtlicht']='On FOR 600'. Lijkt een mooie oplossing... Alleen werkt dit niet goed met Groepen of Scenes in Domoticz. In de praktijk betekent het veelal dat de verlichting nooit uit gaat - totdat deze actief uitgeschakeld wordt...

Uitlezen laatste status wijziging
Het zal geen verrassing zijn. Dit bleek de oplossing te zijn:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function timedifference(timestamp)
  y, m, d, H, M, S = timestamp:match("(%d+)-(%d+)-(%d+) (%d+):(%d+):(%d+)")
  difference = os.difftime(os.time(), os.time{year=y, month=m, day=d, hour=H, min=M, sec=S})
  return difference
end

commandArray = {}

s = otherdevices_lastupdate['Xiaomi Motion Sensor']
if(otherdevices['Xiaomi Motion Sensor']=='Off' and timedifference(s) > 600 and otherdevices['Woonkamer lamp 1'] ~= 'Off') then
            print ('Tijd is voorbij: licht uit')
        commandArray['Group:Movie']='Off'
        commandArray['Group:Warmlicht']='Off'
        commandArray['Group:Nachtlicht']='Off'
end


Middels een functie wordt het tijdsverschil berekend tussen de huidige tijd en het moment dat de sensor het laatst van status gewisseld is. Indien deze waarde boven de 600 seconde ligt én de sensor is uit maar de verlichting nog aan, dan wordt het licht uitgeschakeld door alle gebruikte groepen die in gebruik zijn voor de betreffende ruimte uit te schakelen. Effectief betekent dit dat verlichting na detectie van een beweging 10 minuten aan gaat. Indien er binnen die 10 minuten een nieuwe beweging gedetecteerd wordt gaan deze 10 minuten opnieuw in... Dus zo lang ik niet héél lang volledig stil zit én ook de katten geen beweging maken blijft het licht netjes aan zo lang ik in de ruimte ben, maar schakelt deze uit wanneer ik enige tijd niet aanwezig ben! Althans, zo lang de katten niet de hele tijd langs de sensor lopen...

Sensor en kat

P.s. omdat er discussie ontstond over het wel/niet geschikt zijn van de gebruikte sensoren. De Xiaomi sensoren werken met een PIR sensor. En zijn daarmee dus zeer geschikt als aanwezigheidsmelder. Enkel zijn er geen mogelijkheden de gevoeligheid in te stellen noch om de duur dat de sensor ingeschakeld blijft aan te passen (niet gek ook voor circa 10 euro). Vandaar bovenstaand script, deze draai ik nu reeds enkele maanden en het werkt nagenoeg vlekkeloos (Sterker nog: het werkt stukken beter dan de zeer prijzige aanwezigheidssensoren die de woningbouw in mijn hal geïnstalleerd heeft voor de verlichting!).