Ik heb momenteel een mooi LUA script draaien welke de screens regelt. Ik heb er onder andere in verwerkt:
- Buienradar voorspelling
- Windsneldheid (Weather Underground)
- Windvlaag (Weather Underground)
- Lux waarde (Fibaro Motion sensor)
- Temperatuur (Weather Underground)
- Manual Override
- Privacy mode (in de avond 50% omlaag)
Nu werkt dit allemaal prima maar wil graag nog een ding voor elkaar krijgen.
Als ik het LUX gedeelte uit het script haal krijg ik samengevat het onderstaande script:
(
Let op dit script zal niet werken omdat de weer data niet wordt verkregen).
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| commandArray = {}
time = os.date("*t")
minutes = time.min + time.hour * 60
sLUX = tonumber(otherdevices_svalues['Lux Buiten'])
if (otherdevices['Screen Groot'] == 'Open'
and sRain_corrected < 1
and sWeatherTemp > 15.0
and sLUX > 20000
and sWindSpeed < 20
and sWindGust < 60)
then
print ('De zon schijnt --> Screens gaan omlaag')
commandArray['SendNotification']='Screens#De zon schijnt --> Screens gaan omlaag'
commandArray['Scene:Screens 100%']='On'
end
if tonumber(otherdevices_svalues['Screen Groot']) > 5 and sLUX < 8000
then
print('<b style="color:red">De zon verdwijnt '.. sLUX ..'Lux --> Screens gaan omhoog</b>')
commandArray['SendNotification']='Screens#De zon verdwijnt '.. sLUX ..'Lux --> Screens gaan omhoog'
commandArray['Scene:Screens 0%']='On'
end
return commandArray |
Wat dus nu gebeurd is dat als het licht sterk genoeg is (20000 Lux) gaan meteen de screens omlaag.
is het licht te zwak gaan ze meteen omhoog. Zou hierna het licht weer sterk zijn gaan ze weer omlaag. Dit is natuurlijk niet wenselijk.
Wat ik dan ook graag zou willen is een soort counter. Als de lux boven de 20000 komt moet er eerst gekeken worden of dit voor de komende 5 minuten ook zo blijft... Hierna mogen de screens pas omlaag gaan. Maar als in de tussentijd de lux weer gedaald is mogen ze niet omlaag gaan.
Andersom dan het zelfde.
EDIT: Ik was zelf aan het denken aan een virtual switch met een in en uitschakelvertraging. Maar volgens mij als je deze triggert zal hoe dan ook de switch aan of uit gaan na de ingestelde vertraging. Dat zal niet gaan werken. Je kunt deze actie namelijk niet annuleren.
Kan iemand mij een zet in de goede richting geven?
[
Voor 4% gewijzigd door
Brutuss op 25-07-2015 14:04
]