Hokkie schreef op zondag 15 januari 2017 @ 09:05:
Afgelopen week heb ik een Fibaro Motion Sensor in de woonkamer geïnstalleerd (ter vervanging van een KAKU AWST-6000 bewegingsmelder). Enerzijds doordat ik langzamerhand over wil op z-wave en anderzijds de Fibaro óók lampen middels lichtsensor kan 'overrulen'. Als het overdag/namiddag donkerder wordt en mijn voorwaarde (IF) formeel nog niet kloppen, het licht wel gewoon aan gaat. Ditzelfde geldt ook voor overdag. Met enig regelmaat gaan de lampen bij SUNRISE uit, maar mijn vrouw (heb je ze weer

) het nog wel te donker vind. Hier heeft ze een punt.
Afijn, Fibaro (LUX) in dit event gesleuteld en het werkt! Gisteren een paar keer, tijdens de sneeuwbuien, erg donker en voilà; lampen gingen aan.
Echter, rond bedtijd ging het mis. Normaal gesproken gebruik ik de Philips Dimmer Switch om alle lampen beneden handmatig uit te zetten. Bij ons wisselt bedtijd wel eens en dit wil ik middels één druk op de knop kunnen schakelen. Dus, ik druk de Dimmer Switch in (lees: welterusten) en boem! alle lampen gingen weer aan. Ik weer indrukken en boem!, weer alle lampen aan.
Mijn vraag; Hoe kan ik overdag/avond de lampen wél aan laten gaan (mede) op basis van lichtsterkte, maar dat Domoticz ook mijn manuele input snapt. Ik heb geen ervaring met LUA en/of Scripts, dus oplossingen graag met middels Blocky.
Mijn huidige event;
[
afbeelding]
Een aantal opmerking, mochten hier vragen over zijn;
- Ik gebruik 3 virtual switches (dag, avond, nacht); gebruiken ik voor diverse doeleinden waar sunset en sunrise niet voldoende is
- Bij 'IF' zie je 'Lamp Keuken Eettafel' opgenomen. De reden hiervoor is dat group Lampen Beneden een standaard dimwaarde hebben, maar wij soms (bij bijvoorbeeld lezen) de HUE een andere kleur geven en daarnaast ik niet elke minuut dit event in mijn log wil hebben. Hiermee voorkom ik dat telkens Domoticz een event afvuurt en geeft mij de vrijheid de dimwaarde over de avond te wijzigen.
Maak een variabele aan die je mee schakelt.
In Domoticz --> Instellingen --> Meer opties --> Gebruikersvariabelen.
Vul een naam in + INTEGER + waarde = 0
tip: mocht je licht ooit een keer vreemd doen check de waarde van de variabele. Ik heb zo al eens erg lang gezocht waarom de lichten niet meer aan gingen. Bleek de variabele niet goed bijgewerkt
Dus licht aan (IF) en dan verander je de variabele naar bv 1 en je check op de waarde van deze variabele dat deze 0 is.
Dus je blocky regel (IF) + AND VAR = 0
Bij DO de JSON regel erbij om VAR (weer) op 1 te zetten
Als je licht weer uit (ELSE IF) gaat dan verander je de variabele weer naar 0 en je check op de waarde van de variabele dat deze 1 is.
Dus je blocky regel (ELSE IF) AND VAR = 1
Bij DO de JSON regel erbij om VAR (weer) op 0 te zetten
Op die manier gaat het licht niet nog eens aan als je deze handmatig uitzet, immers zolang VAR gelijk is aan 1 gebeurt er niets meer.
Als het licht wordt veranderd de VAR weer naar 0 en zal bij de volgende keer donker worden weer de lichten schakelen.
Zelf gebruik is deze manier in LUA een lichtplan en gebruik dan nog meerdere variabele waardes. Als ik bv het huis verlaat verhoog ik de VAR naar 2. Bij thuiskomt weet het systeem dan dat er iemand thuis komt en springen alle lampen aan en past de VAR weer aan.
Het beste kun je de variabele waarde veranderen met een JSON regel dat werkt het meest betrouwbaar volgens mij in blocky.
In Blocky kies je voor
Open URL en dan iets als
code:
1
| 192.168.1.120:8080/json.htm?type=command¶m=updateuservariable&idx=3&vname= Thuis_komen_licht_aan&vtype= integer&vvalue=2 |
Wat uitleg over de url
IDX3 = de idx van de variabele
Thuis_komen_licht_aan = De naam van de variabele
type = type variabele
vvalue= waarde die de variabele moet krijgen
In het topic is ook veel info te vinden over het schakelen met variabelen mocht je meer voorbeelden zoeken.