Ik gebruik diverse scripts voor verlichting aan/uit te kunnen zetten.
Probleem is dat ik gebruik maak van gebruikervariabelen in Domoticz zodat ik altijd controle heb over de schakeling en voorkomen dat iets gaat pendelen. Dit werkt zeer stabiel voor ruim 1.5 jaar.
Maar het probleem is dat bovenstaand scenario prima werkt maar gebruik sinds kort ook HomeHabit en daar zet je dan de lamp in de App om deze aan/uit te zetten. Werkt ook prima.
Nadeel is alleen dat hierdoor onderstaand script wordt overgeslagen omdat de lamp direct wordt geschakeld en de status van de switch dus niet veranderd en dus ook niet de variabelen. Hierdoor klopt de status niet meer.
Stel ik zet de lamp aan met de App (
switch_state_tuinhek blijft dus status OFF houden na aanzetten) en later wil ik de lamp uitzetten met de Round Switch dan werkt deze niet omdat switch_state_tuinhek OFF heeft ipv ON. Ik moet dan 2x klikken om de variabelen weer goed te krijgen.
Nu kan ik de switch ook toevoegen aan de App maar dit werkt gewoon niet echt lekker om daarmee de lamp te schakelen.
Iemand een idee/tip waarmee ik de gebruikersvariabelen kan switchen ook als ik de lamp zelf via een Gui aanzetten.
Dacht eerst aan de On Action manier maar dan moet ik per lamp 2 scripts gaan aanmaken bij On Action en Off Action. Niet echt handig. Mogelijk dat ik Json (/json.htm?type=command¶m=updateuservariable&vname=USERVARIABLENAME&vtype=USERVARIABLETYPE&vvalue=USERVARIABLEVALUE) regel kan toevoegen om de variabelen direct te schakelen maar ook dat is niet echt een handige manier.
Voorbeeld
Onderstaand 1 van de script. Deze schakelt een lamp bij een brug over de sloot als ik met de hond ga lopen. 1x klikken en de lamp blijft aan tot ik deze uitzetten. Dubbelklik zorgt ervoor dat de lamp 2 minuten blijft branden.
Mocht het niet donker zijn (met lux sensor) dan werkt de lamp niet. Hiermee voorkom ik dat de switch per ongeluk wordt ingedrukt en de lamp de gehele dag brand.
Hardware
1x Xiaomi Round Switch
1x Action Wifi Smart plug met Tasmota
Script wat af gaat als de Round Switch 1x of dubbelklik wordt uitgevoerd.
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
27
28
29
30
| local isdark_switch = 'State - IsDonker'
commandArray = {}
if devicechanged['Xiaomi Tuinhek'] then
if (devicechanged['Xiaomi Tuinhek'] == 'Click' and otherdevices['Vakantie'] == 'Off' and otherdevices[isdark_switch] == 'On' and otherdevices['Zon op-onder'] == 'On' and uservariables['switch_state_tuinhek'] == 'Off') then
commandArray['Lamp bij Tuinhek']='On'
commandArray['Variable:switch_state_tuinhek']= 'On'
print('<font color="blue">Lamp bij Tuinhek is aan!!</font>')
elseif (devicechanged['Xiaomi Tuinhek'] == 'Click' and otherdevices[isdark_switch] == 'Off' and otherdevices['Zon op-onder'] == 'Off' and uservariables['switch_state_tuinhek_double'] == 'Off') then
print('<font color="blue">Lamp bij Tuinhek gaat NIET aan, het is niet donker genoeg!!</font>')
elseif (devicechanged['Xiaomi Tuinhek'] == 'Double Click' and uservariables['switch_state_tuinhek_double'] == 'Off') then
commandArray['Lamp bij Tuinhek']='On FOR 2'
commandArray['Variable:switch_state_tuinhek_double']= 'On'
print('<font color="blue">Lamp bij Tuinhek is aan voor 2 minuten!!</font>')
commandArray['Variable:switch_state_tuinhek_double']= 'Off'
commandArray['Variable:switch_state_tuinhek']= 'Off'
elseif (devicechanged['Xiaomi Tuinhek'] == 'Click' and uservariables['switch_state_tuinhek'] == 'On') then
commandArray['Lamp bij Tuinhek']='Off'
commandArray['Variable:switch_state_tuinhek']= 'Off'
commandArray['Variable:switch_state_tuinhek_double']= 'Off'
print('<font color="blue">Lamp bij Tuinhek is uit!!</font>')
end
end
return commandArray |