Bekend merk Smart apparatuur voor de Chinese markt.

Smart Terrarium

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

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_

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

Aanwezigheidssensoren in huis, hoe voorkom je knipperende lampen

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

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

Xiaomi Yeelight review

Door kazz1980 op maandag 19 maart 2018 19:28 - Reacties (3)
Categorie: Xiaomi, Views: 4.578

In mijn blog heb ik al geregeld de Yeelight verlichting benoemd. Dit zijn smart lampen van het Chinese merk Xiaomi. Qua functionaliteit heel vergelijkbaar met bijvoorbeeld de, hier meer bekende, Philips Hue.
Echter met een paar grote verschillen. Ze zijn niet afhankelijk van een basisstation/gateway én ze zijn (dus) een héél stuk betaalbaarder. Maar omdat ze hier in Nederland niet gewoon in de winkel te krijgen zijn zul je moeten bestellen en hopen dat het een beetje de kwaliteit is die je er van wacht. Ik heb inmiddels redelijk veel ervaring met deze Yeelight verlichting, dus daarom hierbij een review om anderen te helpen een keuze te maken.


Xiaomi Yeelight

Er zijn inmiddels vele soorten lampen en lichtbronnen beschikbaar van Xiaomi. Zie voor het huidige assortiment de website: https://www.yeelight.com/.

In Azië is Xiaomi éen van de grootste speler qua consumenten electronica en met name ook qua Smart Home producten... (ze ontwikkelen trouwens ook meerdere lampen onder de vlag van Philips Lightning) Helaas zijn de Yeelight producten in Nederland (nog) niet veel via de reguliere handel te koop... Maar met dank aan AliExpress (en aanverwant) zijn ze prima te verkijgen. Direct bij Ali, of via Nederlandse tussenpartijen (maar dan wel voor wat meer geld... immers, voor niets gaat de zon op!).

Yeelight smart bulbYeelight desk lightYeelight Children ceiling light

Deze review gaat over de twee belangrijkste producten die Xiaomi aanbiedt waarmee je zelf Smart verlichting kunt maken van je bestaande verlichting. De E27 lamp (Smart Light Bulb) en de LED strip.

Unboxing

Alle Xiaomi Smart producten worden geleverd in kenmerkende witte dozen met slechts minimalistische bedrukking. De dozen hebben een luxe uitstraling en zijn altijd netjes verzegeld. Dat laatste is wel prettig bij LED lampen zodat je enige zekerheid hebt dat je een nieuwe lamp ontvangen hebt...

De Yeelight E27 lamp is stevig ingepakt in karton en zit zelf in een beschermend plastic zakje.

Yeelight box front Yeelight box back Yeelight box open

De Yeelight Led strip is eveneens stevig verpakt in een combinatie van karton en foam.

Yeelight ledstrip box front Yeelight ledstrip box backYeelight ledstrip box open

In de verpakking van de Yeelight E27 lamp vinden we de lamp zelf en een handleiding (in het Chinees). De Led strip bestaat uit de strip zelf met daaraan vast de controller en een losse adapter, plus ook hier een Chinese handleiding. Let op: de stekker van de adapter is, zoals bij alle Xiaomi producten, een type I stekker. Een EU adapter is dus vereist om deze in een 'normaal' Nederlands of Belgisch stopcontact aan te sluiten... Bij de meeste verkopers kan deze direct bijbesteld worden voor maximaal 2 a 3 euro.

Yeelight box contents Yeelight ledstrip box contents


Ervaringen

In tegenstelling tot de meeste andere 'smart' lampen op de markt (zoals Philips Hue of Ikea) hebben de Yeelight producten geen basisstation of gateway nodig! Veel andere producten van Xiaomi worden aangesloten op de Xiaomi Gateway, voor de lampen is deze dus niet nodig. Dat maakt dat je met deze lampen snel aan de slag kunt zonder een grote initiële investering!

Nadat de lamp van stroom voorzien is moet deze ingesteld worden met behulp van de Mi Home app die te verkrijgen is voor Android en iOS. Dat begint met de app vertellen dat er een nieuwe lamp aangesloten wordt. Er is keuze uit een grote hoeveelheid modellen. Duidelijke afbeeldingen maken het kiezen van het juiste type lichtbron een koud kunstje. Vervolgens is het een kwestie van instructies volgen. Indien een lamp reeds eerder gebruikt is dient deze wel eerst ge-reset te worden, ook dit wordt binnen de app prima uitgelegd.

Screenshot Mi Home Lamp toevoegenScreenshot yeelight toevoegen Mi HomeScreenshot ledstrip toevoegen Mi Home

De app voegt de lamp toe aan je netwerk. Terwijl dit gebeurt zal de telefoon kort via WiFi verbinding maken met de lamp waardoor je internet verbinding kort onderbroken wordt. Doorgaans duurt het hele proces enkele seconden. Daarna is het verstandig een firmware update te doen van de lamp in kwestie, dit gebeurt namelijk niet automatisch. Eerdere versies van de firmware hadden enkele vervelende bugs, dus deze update is wel aan te raden. Wil je de Yeelight vervolgens ook aan kunnen sturen vanuit Domoticz, of rechtstreeks met behulp van de API dan zul je LAN Beheer nog in moeten schakelen.

Screenshot Yeelight wordt toegevoegd Mi HomeScreenshot Mi Home Lan BeheerScreenshot Mi Home firmware update Yeelight

De lichtbron is nu zichtbaar in de app. Via de app kun je deze in- en uitschakelen en tevens een aantal leuke kleuren/patronen kiezen. Wil je niet je hele huis ombouwen tot een Smart huis, dan heb je hier méér dan voldoende aan om je huis van gekleurd licht te voorzien. Ook kent de app mogelijkheden om schema's in te stellen. Alles is redelijk gebruikersvriendelijk. Voorheen kwam je op momenten nog wel eens spontaan Chinese teksten tegen in de app, dat is inmiddels grotendeels (geheel?) verholpen!

Screenshot Mi Home lampenScreenshot Mi Home Yeelight

Er is nog wel een aandachtspuntje... Omdat de Yeelight via WiFi werkt wordt deze benaderd via het IP-adres dat de lamp gekregen heeft van je router. Veel routers geven IP-adressen dynamisch weg. Dat wil zeggen dat de lamp een ander IP-adres kan krijgen wanneer deze tijdelijk uit het netwerk verdwenen mocht zijn (bijvoorbeeld door stroomuitval of omdat je de lamp (per ongeluk?) met de lichtknop uitzet... Het is daarom aan te raden om in je router aan te geven dat de Yeelight lichtbronnen een statisch IP-adres krijgen. Met behulp van dit IP-adres kun je de Yeelight ook eenvoudig toevoegen aan Domoticz. Ook dit spreekt redelijk voor zich, maar uitgebreide instructies zijn te vinden in de Domoticz Wiki.

Fritzbox Yeelight instellen Fritzbox Yeelight instellen 2 Domoticz Yeelight instellen

Zowel de Yeelight E27 lamp als de LED strip geven ruim voldoende licht, maar kunnen ook prima gedimd worden. De E27 lamp kan tot een bijzonder laag niveau gedimd worden De LED strip is minder te dimmen wanneer de gehele strip gebruikt wordt, met name bij het gebruik van gekleurd licht. Dat komt simpelweg omdat het heel veel losse lampjes zijn! Wanneer de LED strip op maat geknipt wordt (let op: enkel knippen op de daarvoor aangegeven plaatsen!) heeft het dimmen ook wat meer effect.
Zowel de LED strip als de gloeipeer kunnen vrijwel alle denkbare kleuren weergeven. De overgang tussen kleuren is zeer geleidelijk en het is niet zichtbaar dat het licht opgebouwd is uit meerdere gekleurde lichtbronnen. Een nadeel is dat het witte licht losstaat van het gekleurde licht. Hierdoor is er de keuze tussen wit licht of gekleurd licht, in plaats van een geleidelijke overgang van gekleurd naar (warm) wit licht. Wel is het witte licht volledig aanpasbaar van fel koud licht tot meer gedimd en warm licht. Dus ongeacht of je nu op zoek bent naar een werklamp voor boven de tafel of een sfeervolle lamp voor tijdens een etentje, de Yeelights zijn geschikt! De lampen doen qua licht kwaliteit dan ook niet onder voor een lamp als de Philips Hue. In vergelijk met de IKEA smart verlichting presteert de Yeelight (naar mijn mening) een stuk beter.

Conclusie

Xiaomi Yeelight is een set lichtbronnen die in Nederland en België nog relatief onbekend is. Dat is ook niet vreemd, want Xiaomi richt zich met deze producten primair op de Chinese markt en deze zijn in Europa dan ook nog weinig te koop. De producten zijn echter prima bruikbaar in Nederland/België en doen daarbij niet onder voor het bekendste merk in 'smart licht', Philips!
Er zijn echter wel wat aandachtspunten om rekening mee te houden. Zo is de overgang tussen (warm) wit licht en gekleurd licht niet bepaald soepel en kan de LED strip slechts beperkt gedimd worden. Er zijn daarentegen ook enkele grote voordelen! Zo zijn de Yeelights niet afhankelijk van een basisstation en kunnen ze via een API volledig aangestuurd worden. Daarmee is het mogelijk om scripts te schrijven voor de lampen en is integratie in een software pakket als Domoticz vlekkeloos.
Na enkele maanden gebruik ben ik overwegend positief over de Xiaomi Yeelight producten. Ze werken prima, zijn betaalbaar en tot zover lijken ze zeer duurzaam (maar daar kom ik over een jaar nog eens op terug).


Plus- en minpunten

+ Soepele overgang tussen kleuren
+ Prettig warm wit licht
+ Geen basisstation benodigd
+ Betaalbaar
+ Volledig aan te sturen middels API

- Overgang tussen gekleurd en wit licht minder soepel
- LED strip matig dimbaar
- In Nederland/België beperkt verkrijgbaar

Een slimmer huis met Domoticz en Xiaomi

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

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!

Yeelight toevoegen aan Domoticz

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


Mi Home app Apparaat toevoegen Human Body Sensor toevoegen Succes

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

Mijn smart huis: In den beginne...

Door kazz1980 op dinsdag 6 maart 2018 22:21 - Reacties (10)
Categorieën: Domoticz, Raspberry Pi, Smart Home, Xiaomi, Views: 4.003

Nadat het plan gevormd was om mijn huis om te toveren tot een Smart Home moest er de nodige apparatuur komen... Een Xiaomi Yeelight lamp was er al. Maar nu moest deze op enige wijze intelligent aangestuurd gaan worden... Het was mij al duidelijk dat hier nog geen out-of-the-box oplossing voor bestond! Althans, niet betaalbaar... Dus de keuze om zelf iets te gaan bouwen was gemaakt! Maar met nul kennis van thuisautomatisering was dit in eerste instantie een stevige uitdaging...

De aansturing

Wanneer je zelf met thuisautomatisering aan de slag wilt is de keuze qua software beperkt. Eigenlijk bestaat er, bij mijn weten, slechts één vrij toegankelijk stukje software met dit doel, en dat is Domoticz. Maar omdat ik niet continu een PC wil hebben staan loeien (wegens lawaai, maar belangrijker wegens stroomverbruik) moest er een Raspberry Pi komen waarop deze software zou gaan draaien.

En zie hier: de hersenen van mijn (toekomstige) slimme huis:
Raspberry Pi scherm Raspberry Pi

Zoals te zien voorzien van een beeldscherm welke tevens functioneert als touchscreen. Idee is dat hiermee in de toekomst bepaalde zaken aangestuurd kunnen worden. Maar wat precies, dat weet ik nog niet! Op dit moment doe ik er nog niet echt iets mee...

De hardware

Omdat ik met slechts een enkele Yeelight lamp niet veel mogelijkheden heb om het huis intelligent te maken moest er aanvullende hardware komen. Xiaomi1 heeft hiervoor een enorme hoeveelheid sensoren, knoppen, lampen, etcetera.
In eerste instantie koos ik voor een bewegingssensor (Human Body Sensor)2 en een draadloze knop.

Xiaomi Human Body sensor Xiaomi Wireless Switch

De Xiaomi sensoren zijn los echter onbruikbaar omdat ze enkel aangestuurd kunnen worden met de Xiaomi gateway3. Die moest er dus ook komen. En ik wilde deze een mooi centrale plaats geven in het huis. Dat werd aan het plafond midden in de woonkamer (aangezien ik daar toch nooit een lamp op heb willen hangen). Enige praktische uitdaging: de gateway kan enkel ingeplugd worden in een Chinees stopcontact (Type I)! Dus zodoende stond ik op een goede dag een Chinees stopcontact op mijn plafond te schroeven... Een beetje vreemd, een stopcontact aan je plafond. Maar het resultaat was dat de gateway mooi tegen het plafond bevestigd kon worden zodat deze in de woonkamer goed zichtbaar én hoorbaar is. De Gateway is namelijk voorzien van een aan te sturen lichtgevende ring en een speaker welke zowel standaard geluiden als zelf op te nemen MP3's ten gehore kan brengen (daarover later meer!). Het instellen van de Gateway was even lastig omdat deze na inschakelen meteen instructies begon te blaten: In het Chinees! Maar, gelukkig is de bijbehorende app inmiddels grotendeels ook in het Engels beschikbaar (en inmiddels zelfs steeds meer in het Nederlands!), en waar alsnog een confrontatie ontstond met de Chinese taal bleek Google een uitkomst...

Xiaomi Gateway Xiaomi Gateway app

Het functionele ontwerp

Nu was alle hardware aanwezig om de eerste stappen naar een Smart Home te zetten:
De knop en sensor gekoppeld met de Gateway en samen met de Yeelight lamp toegevoegd aan Domoticz met dank aan de instructies op de Domoticz Wiki die zelfs met mijn nog beperkte kennis van de software goed te volgen waren:
https://www.domoticz.com/wiki/Yeelight
https://www.domoticz.com/wiki/Xiaomi_Gateway_(Aqara)

De volgende stap was het ontwikkelen van software die het geheel moet gaan aansturen. Maar voordat daar aan begonnen kon worden was het zaak eerst te bedenken wát ik eigenlijk met deze apparatuur wilde. Er moest een 'functioneel ontwerp' komen! Deze was in eerste instantie tamelijk eenvoudig (dacht ik...):

Afhankelijk van de tijd moet de lamp warm wit licht geven wanneer de bewegingssensor beweging registreert. Dit is enkel zinvol vanaf zonsondergang tot 23.00 uur en vanaf 6.00 uur tot zonsopkomst. Buiten deze tijden zal de verlichting niet inschakelen. Echter, met behulp van de draadloze knop kan ik dit overrulen. Wil ik tóch licht overdag (bijvoorbeeld wanneer het erg bewolkt is) dan druk ik op de knop en wil ik in de avond of ochtend het licht uit doen, dan moet dit ook met behulp van de knop mogelijk zijn. Tot slot wilde ik nog iets met gekleurd licht, want wat heb je anders aan een RGBW lamp! Dus middels het lang indrukken van de knop moest het ook mogelijk zijn de verlichting op blauw-paars te zetten, en weer terug naar warmwit. De keuze voor blauw-paars is overigens omdat dit (schijnbaar) het ideale licht is tijdens het kijken van een film...

Klonk redelijk simpel... Maar het bleek toch een stevige uitdaging! Daarom, binnenkort in dit theater een verslag van de eerste ontdekkingen met het programmeren binnen Domoticz.... Ofwel: hoe ik enkele weken lang iedere avond onbedoeld weer in het donker zat! :/
Wordt vervolgd.


______________________________________________________________
1. De link betreft de website van een reseller, ik raad niet direct aan de producten hier te bestellen... Maar in tegenstelling tot de officiële site van Xiaomi geeft deze site wel een mooi overzicht van alle Xiami Smart producten...
2. Let op: Van de Xiaomi Aqara Human Body Sensor is recent een nieuwe versie uitgekomen. Deze heeft ook een licht sensor! Heel erg handig dus. Maar helaas, deze wordt (nog!) niet ondersteund door Domoticz... In de instabiele beta-versie van Domoticz schijnbaar al wel, maar als je die niet wilt gebruiken (zoals ik), dan heb je voor nu weinig aan de nieuwe versie van de Human Body Sensor (te herkennen aan bijgeleverde houder en een druk knopje in plaats van een gaatje t.b.v. resetten)...
3.Aandachtspuntje: Kies voor de nieuwere tweede generatie Gateway (DGNWG02LM), de eerste generatie werkt niet... Hou er ook rekening mee dat Xiaomi apparatuur die niet verbonden is met de Gateway ook niet via Domoticz aangestuurd kan worden vanuit de Xiaomi Gateway/Aqara-plugin! Er zijn wel steeds meer andere plug-ins beschikbaar voor overige Xiaomi apparatuur, zoals voor de benoemde Yeelights!