Bekend merk Smart apparatuur voor de Chinese markt.

Aanwezigheidsdetectie special

Door kazz1980 op donderdag 7 november 2019 13:06 - Reacties (10)
Categorieën: Aqara, Domoticz, Hardware, Smart Home, Xiaomi, Views: 3.000

Een mooi woord voor Scrabble (of Wordfeud): Aanwezigheidsdetectie. Binnen serieuze domotica is het iets waar je ten minste over na moet denken. Maar hoe geavanceerd je de detectie maakt? Daar is in te variëren... En wat dat betreft zullen ook de kosten van een dergelijk systeem enorm variëren! Hierbij een overzicht met mogelijkheden, inclusief de set-up welke ik zelf heb gekozen.


Aanwezigheidsdetectie: Que?
Wat is dat nu precies? Aanwezigheidsdetectie (of presence detection in het Engels). In basis is het eenvoudig: een systeem dat kan 'zien' of er iemand aanwezig is. Maar er zijn natuurlijk vele varianten op. In deze special zal ik een onderscheid maken tussen twee vormen van aanwezigheidsdetectie:
  • Aanwezigheid in een bepaalde ruimte
  • Aanwezigheid in een gebouw/woning
Waarom dit onderscheid? Omdat de technieken om dit voor elkaar te krijgen nogal verschillen. Aanwezigheid in een ruimte is relatief eenvoudig. Zo lang je binnen het bereik bent van een bepaalde detector is deze in staat om jou te zien, en voila: het systeem weet dat er iemand aanwezig is! Dergelijke detectoren werken vaak met een bepaald 'gezichtsveld' en reageren veelal op beweging. Aanwezigheid in een gebouw is echter niet afhankelijk van een detector die in staat is jou (of jouw bewegingen) te zien en dat maakt het een stuk complexer. En echt leuk wordt het natuurlijk wanneer je de beide vormen van detectie gaat combineren. Daarover zal ik in het laatste stuk van deze special meer vertellen, inclusief de set-up die ik daar zelf voor heb gekozen (met als belangrijke drijfveer: betaalbaarheid! Dus voor de beginnende domotica-bouwer met beperkt budget wellicht interessant ter inspiratie!). Onderaan dit artikel plaats ik per techniek die in deze special beschreven is een lijstje met veelgebruikte sensoren/detectoren inclusief het prijskaartje.


https://tweakers.net/ext/f/kRVA4QKBJl2z4PeySw79qLIc/full.png

Aanwezigheid in een ruimte
We beginnen met de aanwezigheidsdetectie in een ruimte. Hiervoor is het belangrijk dat het systeem binnen de wanden van de ruimte kan 'zien' of er iemand aanwezig is. Het woordje 'zien' staat hierbij steeds tussen aanhalingsteken omdat niet alle technieken gebaseerd zijn op visuele input. Om iets dergelijks voor elkaar te krijgen zijn er vele technieken beschikbaar, maar de meest voorkomende werken op basis van:
  • PIR detectie (infrarood)
  • Beeldherkenning
  • Audio herkenning
  • Radar
  • Beacons (BLE)
  • Vibratie sensors
  • knop/RFID/fingerprint/iris scan/spraakopdracht/etcetera
Laten we beginnen met de meest eenvoudige optie: een knop! Niet voor niks wordt deze methode al gebruikt sinds de introductie van elektriciteit. Het is eenvoudig, betrouwbaar en betaalbaar. Druk op een knop aan de muur, het 'systeem' weet dat er iemand is die het licht aan wil. Dus het licht gaat aan! Meestal wordt deze methode niet gebruikt in combinatie met een intelligent systeem voor de aansturing, maar is de knop onderdeel van het elektrische netwerk en in staat om de stroom te onderbreken. We hebben het dan over een simpel lichtknopje. Uiteraard kan dit ook via afstandsbedieningen (bv. klik-aan-klik-uit systemen) of een app op de telefoon waar een software-matige knop ingedrukt wordt. Wil je een dergelijk systeem wat geavanceerder maken, bijvoorbeeld door beveiliging toe te voegen dan kun je nog denken aan systemen die apparaten in/uitschakelen op basis van het uitlezen van de correcte RFID-chip, vingerafdruk of iris-scan. Maar in basis is het hetzelfde. De aanwezigheid wordt bepaald op basis van een actie van een gebruiker. Simpel en effectief, maar uiteraard niet echt een intelligent systeem! De meeste mensen die beginnen met domotica willen juist van dergelijke verplichte handelingen af!
Fysieke of softwarematige knop
Voordelen:
  • Betrouwbaar
  • Voordelig
Nadelen
  • Vergt manuele input van een gebruiker


Dat betekent dat we dus een systeem nodig hebben die op de één of andere manier zelfstandig kan bepalen of er iemand aanwezig is, zonder feitelijke input van deze persoon. De meest voor de hand liggende techniek (en ook meest gebruikte techniek) is dan PIR, ofwel Passieve InfraRood detectie. Iedereen kent dergelijke sensoren ongetwijfeld. Ze zitten veel in kantoorpanden en zelfs de cheap-ass buitenlampen die automatisch aanspringen zodra er iemand langsloopt gebruiken deze techniek. Maar lang niet iedereen weet hoe PIR nu werkt, en als je PIR wilt inzetten voor je domotica is het wel handig om te weten hoe dit systeem werkt. Daarom, een korte uitleg in Jip-en-Janneke-taal.
Een PIR detector is niet meer dan een sensor die wisselingen in infrarood licht detecteert. Op ieder moment is er een bepaalde hoeveelheid infrarood licht aanwezig (tenzij het pikkedonker is). De sensor pikt dit op maar doet daar weinig mee. Pas wanneer er een groot verschil ontstaat in de hoeveelheid infrarood licht komt de sensor in actie. Hoe groot dit verschil moet zijn is afhankelijk van de gevoeligheid van betreffende sensor. Neemt de hoeveelheid infraroodlicht plots toe zal de sensor een positief signaal doorsturen, neemt de hoeveelheid infraroodlicht plots af zal er een negatief signaal doorgestuurd worden. Een chip in de detector zal op basis van deze wisselingen bepalen wanneer er sprake is van de aanwezigheid van een persoon. Immers: mensen zijn warmbloedig en warmte straalt naar buiten in de vorm van infrarood licht! (dit is ook de reden waarom je een PIR sensor voor de gek kunt houden door jezelf te verbergen achter een materiaal dat warmte absorbeert... Al is dit afhankelijk van de gevoeligheid van de sensor aangezien je daarmee uiteraard ook de hoeveelheid infrarood licht vanuit de omgeving beïnvloedt!). Voor domotica zijn er vele PIR detectoren beschikbaar. Deze verschillen in kwaliteit, enerzijds door de gevoeligheid van de sensor anderzijds door de achterliggende ingebouwde intelligentie die op basis van input van de sensor bepaalt of er sprake is van de aanwezigheid van een persoon. Bij duurdere exemplaren is het soms ook mogelijk de gevoeligheid aan te passen zodat je bijvoorbeeld kunt zorgen dat een mens wél gedetecteerd wordt, maar een (kleiner) huisdier niet... PIR detectoren zijn over het algemeen redelijk betrouwbaar maar hebben wel een aantal belangrijke beperkingen. Zo kunnen ze te gevoelig of juist niet gevoelig genoeg blijken (en is dit niet bij ieder apparaat in te stellen!) waardoor ze respectievelijk of bijvoorbeeld erg beïnvloedbaar zijn door (huis)dieren die in de ruimte bewegen of juist niet altijd reageren op de aanwezigheid van een persoon. Tevens is het goed te weten dat de sensoren enkel in rechte lijnen kunnen 'kijken'. Door het gebruik van slimme lenzen (zogenaamde Fresnel lenzen, voor de geïnteresseerde) is het zichtveld wel enorm te verbreden, maar een hoek om 'kijken' kan de PIR detector niet... Dus hang jij languit op de bank en staat de sensor achter die bank, dan zal de sensor je niet waarnemen!
PIR detectie
Voordelen:
  • Betrouwbaar
  • Voordelig
  • Geen extra hulpmiddelen nodig om gedetecteerd te worden
Nadelen
  • Beperkt bereik
  • Rechtlijnig bereik (kan niet de bocht om 'kijken')
  • Afhankelijk van de gevoeligheid reageert PIR detectie ook op huisdieren


Een andere optie om de aanwezigheid in een ruimte te detecteren is door gebruik te maken van beeldherkenning. Een camera neemt de ruimte waar en software registreert of er beweging wordt waargenomen. De effectiviteit van een dergelijk systeem wordt in grote mate bepaald door de achterliggende software en in mindere mate door de kwaliteit van de hardware. Al kan een algoritme in de software uiteraard beter zijn werk doen wanneer het aangeleverde beeldmateriaal van hogere kwaliteit is. Er zijn verschillende vormen van software mogelijk. De meest eenvoudige herkent iedere beweging binnen het blikveld van de camera en zal dus ook reageren op huisdieren of gordijnen die bewegen in de wind. Meer geavanceerdere software is in staat om de menselijke vorm te herkennen en zal dus enkel reageren op de aanwezigheid van een mens in de ruimte. Nog geavanceerdere software zal in staat zijn om nog gedetailleerdere vormen te ontdekken en kan dus bijvoorbeeld gezichten herkennen en op basis daarvan niet enkel bepalen dat er een mens in de ruimte is, maar zelfs welke persoon dit betreft! Dit is mogelijk met behulp van kunstmatige intelligentie welke getraind is om bepaalde gezichten te herkennen, zoals de gezichten van de bewoners van het huis waar het systeem geïnstalleerd is. Met name deze laatste optie biedt zeer interessante mogelijkheden voor domotica. Denk bijvoorbeeld aan verlichting die zich aanpast aan de persoonlijke voorkeuren van de persoon die binnen loopt en mogelijk dienst favoriete televisiekanaal vast inschakelt... Vooralsnog worden deze technieken binnen de domotica echter nog relatief weinig gebruikt. Met name omdat het veel maatwerk vergt en daarom enkel mogelijk is voor mensen met veel kennis (en tijd) of veel geld (om specialisten hiervoor in te huren). Maar de ontwikkelingen op dit vlak gaan heel erg snel. Dus het is een kwestie van tijd voordat dit relatief eenvoudig in ieder domotica systeem ingebouwd kan worden... Zelfs voor de niet-die-hard domotica-fanaat!
Beeldherkenning
Voordelen:
  • Gedetailleerde herkenning mogelijk, tot op individuele personen aan toe
  • Geen extra hulpmiddelen nodig om gedetecteerd te worden
Nadelen
  • Beperkt bereik
  • Rechtlijnig bereik (kan niet de bocht om 'kijken')
  • Geavanceerde systemen zijn nog erg complex en lastig op domotica aan te sluiten
  • Kan erg prijzig worden


Audio herkenning kan op twee manieren gebruikt worden. Het is mogelijk om simpelweg een microfoon te plaatsen welke geluiden opvangt en op basis van de ingestelde gevoeligheid hieruit afleidt of er iemand aanwezig is. Of er kan gebruik gemaakt worden van echolocatie. Beide technieken worden weinig toegepast omdat ze voor domotica doeleinden minder geschikt zijn. Enkel audio signalen opvangen is tamelijk onbetrouwbaar, immers wanneer bijvoorbeeld de televisie aanstaat zal het systeem blijven denken dat er mensen aanwezig zijn. Zelfs wanneer deze al lang vertrokken zijn. Echo locatie zou in combinatie met de juiste achterliggende software die vormen en/of bewegingen detecteert prima bruikbaar kunnen zijn, maar het is onnodig complex. Er wordt hetzelfde bereikt als met bijvoorbeeld Radar, PIR of beeldherkenning, maar tegen hogere kosten en al snel lagere betrouwbaarheid (tenzij er gebruik gemaakt wordt van erg geavanceerde en dus kostbare systemen).
Audio herkenning
Voordelen:
  • Eenvoudig systeem dat enkel reageert op waargenomen geluid is goedkoop
Nadelen
  • Onbetrouwbaar
  • Beperkt bereik
  • Geavanceerde echolocatie is prijzig
  • Ongeschikt voor domotica toepassingen


Radar is een opkomende techniek binnen de domotica. Het heeft alle voordelen van PIR, maar het kan ook nog eens tot een bepaalde mate door objecten heen kijken! De technologie van Radar werkt met radiogolven die worden verzonden. Wanneer een radiogolf tegen een object aankomt zal een deel ervan terug gekaatst worden. De radar detector zal het eigen teruggekaatste signaal herkennen en kan op basis daarvan berekenen waar een bepaald object zich bevindt. Het is daarmee vergelijkbaar met echolocatie, maar dan een stuk betrouwbaarder omdat gebruik gemaakt wordt van zeer specifieke en zeer kleine (radio)golven. Radar wordt momenteel binnen de domotica nog weinig gebruikt, vooral doordat het een relatief prijzige techniek is. Waarschijnlijk zal het in de toekomst vaker gebruikt gaan worden en ook nu al zijn er systemen verkrijgbaar die werken met vaak een combinatie van radar en PIR.
Radar
Voordelen:
  • Betrouwbaar
  • Kan door objecten heen 'kijken'
Nadelen
  • Prijzig
  • Toepassingen nog beperkt


Beacons of iBeacons zijn kleine apparaatjes die een bepaald bluetooth signaal uitzenden. Deze kan door een app op een mobiel apparaat opgevangen worden en dan gebruikt worden voor plaatsbepaling. Het is hiermee mogelijk om behoorlijk nauwkeurig de plaats te bepalen en via de software in de app kan van alles aangestuurd worden, zoals domotica! Deze techniek was een jaar of 5 geleden erg in opkomst. Met name winkelketens wilde het grootschalig in gaan zetten om bijvoorbeeld plaatsgebonden aanbiedingen te doen terwijl mensen door de winkel lopen. In een app krijg je dan een aanbieding van een product dat in het rek voor je neus staat. Maar, inmiddels vijf jaar later zien we dergelijke technieken in winkels nog weinig terug.... Toch? Zonder dat veel mensen het weten maken diverse winkels wel degelijk gebruik van deze technologie of experimenteren er op zijn minst mee. Ze gebruiken het echter niet om reclame boodschappen te pushen (daar zitten consumenten niet op te wachten!), maar om informatie te vergaren over hoe consumenten zich door de winkels heen bewegen. Dezelfde technologie is ook prima bruikbaar binnen de domotica. Al heeft het vooralsnog nog geen vlucht genomen... Binnen de domotica wordt de techniek vooralsnog meer gebruikt voor de detectie van aanwezigheid binnen de woning. Wellicht is dat ook een meer praktische toepassing aangezien het anders een vereiste is dat je de gehele tijd met de telefoon in huis rond loopt.... Zodra er echter iemand een goede app hiervoor zou bedenken die werkt op een smartwatch zou het echter ineens weer heel interessant kunnen worden! Vooralsnog ben ik daarover nog niks tegen gekomen... Maar wat mij betreft is dit een technologie om de komende jaren goed in de gaten te houden!
Beacons
Voordelen:
  • Betrouwbaar
  • Kan door objecten heen 'kijken'
Nadelen
  • Werken vooralsnog enkel zo lang een mobiel device met een bepaalde app continu meegedragen wordt
  • Toepassingen nog erg beperkt


Tot slot de vibratie sensor. Een gevoelige vibratie sensor zou bepaalde trillingen op kunnen vangen en op basis daarvan kunnen bepalen of er iemand aanwezig is in de ruimte. In feite is dit een variant op de audio herkenning aangezien de meeste vibraties het gevolg zullen zijn van geluidstrillingen. Daarmee is deze technologie voor de detectie van personen, net als audio detectie niet erg geschikt.
Vibratie sensor
Voordelen:
  • Geen?
Nadelen
  • Onbetrouwbaar
  • Beperkt bereik
  • Ongeschikt voor domotica toepassingen


De verwachting is dat aanwezigheidsdetectie binnen de domotica steeds belangrijker gaat worden. Domotica waarmee lichtknoppen vervangen worden door knoppen in een app of spraakopdrachten zijn erg leuk door het hoge gadgetgehalte. Maar in feite niet heel erg praktisch! Zo lang er nog een handeling verricht moet worden is het voordeel ten opzichte van het ouderwetse lichtknopje immers niet erg groot! Dit in combinatie met de diverse technologieën die snel ontwikkelen en ook steeds betaalbaarder worden maakt dat de toepassingen op het gebied van locatiebepaling steeds breder zullen worden! Met name wanneer verschillende technologieën intelligent samen gaan werken wordt het erg interessant! Nu al zijn er sensoren beschikbaar die PIR en radar combineren. In de toekomst verwacht ik dat beacons ook nog wel eens erg interessant kunnen gaan worden (ondanks dat de toepassingen daarvan nog erg beperkt zijn, terwijl men een jaar of vijf geleden erg hoge verwachtingen had!). We zullen zien wat de toekomst brengt....

https://tweakers.net/ext/f/kRVA4QKBJl2z4PeySw79qLIc/full.png

Aanwezigheid in een gebouw/woning
Hieronder versta ik het detecteren van iemand in (de buurt van) een gebouw of woning. Dat vergt wezenlijk andere technieken dan aanwezigheidsdetectie in een ruimte. Het nadeel is dat een gebouw/woning uit meer ruimtes bestaat. Dat maakt technieken met een bepaald zichtveld minder praktisch. Het is daarentegen gemakkelijker omdat het bij deze detectie niet relevant is te 'zien' waar iemand zich precies bevindt. En daardoor zijn er een aantal relatief eenvoudige technieken beschikbaar om dit voor elkaar te krijgen. Deze blijken in de praktijk echter niet allen even betrouwbaar te zijn! Ik benoem hier:
  • Geofencing
  • Pingen
  • Smart lock/NFC tag / beacon
  • Slim gebruik van de technieken mbt aanwezigheid in een ruimte
  • All of the above
Geofencing ligt vaak het meest voor de hand als het gaat om de aanwezigheid in een gebouw. Geofencing wil zeggen dat je in een programma aangeeft binnen welke geografische grenzen het systeem moet detecteren dat je in of in de buurt bent van een gebouw. Groot nadeel hiervan is dat je als gebruiker altijd een device bij je moet dragen met deze software en een GPS verbinding... Dat is lastig. Anderzijds: tegenwoordig dragen we vrijwel altijd een smartphone bij ons. En dus is dit eenvoudig realiseerbaar. Bijvoorbeeld Domoticz heeft deze mogelijkheid. Als je de betaalde versie van de Domoticz app installeert op de telefoon kun je hier Geofencing instellen. Wanneer je binnen de geofence komt zal een bepaalde switch in de software activeren welke je kunt gebruiken om je smarthome te 'vertellen' dat je in de buurt bent. In de toekomst zullen er hiervoor ongetwijfeld ook apps komen voor op je smart watch of andere wearables met geofencing functionaliteit (of misschien bestaan die al? Heb het in ieder geval niet kunnen vinden nog)!
Geofencing
Voordelen:
  • Redelijk betrouwbaar
  • Eenvoudig in te richten (met bepaalde apps)
  • Flexibel bereik instelbaar
Nadelen
  • Onnauwkeurig
  • Werkt enkel bij meedragen smart device met GPS
  • Afhankelijk van software op mobiel apparaat


Vergelijkbaar met geofencing is de techniek waarbij je devices 'pingt' die je als gebruiker bij je draagt. Hier is wederom de smartphone het meest voor de hand liggend. Pingen is een techniek waarbij een computer controleert of een bepaald ander apparaat via een IP-adres bereikbaar is. Als je instelt dat je smartphone binnenshuis altijd met hetzelfde (statische) IP-adres verbinding maakt via WiFi is dit een manier om te controleren of iemand in de buurt is. Net als bij Geofencing is het hier wel een voorwaarde dat je de smartphone dan meeneemt wanneer je het huis verlaat. Voordeel is wel dat hiervoor ook andere devices geschikt zijn, denk aan bijvoorbeeld een smart horloge met Wifi-connectie! In de praktijk heb ik echter wel gemerkt dat een smart watch niet altijd verbinding maakt met Wifi omdat deze dat ook niet vaak nodig heeft zo lang er verbinding is met de telefoon... Tevens is een groot probleem met pingen de grote vertraging. Wanneer je eenmaal binnen het bereik bent van het Wifi netwerk kan het soms nog 1 a 2 minuten duren voor er verbinding gemaakt is en omdat pingen gedaan wordt met een bepaalde interval kan het nog eens 30 seconden of een minuut langer duren voordat het systeem daadwerkelijk doorheeft dat het apparaat daadwerkelijk verbonden is. Wanneer het gaat om bijvoorbeeld automatisch een alarm uitschakelen wanneer je voor de deur van de woning staat is deze techniek dus totaal ongeschikt (is mijn persoonlijke ervaring).
Pingen
Voordelen:
  • Redelijk betrouwbaar
  • Geen speciale technieken of software/apps voor nodig
Nadelen
  • Flinke vertraging
  • Werkt enkel bij meedragen smart device met Wifi-verbinding


Digitale toegangssystemen kunnen uiteraard ook gebruikt worden om de aanwezigheid in een gebouw te detecteren. Denk aan smart locks welke geopend en gesloten kunnen worden middels een app of NFC sleutel. Of alarmen die middels een NFC sleutel, pincode of bluetooth beacon in/uitgeschakeld kunnen worden. Hierbij geef je als bewoner/gebruiker van het gebouw zelf aan wanneer je binnenkomt en weg gaat. Deze informatie is uiteraard te koppelen aan de domotica!
Smart lock, NFC key/pas, bluetooth beacon
Voordelen:
  • Zeer betrouwbaar
  • Veilig
Nadelen
  • Vergt iedere keer input van de gebruiker



Wanneer je al systemen hebt om aanwezigheid in een ruimte te detecteren (zie bovenstaand) kun je deze uiteraard ook gebruiken voor de detectie van aanwezigheid in het gebouw. Immers: weet je domotica systeem dat je in de woonkamer aanwezig bent, dan kan deze dus ook 'bedenken' dat je wel in het huis zult zijn! Door al deze systemen te combineren heb je zonder toevoeging van apparaten of software de mogelijkheid om ook aanwezigheid in het huis/gebouw te detecteren. Uiteraard werkt dit enkel wanneer je in alle ruimtes in de woning dergelijke detectoren hebt... Al kun je hier middels een stukje intelligente software enigszins omheen werken. Bijvoorbeeld: Wanneer je aanwezigheid is gedetecteerd in een bepaalde ruimte blijft het systeem je als 'aanwezig' aanduiden totdat je de voordeur opent. Daarmee kun je enigszins ondervangen dat je smart home jou 'kwijt' raakt wanneer je in een ruimte bent zonder aanwezigheidssensoren...
Aanwezigheid in ruimte
Voordelen:
  • Geen extra software of hardware nodig
  • Beperkt bruikbaar
Nadelen
  • Afhankelijk van sensoren in bepaalde ruimtes


Misschien het meest verstandig voor betrouwbare aanwezigheidsdetectie is toch wel het combineren van technieken. Zoals in de diverse lijstjes te zien hebben veel van de technieken toch een probleem met betrouwbaarheid of bepaalde afhankelijkheden. Door het combineren van technieken vergroot je de betrouwbaarheid en maak je jezelf minder afhankelijk van één bepaald apparaat. Ikzelf gebruik bijvoorbeeld een combinatie van geofencing, pingen en diverse PIR sensoren in huis. En dat werkt redelijk goed! Helaas gaat een enkele keer wel het alarm nog steeds af wanneer ik zelf het huis in kom. Dit komt doordat de geofencing functionaliteit in de door mij gebruikte Domoticz app toch niet altijd even betrouwbaar blijkt en pingen heeft een te grote vertraging.

Conclusie
Aanwezigheidsdetectie is lastige materie. Er zijn verschrikkelijk veel technieken beschikbaar, maar mijn ervaring is dat geen van deze volledig betrouwbaar is. Daarom is mijn enige advies: combineer meerdere technieken als je een betrouwbare aanwezigheidsdetectie wilt, ongeacht of het gaat om aanwezigheid in een gebouw of aanwezigheid in een bepaalde ruimte.
Wat betreft domotica en smart homes is aanwezigheidsdetectie wat mij betreft één van de kritische succesfactoren. Domotica wordt pas écht handig wanneer je dit goed ingericht hebt. Het maakt het namelijk mogelijk dat een woning (of kantoor, of...) 'intelligent' gaat reageren op wat de bewoners/gebruikers doen. Alle andere technieken met betrekking tot de aansturing van domotica (zoals aansturing via apps of spraak) zijn absoluut leuk en hebben een hoog gadget gehalte maar zijn in feite niet heel erg veel praktischer dan een 'ouderwets' (licht)knopje indrukken... Binnen de domotica industrie zie ik ook dat er steeds meer aandacht is voor aanwezigheidsdetectie. Er zijn steeds meer sensoren te koop (zie onderaan dit artikel) en ook de diverse software biedt steeds meer mogelijkheden. Ik voorzie dan ook dat er over enkele jaren nog veel meer technieken beschikbaar zijn dan in dit overzicht en dat ook de mainstream commerciële domotica toepassingen hier meer mee gaan doen...

Zelf ervaring met aanwezigheidsdetectie? Deel het via de comments! Vragen of opmerkingen? Laat het me weten. Via de comments of PM

Hardware

Hierbij een overzicht met diverse producten die te gebruiken zijn voor aanwezigheidsdetectie. Ik heb mij enigszins beperkt tot Xiaomi en Aqara omdat ik daar zelf de meeste (goede) ervaring mee heb. Er is uiteraard meer verkrijgbaar, dus zelf rondkijken is altijd aan te raden! Ook met betrekking tot compatibiliteit met de domotica systemen/software die je gebruikt.


PIR detectie (infrarood):
Xiaomi Mija Human Body Sensor(Affiliate)
Aqara Human Body Sensor(Affiliate)
SONOFF PIR2 IR detector(Affiliate)
Philips Hue Motion Sensor

Beeldherkenning
Xiaomi Smart IP Camera(Affiliate)
Aqara Smart IP Camera(Affiliate)
Foscam C1 IR camera(Affiliate)
Neo Coolcam(Affiliate)
Neo Coolcam outdoor(Affiliate)

Audio herkenning
Iedere microfoon of camera met ingebouwde microfoon

Radar
Nog niet echt commercieel verkrijgbaar?
DMBD TYXAL+

Beacons (BLE)
Bluetooth adapter(Affiliate)
Bluetooth dongle(Affiliate)
iBeacon patch(Affiliate)

Vibratie sensors
Aqara Vibration detector(Affiliate)

knop/RFID/fingerprint/iris scan/spraakopdracht/etcetera
Aqara wireless switch(Affiliate)
Aqara switch(Affiliate)
Aqara wall switch(Affiliate)
Aqara magic cube(Affiliate)
Xiaomi wireless witch(Affiliate)
Nest Mini


Geofencing
bv. Domoticz app

Smart lock/NFC tag / beacon
Aqara Smart Lock(Affiliate)
Aqara S2 Smart Lock(Affiliate)
Xiaomi Smart Lock(Affiliate)
Xiaomi Sherlock M1(Affiliate)

Kleine boodschap van de sponsor: Banggood heeft i.v.m. Black Friday grote kortingen op Smart Home producten! Neem eens een kijkje (en help mij aan wat centen om meer content te kunnen creëren, dus affiliate link!).

Deze special is op verzoek van één van mijn donateurs! Wil je ook doneren? Dat kan! Zie hier rechts hoe je eenmalig kunt doneren via Paypal of hoe je Patron kunt worden van dit blog/vlog!

Slaapkamer domotica (incl. LUA script!)

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

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!




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!




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! En een verloop-plug van Aziatisch stopcontact naar NL stopcontact is vereist). 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.






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: 6.337

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.



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!



Ook kan dit in mooie grafieken getoond worden:



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_

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

Aanwezigheidssensoren in huis, hoe voorkom je knipperende lampen

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

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...

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!

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...



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!).

Een slimmer huis met Domoticz en Xiaomi

Door kazz1980 op woensdag 14 maart 2018 10:00 - Reacties (15)
Categorieën: Domoticz, Xiaomi, Views: 10.965

In mijn vorige blog vertelde ik over mijn eerste stappen binnen de wereld van de Domotica. Ik heb gekozen voor een Raspberry Pi met daarop Domoticz. Deze moest mijn Xiaomi apparatuur gaan aansturen.... Het aansluiten van apparatuur en deze werkend krijgen is voor mij inmiddels gesneden koek! Maar in het begin heb ik flink moeten experimenteren om door te krijgen hoe één en ander nu precies werkt. Hierbij een verslag van die eerste ontdekkingstocht ... (Vragen? Opmerkingen? Stel ze!)

====================
  • DISCLAIMER 4/7/2018: Dit blogbericht is inmiddels wat ouder... Inmiddels ben ik qua kennis verder en zijn onderstaande scripts alweer verder verbeterd. Want bijvoorbeeld een Group aanzetten voor een X aantal minuten blijkt helemaal niet te werken!! Binnenkort schrijf ik een blog over de verdere ontwikkeling van dit script en hoe het er momenteel uitziet.
====================

En toen was er licht...

De eerste stap was mijn Xiaomi RGBW Yeelight toevoegen aan Domoticz. Hiervoor hoef je Domoticz enkel te vertellen wat voor type Yeelight het is (RGBW of Mono) en het IP-adres mee te geven. Let op, als je wilt dat de lampen altijd blijven werken moet je wel zorgen dat de lamp binnen je router een vast IP adres krijgt!



De lamp kun je nu terugvinden onder 'Devices' en is toe te voegen als Switch. Nu is het mogelijk om via de computer de lamp aan en uit te zetten en een kleur in te stellen. Opvallend hierbij is dat de aansturing van het RGB deel van de lamp en het witte licht verre van een soepele overgang kent... Hierdoor kent de lamp slechts een heel scala aan kleuren en koud wit. Maar een plezierig warm wit, dat gaat niet lukken... Gelukkig is er op de Domoticz Wiki een eenvoudig script te vinden die het mogelijk maakt om via een dimmer iedere tint warm-wit licht in te stellen.

Sensoren

De volgende stap was de sensoren werkend krijgen. Zoals gemeld had ik een bewegingssensor en een draadloze knop. Deze werkend krijgen binnen Domoticz is in theorie eenvoudig, maar vergde de eerste keer enig experimenteren. Een nieuwe sensor moet eerst gekoppeld worden aan de Xiaomi Gateway. Dit kan via de app die beschikbaar is in Google Play en de Apple App Store. Verder is het vooral de instructies volgen op de Domoticz Wiki. De Wiki is helaas (nog) niet bijgewerkt naar de laatste versie van de app. Dus het is even zoeken waar alles nu te vinden is. Belangrijk is vooral dat je de 'Mainland China' server kiest, anders gaat het niet werken!

Binnen de Mi Home app kun je nu sensoren toevoegen. Dat spreekt inmiddels redelijk voor zich (was bij eerdere versies van de app wel anders!)... Het wordt je netjes uitgelegd in het Engels binnen de app en in het Chinees door de Gateway zelf. Schrik dus niet wanneer het apparaat in het Chinees ineens een heel verhaal begint af te steken...




De sensoren zijn nu zichtbaar binnen Domoticz. Indien dit niet direct gebeurt kan het helpen om binnen de Hardware tab (onder Setup) nog even de Xiaomi Gateway te Updaten.

Het eerste Domoticz script

Binnen Domoticz programmeer je in zogenaamde 'Events'. Ook deze zijn te vinden onder Setup. Hier heb je vervolgens de keuze om te programmeren in Blockly (voor de n00bs :P), Lua, dzVents of Python... Ikzelf gebruik tot dusver een combinatie van Blockly scripts en Lua scripts. Mijn eerste script moest mijn lamp gaan vertellen dat deze énkel ingeschakeld moest worden tussen bepaalde tijdstippen én wanneer beweging gedetecteerd werd. Middels een druk op de knop moest dit daarnaast ook buiten de gestelde tijden nog eens werken, hiervoor heb ik de 'overrule_sun' dummy knop gemaakt (aan te sturen met de Xiaomi draadloze knop)... Dit leverde de volgende Lua code op:
code:
1
2
3
4
5
6
7
8
-- get current time
timenow = os.date("*t")
minutesnow = timenow.min + timenow.hour * 60

if (((minutesnow > timeofday['SunsetInMinutes'] - 30) or (minutesnow < timeofday['SunriseInMinutes'] + 10)) and globalvariables['Security'] == 'Disarmed') 
    or (otherdevices['overrule_sun']=='On') or (devicechanged['overrule_sun']=='On') then
    if (devicechanged['Xiaomi Motion Sensor']=='On') or (otherdevices['Xiaomi Motion Sensor']=='On') then
...


De belangrijkste termen hierin zijn 'devicechanged' en 'otherdevices'. De eerste controleert een status enkel op het moment dat deze verandert, de andere kijkt bij aanroep naar de huidige status. Het is mij opgevallen dat het zinvol kan zijn om soms beiden te gebruiken voor één enkele switch omdat het anders toch af en toe voorkomt dat het script iets 'over het hoofd ziet'... Heeft te maken met de timing die soms wat ongelukkig uitkomt binnen een script.

Aanvullend heb ik een Toggle dummy switch gemaakt (ook aan te sturen met de Xiaomi draadloze knop) die het mogelijk maakt om de verlichting handmatig uit te zetten wanneer ik op enig moment écht in het donker wil zitten en wilde ik enige controle hebben over de kleur van de lamp middels nog eens twee dummy switches:
Eén van deze dummy switches gebruik ik om de kleur van de verlichting aan te passen. Voor één enkele lamp is dat wat overkill, maar gekozen voor deze oplossing zodat in de toekomst ook andere lampen dit uit kunnen lezen en daarop dezelfde (of een bepaalde in te stellen andere) kleur kunnen weergeven!
Een tweede dummy switch houdt bij welk dagdeel het is. Gedurende de dag is er een script dat op gezette tijden deze switch automatisch omzet van ochtend naar middag, naar avond en tot slot naar nacht. Hierop kan ik het type licht aanpassen afhankelijk van het moment op de dag.

De code die ik vervolgens gebruik om de lamp (via een Group) aan te sturen is als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
...
       if (otherdevices['Toggle']=='Off') then
            commandArray['Group:Movie']='Off'
            commandArray['Group:Warmlicht']='Off'
            commandArray['Group:Nachtlicht']='Off'
        elseif (otherdevices['Kleur']=='Movie') then
            commandArray['Group:Movie']='On FOR 30'
            print ("Filmverlichting aan")
        else
            if (otherdevices['TimeOfDay']=='Night') then
                print ("Nachtstand")
                if (otherdevices['Kleur']~='Sunset') or (otherdevices['Woonkamer bol'] == 'Off') then
                    commandArray['Kleur']='Set Level: 30' 
                    print ("Nachtverlichting aan")
                end    
            else    
                commandArray['Group:Warmlicht']='On FOR 30'
                print ("Dagverlichting aan")
            end
        end    
    end
...

Met andere woorden: Staat de toggle uit, dan mag alles uitgezet worden (ongeacht of het wel aan stond of niet). In andere gevallen wordt gekeken of de fimstand aanstaat (zo ja: blauw-paars licht), of het al nacht is (zo ja: wordt een zonsondergang gesimuleerd en dimt de lamp langzaam naar rood en gaat dan uit - meer hierover in een toekomstig blog) en indien dat allemaal niet het geval is wordt 'gewoon' warmwit licht aangezet.

Nu bleek enkel dat de lamp met enige regelmaat onbedoeld aan bleef staan overdag of 's nachts. En daarom is de code nog afgerond met:
code:
1
2
3
4
5
6
7
...
elseif (otherdevices['Woonkamer bol'] ~= 'Off') then
    print ('Tijd is voorbij: licht uit')
    commandArray['Group:Movie']='Off'
    commandArray['Group:Warmlicht']='Off'
    commandArray['Group:Nachtlicht']='Off'
end

En dat werd het belangrijkste stuk intelligentie om vooralsnog één enkele lamp aan te sturen. Maar al wel zodanig ingericht dat in de toekomst uitbreiding gemakkelijk is. Die uitbreiding heeft inmiddels al plaatsgevonden en het gebruikte script is daarbij nagenoeg ongewijzigd gebleven en bleek dus prima 'future-proof'.

Het werd echter complexer toen ik naast de woonkamer ook de keuken mee wilde gaan nemen in de automatisering. Meerdere sensoren moeten nu samenwerken om meerdere lampen op de juiste momenten te schakelen. En dat geeft de nodige uitdagingen... Zo heb ik één lamp die tussen keuken en woonkamer staat. Zowel bij beweging in de keuken moet deze aan als bij beweging in de woonkamer. Dus aan beide scripts toegevoegd - maar met als gevolg dat de lamp continu aan en uit blijft knipperen als één van beide ruimtes de lichten uitgeschakeld heeft en de andere de lichten ingeschakeld... Oeps! Heb daar nog geen goede oplossing voor bedacht. Wellicht is dit op te vangen middels een Dummy switch, maar daar heb ik er inmiddels al zoveel van! Nog een keer goed over nadenken...

Heb onlangs de Yeelight LEDstrip ontvangen. Daar wil ik binnenkort eens een review aan wijden. Tevens wil ik op korte termijn aan de slag met een betere integratie van Google Home binnen mijn Domotica, dus daar kun je ook een blog over verwachten! Tot slot heb ik nog een project staan om aanwezigheid beter te detecteren. gebruik hiervoor nu de Geofence functionaliteit in de Domoticz app, maar dat werkt tamelijk beroerd... Wil daarom mijn mobiel (en daarna ook die van de kinderen)
kunnen pingen en in combinatie met de geofencing functionaliteit uit de app zodoende betrouwbaarder kunnen bepalen of er iemand aanwezig is - en op basis daarvan het alarm in- en uit kunnen schakelen. Dus wederom, wordt vervolgd! ;)