Phoolie schreef op dinsdag 13 februari 2018 @ 22:07:
[...]
Of zo’n pendelend verhaal gaat lukken durf ik je niet te zeggen. Maar moet het niet mogelijk zijn om iedere keer dat je dubbel klikt er 10% bij te doen? Dan kom je wel in de buurt van wat je wilt en wellicht kun je van daaruit je script verder proberen uit te bouwen.
M.v.Veelen schreef op dinsdag 13 februari 2018 @ 22:23:
[...]
Is ook een idee. En dat hij bij de 100% weer begint bij 10% of weer terug telt naar 90%, 80%, enz.
Alleen.....ik heb geen idee waar te beginnen. Wel wat pogingen gedaan adhv andere scripts, maar nooit een werkend script kunnen maken hiervoor helaas.
Ik heb het niet per 10% gedaan maar 2 verschillende states met de "Double Click":
- 50%
- 100%
Enkele "Click" is aan/uit (toggle).
Om per 10% te gaan werken moet je denk ik met een UserVariable gaan werken. 10% is misschien ook iets te ambitieus, 20% is wat realistischer en sneller om te handelen. Vergeet ook niet dat als je te veel op die knop blijft rammen de Gateway tegen je begint te lullen.
De UserVariable is nodig omdat je zo ver ik weet met LUA niet een "Set Level" kan uitlezen of als "If" kan gebruiken.
EDIT:
Heb het werkend in etappes van 20%
in het kort:
Als de lamp uit staat en er een klik plaats vind gaat de lamp aan op 100%. Vervolgens kan je met een dubbele klik dimmen in etappes van 20%. Indien dimlevel op 20% staat en een dubbel klik plaats vind dat gaat de lamp terug naar 100% level.
Als de lamp uit staat en er een dubbele klik plaats vind gaat de lamp aan op 50%. Vervolgens kan je met een dubbele klik naar 100% en vervolgens weer de etappes van 20% volgen. Je kan ook een enkele klik doen waardoor de lamp weer uit gaat, ook als die op 50% dimlevel aan staat.
Je moet 2 UserVariables aanmaken:
xiaomi_status (integer 0)
xiaomi_dual_button (integer 0)
Ik hoop de dat LUA code duidelijk genoeg is (let vooral op de "single" en "double". Deze heb ik namelijk aangepast in mijn Domoticz naar Nederlandse waarden, dat is niet standaard en dien je aan te passen naar “Click” en “Double Click”.)
Lua:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
| -- Set some local variables
local statusvar = 'xiaomi_status' -- Status Variable
local percentagevar = 'xiaomi_dual_button' -- Percentage Variable
local lamp = 'Keuken RGB' -- The lightbulb that you want to control
local switch = 'Keuken knop' -- The Xiaomi (dual) smart button
local single = "Klik" -- Name of the single click (the name of Level 10)
local double = "Dubbel Klik" -- Name of the double click (the name of Level 20)
commandArray = {}
if
devicechanged[switch] == single then
if (otherdevices[lamp]=='On') then
commandArray[lamp]='Off'
commandArray['Variable:' .. statusvar]='0'
commandArray['Variable:' .. percentagevar]='0'
elseif
(otherdevices[lamp]=='Off') then
commandArray[lamp]='Set Level 100'
commandArray['Variable:' .. statusvar]='1'
commandArray['Variable:' .. percentagevar]='100'
else
commandArray[lamp]='Off'
commandArray['Variable:' .. statusvar]='0'
commandArray['Variable:' .. percentagevar]='0'
end
end
if
devicechanged[switch] == double then
if (otherdevices[lamp]=='On') then
commandArray[lamp]='Off'
commandArray['Variable:' .. statusvar]='0'
commandArray['Variable:' .. percentagevar]='0'
elseif
(otherdevices[lamp]=='Off') then
commandArray[lamp]='Set Level 100'
commandArray['Variable:' .. statusvar]='1'
commandArray['Variable:' .. percentagevar]='100'
end
end
if uservariables[statusvar] == 0 and devicechanged[switch] == double then
commandArray[lamp]='Set Level 50'
commandArray['Variable:' .. percentagevar]='50'
commandArray['Variable:' .. statusvar]='1'
elseif uservariables[statusvar] == 1 and uservariables[percentagevar] == 50 and devicechanged[switch] == double then
commandArray[lamp]='Set Level 100'
commandArray['Variable:' .. percentagevar]='100'
elseif uservariables[statusvar] == 1 and uservariables[percentagevar] == 100 and devicechanged[switch] == double then
commandArray[lamp]='Set Level 80'
commandArray['Variable:' .. percentagevar]='80'
elseif
uservariables[statusvar] == 1 and uservariables[percentagevar] == 80 and devicechanged[switch] == double then
commandArray[lamp]='Set Level 60'
commandArray['Variable:' .. percentagevar]='60'
elseif
uservariables[statusvar] == 1 and uservariables[percentagevar] == 60 and devicechanged[switch] == double then
commandArray[lamp]='Set Level 40'
commandArray['Variable:' .. percentagevar]='40'
elseif
uservariables[statusvar] == 1 and uservariables[percentagevar] == 40 and devicechanged[switch] == double then
commandArray[lamp]='Set Level 20'
commandArray['Variable:' .. percentagevar]='20'
elseif
uservariables[statusvar] == 1 and uservariables[percentagevar] == 20 and devicechanged[switch] == double then
commandArray[lamp]='Set Level 100'
commandArray['Variable:' .. percentagevar]='100'
end
return commandArray |
[
Voor 63% gewijzigd door
renedis op 14-02-2018 07:51
]