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

Nieuwe release Domoticz, of: hoe mijn huis in een discotheek veranderde

Door kazz1980 op woensdag 4 juli 2018 12:39 - Reacties (17)
Categorie: Domoticz, Views: 7.067

Een kort berichtje in mijn blog.

Er is onlangs een nieuwe stable release uitgekomen van Domoticz! Goed nieuws. Want daarin zitten vele verbeteringen zoals meer controle over de weergave Domoticz (waarmee het gebruik van third party dashboards geen vereiste meer is om het 1 en ander enigszins toonbaar te maken) en ondersteuning van nieuwe Xiaomi devices, waaronder de nieuwe generatie bewegingssensoren (met ingebouwde lux meter!).

Dus toen ik de pop-up kreeg om een upgrade te doen ging ik er meteen voor!

Gevolg: disco....

Alle lampen knipperden in mijn huis. Dus even de boel herstarten. Alle lampen gingen uit en later weer netjes aan. Awesome! Nieuwe release draait. Toch?

Even controleren of ik de lampen uit kan zetten en weer aan kan krijgen... Dus spraakcommando gegeven om de lampen uit te zetten. Vervolgens gaat een deel van de lampen uit en een tweetal lampen (boven de eetkamertafel) beginnen afwisselend minutenlang te knipperen. Enkele minuten later gaat spontaan een willekeurige andere lamp weer aan....

Commando om de lampen weer aan te doen. Niet alle lampen gaan aan. Sommige lampen knipperen van de filmstand naar de gewone stand... Complete chaos! Terwijl aan de scripts niets gewijzigd is en ook de logging niets weergeeft wat er nu daadwerkelijk signalen richting de lampen zou geven om te schakelen... Een totaal raadsel wat er hier volledig mis gaat!

Is er iets gewijzigd in de aansturing van Xiaomi Yeelights? Is de aansturing van Groups gewijzigd? Ik kan het niet vinden...

Dus uiteindelijk maar besloten een back-up van het systeem terug te zetten en weer naar de 'oude' release terug te gaan.... Erg jammer! En weer een item voor de todo-list. Binnenkort eens tijd maken om goed uit te zoeken wat er allemaal in de nieuwe release zit en een stuk debugging te gaan doen om wél over te stappen naar de nieuwe release, zónder mijn huis in een disco te veranderen....

Zoals altijd: wordt vervolgd!

Wijze les voor iedereen: als je een upgrade doet van Domoticz, altijd zorgen voor een recente back-up van je SD-kaartje! Gelukkig had ik dat dus ook gedaan - want het bleek nodig...|