Although DzVents seems to be powerful, I have to say that I've had more succes with other languages. Nevertheless I want to manage this language finally. Can someone help me with the next code?
I want to convert my mobile phone switches to the amount of people who are at home. At night, I want to trigger the arrival a light to switch on.
Next code gives a log that says who's arriving / leaving. No other logs are given and the User Variable isn't updated. What's wrong?
return {
on = {
devices = {
'Wouter',
'Marieke'
}
},
logging = {
level = domoticz.LOG_DEBUG,
marker = "iemandThuis - "
},
execute = function(domoticz, device, triggerInfo)
local iemandThuis = domoticz.variables('iemandThuis')
local lamp = domoticz.devices('Banklamp')
domoticz.log('Nu is de bezetting: ', iemandThuis.value)
--local lamp = domoticz.devices('Keukentafellamp')
if device.active then
domoticz.log(device.name .. ' is thuis gekomen', domoticz.LOG_INFO)
if iemandThuis.value == 0 then
domoticz.log('nu moet de uservariable 1 worden')
iemandThuis.set(1)
if domoticz.time.isNightTime then
lamp.switchOn().forMin(20)
--lamp.dimLevel(60)
domoticz.log(device.name .. ' is alleen thuis, daarom keukentafellamp aangezet voor 20 minuten')
end
elseif iemandThuis.value == 1 then
iemandThuis.set(2)
end
else domoticz.log(device.name .. ' is vertrokken', domoticz.LOG_INFO)
if iemandThuis == 2 then
domoticz.variables('iemandThuis').set(1)
elseif iemandThuis == 1 then
domoticz.variables('iemandThuis').set(0)
end
end
end
}
domoticz.log(device.name .. ' is thuis gekomen', domoticz.LOG_INFO)
domoticz.log('iemandThuis is ' .. iemandThuis.type .. ' and value ' .. iemandThuis.value, domoticz.LOG_INFO)
Wous wrote: ↑Friday 17 January 2020 22:20
Can someone help me with the next code?
I want to convert my mobile phone switches to the amount of people who are at home. At night, I want to trigger the arrival a light to switch on.
Next code gives a log that says who's arriving / leaving. No other logs are given and the User Variable isn't updated. What's wrong?
return
{
on = {
devices = {
'Wouter',
'Marieke'
}
},
logging =
{
level = domoticz.LOG_DEBUG,
marker = "iemandThuis - "
},
execute = function(domoticz, device, triggerInfo)
local iemandThuis = domoticz.variables('iemandThuis')
local lamp = domoticz.devices('Banklamp')
local WouterThuis = domoticz.devices('Wouter').active and 1 or 0
local MariekeThuis = domoticz.devices('Marieke').active and 1 or 0
local inHouseBefore = iemandThuis.value
local peopleAtHome = WouterThuis + MariekeThuis
--local lamp = domoticz.devices('Keukentafellamp')
domoticz.log('Nu is de bezetting: ' .. iemandThuis.value,domoticz.LOG_INFO)
if device.active then
domoticz.log(device.name .. ' is thuis gekomen', domoticz.LOG_INFO)
if inHouseBefore < 1 and domoticz.time.isNightTime then
lamp.switchOn().forMin(20)
--lamp.dimLevel(60)
domoticz.log(device.name .. ' is alleen thuis, daarom keukentafellamp aangezet voor 20 minuten',domoticz.LOG_INFO )
end
else
domoticz.log(device.name .. ' is vertrokken', domoticz.LOG_INFO)
end
if inHouseBefore ~= peopleAtHome then iemandThuis.set(peopleAtHome) end
end
}
return {
-- Count the attendees, based on the mobile phones (look for Check_presence)
-- On arrival after sunset light is switched on for x minutes.
on = {
devices = {
'switch 1',
'switch 2'
}
},
logging = {
level = domoticz.LOG_INFO,
marker = "iemandThuis - "
},
execute = function(domoticz, device, triggerInfo)
local iemandThuis = domoticz.variables('iemandThuis')
--local lamp = domoticz.devices('Banklamp')
local lamp = domoticz.devices('Keukentafellamp')
if device.active then
domoticz.log(device.name .. ' is thuis gekomen', domoticz.LOG_INFO)
if iemandThuis.value == 0 then
domoticz.log('nu moet de uservariable 1 worden')
iemandThuis.set(1)
if domoticz.time.isNightTime then
lamp.switchOn().forMin(20)
lamp.dimLevel(60)
domoticz.log(device.name .. ' is alleen thuis, daarom keukentafellamp aangezet voor 20 minuten', domoticz.LOG_INFO)
end
elseif iemandThuis.value == 1 then
iemandThuis.set(2)
end
else domoticz.log(device.name .. ' is vertrokken', domoticz.LOG_INFO)
if iemandThuis == 2 then
domoticz.variables('iemandThuis').set(1)
elseif iemandThuis == 1 then
domoticz.variables('iemandThuis').set(0)
end
end
end
}
Wous wrote: ↑Saturday 18 January 2020 9:21
That's it! domoticz.LOG_INFO is needed apparently.. Works as I wanted..
That was not the real issue.
In your code you misplaced
iemandThuis.value
in such a way that it was interpreted as the second parameter of the domoticz.log function (the loglevel) where it supposed to be part of the first parameter (the string to display).
Wous wrote: ↑Friday 17 January 2020 22:20
Although DzVents seems to be powerful, I have to say that I've had more succes with other languages. Nevertheless I want to manage this language finally. Can someone help me with the next code?
I want to convert my mobile phone switches to the amount of people who are at home. At night, I want to trigger the arrival a light to switch on.
Next code gives a log that says who's arriving / leaving. No other logs are given and the User Variable isn't updated. What's wrong?
return {
on = {
devices = {
'Wouter',
'Marieke'
}
},
logging = {
level = domoticz.LOG_DEBUG,
marker = "iemandThuis - "
},
execute = function(domoticz, device, triggerInfo)
local iemandThuis = domoticz.variables('iemandThuis')
local lamp = domoticz.devices('Banklamp')
domoticz.log('Nu is de bezetting: ', iemandThuis.value)
--local lamp = domoticz.devices('Keukentafellamp')
if device.active then
domoticz.log(device.name .. ' is thuis gekomen', domoticz.LOG_INFO)
if iemandThuis.value == 0 then
domoticz.log('nu moet de uservariable 1 worden')
iemandThuis.set(1)
if domoticz.time.isNightTime then
lamp.switchOn().forMin(20)
--lamp.dimLevel(60)
domoticz.log(device.name .. ' is alleen thuis, daarom keukentafellamp aangezet voor 20 minuten')
end
elseif iemandThuis.value == 1 then
iemandThuis.set(2)
end
else domoticz.log(device.name .. ' is vertrokken', domoticz.LOG_INFO)
if iemandThuis == 2 then
domoticz.variables('iemandThuis').set(1)
elseif iemandThuis == 1 then
domoticz.variables('iemandThuis').set(0)
end
end
end
}
So if I want to use your script what value should I change? I use Idetect, and have the values "Is iemand thuis."
My lamp is called ''Woonkamerlamp''
And your Device is your phone I assume? So in my situation Lars Iphone
So like this?
return {
-- Count the attendees, based on the mobile phones (look for Check_presence)
-- On arrival after sunset light is switched on for x minutes.
on = {
devices = {
'Lars Iphone',
'Desiree Huawei'
}
},
logging = {
level = domoticz.LOG_INFO,
marker = "iemandThuis - "
},
execute = function(domoticz, device, triggerInfo)
local iemandThuis = domoticz.variables('Is iemand thuis.')
--local lamp = domoticz.devices('Banklamp')
local lamp = domoticz.devices('Woonkamerlamp')
if device.active then
domoticz.log(device.name .. ' is thuis gekomen', domoticz.LOG_INFO)
if iemandThuis.value == 0 then
domoticz.log('nu moet de uservariable 1 worden')
iemandThuis.set(1)
if domoticz.time.isNightTime then
lamp.switchOn().forMin(20)
lamp.dimLevel(60)
domoticz.log(device.name .. ' is alleen thuis, daarom keukentafellamp aangezet voor 20 minuten', domoticz.LOG_INFO)
end
elseif iemandThuis.value == 1 then
iemandThuis.set(2)
end
else domoticz.log(device.name .. ' is vertrokken', domoticz.LOG_INFO)
if iemandThuis == 2 then
domoticz.variables('iemandThuis').set(1)
elseif iemandThuis == 1 then
domoticz.variables('iemandThuis').set(0)
end
end
end
}