I've got a Sonoff zigbee mini smart switch (ZBMINI) which controls some lights in the kitchen. ("Keuken verlichting")
I've made a switch in domoticz, using the Hue bridge.
All works fine, but now, I want to use an extra switch (Using RF, KlikAanKlikUit) to also control the sonoff switch. ("Wandschakelaar keuken")
Not very hard to accomplish, by using this code :
Code: Select all
commandArray = {}
for deviceName,deviceValue in pairs(devicechanged) do
if (deviceName=='Wandschakelaar keuken') then
if deviceValue == "On" then
commandArray['Keuken verlichting'] = "On"
elseif deviceValue == "Off" then
commandArray['Keuken verlichting'] = "Off"
end
elseif (deviceName=='Keuken verlichting') then
if deviceValue == "On" then
commandArray['Wandschakelaar keuken'] = "On"
elseif deviceValue == "Off" then
commandArray['Wandschakelaar keuken'] = "Off"
end
end
end
So, I figured I had to make an ajustment in the code using a variable to determine which code must fire.
Therefore I've created a variabele "TriggeredBy"
Code: Select all
commandArray = {}
for deviceName,deviceValue in pairs(devicechanged) do
if (deviceName=='Wandschakelaar keuken') and (uservariables['TriggeredBy'] ~= 'Keuken verlichting') then
commandArray['Variable:TriggeredBy']= 'Wandschakelaar keuken'
if deviceValue == "On" then
commandArray['Keuken verlichting'] = "On"
elseif deviceValue == "Off" then
commandArray['Keuken verlichting'] = "Off"
end
commandArray['Variable:TriggeredBy'] = ' '
elseif (deviceName=='Keuken verlichting') and (uservariables['TriggeredBy'] ~= 'Wandschakelaar keuken') then
commandArray['Variable:TriggeredBy'] = 'Keuken verlichting'
if deviceValue == "On" then
commandArray['Wandschakelaar keuken'] = "On"
elseif deviceValue == "Off" then
commandArray['Wandschakelaar keuken'] = "Off"
end
commandArray['Variable:TriggeredBy'] = ' '
end
end
As you can see I try to clear the variable at the end, but that does not work.
Help is appreaciated.