Ik ben inmiddels weer eens even verder gegeaan met mijn domoticz project.
Door een frisse nieuwe blik op de zaak, (en iets meer kennis). Kom ik erachter dat er iets in mijn code niet klopt.
Onderstaand de code waarmee ik hier op dit forum geholpen ben.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| return {
on = {
devices = {
'Overloop | Neo Coolcam Sensor'
},
},
execute = function(domoticz, device)
local Time = require('Time') --Time function
local CurrentTime = Time() --Current time
if (device.state == 'On' and (domoticz.devices('Overloop | Neo Coolcam Lux').lux < 70) and domoticz.time.matchesRule('between 07:00 and 19:59')) then
domoticz.devices('Lamp Overloop').dimTo(70).checkFirst()
elseif (device.state == 'On' and (domoticz.devices('Overloop | Neo Coolcam Lux').lux < 70) and domoticz.time.matchesRule('between 20:00 and 23:58')) then
domoticz.devices('Lamp Overloop').dimTo(40).checkFirst()
elseif (device.state == 'On' and (domoticz.devices('Overloop | Neo Coolcam Lux').lux < 70) and domoticz.time.matchesRule('between 23:59 and 06:59')) then
domoticz.devices('Lamp Overloop').dimTo(10).checkFirst()
else
domoticz.devices('Lamp Overloop').switchOff().checkFirst()
end
end
} |
Nou is het alleen zo dat wat foutmeldingen krijg in mijn log (zie onderstaand).
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| All
Status
Filter: X
2019-09-18 08:48:17.121 (Z-Stick Gen 5) Light/Switch (Alarm Type)
2019-09-18 08:48:17.123 (Z-Stick Gen 5) Light/Switch (Alarm Level)
2019-09-18 08:48:17.124 (Z-Stick Gen 5) General/Alarm (Alarm Type: Burglar 7 (0x07))
2019-09-18 08:48:17.127 (Z-Stick Gen 5) Light/Switch (Burglar)
2019-09-18 08:48:17.145 (Z-Stick Gen 5) Light/Switch (Overloop | Neo Coolcam Sensor)
2019-09-18 08:48:17.328 (Philips hue bridge) Color Switch (Lamp Overloop)
2019-09-18 08:48:17.263 Status: dzVents: Info: Handling events for: "Overloop | Neo Coolcam Sensor", value: "On"
2019-09-18 08:48:17.263 Status: dzVents: Info: ------ Start internal script: Bewegingssensor Overloop: Device: "Overloop | Neo Coolcam Sensor (Z-Stick Gen 5)", Index: 3
2019-09-18 08:48:17.265 Status: dzVents: Error (2.4.19): An error occured when calling event handler Bewegingssensor Overloop
2019-09-18 08:48:17.265 Status: dzVents: Error (2.4.19): ...s/dzVents/generated_scripts/Bewegingssensor Overloop.lua:13: attempt to call field 'checkFirst' (a nil value)
2019-09-18 08:48:17.266 Status: dzVents: Info: ------ Finished Bewegingssensor Overloop
2019-09-18 08:48:17.266 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2019-09-18 08:48:23.844 (Philips hue bridge) Color Switch (Group Group for wakeup)
2019-09-18 08:48:23.848 (Philips hue bridge) Color Switch (Group Overloop)
2019-09-18 08:48:23.872 (Philips hue bridge) Lux (ZLLLightLevel Lux Hue ambient light sensor 2) |
Heeft iemand enig idee waar deze foutmelding door is ontstaan? Volgens mijn eigen kennis zou alles namelijk moeten kloppen zo?
Ik wil trouwens ook kijken hoe ik deze code verder kan verfijnen en efficienter/beter kan maken.
Ik zie wel eens het één en ander voorbij komen over Timetable. Is dat wat ik in deze situatie het best kan gebruiken?
Daarnaast zou ik nog stees willen dat ik een periode aan kan geven dat de lamp aan blijft staan (nu is dat 30 seconden) Het blijft echter een probleem als ik een tijd aan de lamp koppel, want de sensor reageert dan pas weer 30 seconden (de standaard interval van de sensor) nadat de lamp uit is gegaan.
Onderstaand nog een code die (volgens iemand op domoticz forum) wel zou moeten werken. Dit is overigens geen post geweest van mij) Maar ook hier gaan de lampen gewoon uit, en duurt het weer 30 seconden voordat de sensor reageert.
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
31
32
33
| return {
on = { devices = { "Woonkamer | Neo Coolcam Sensor" }
},
logging = {
level = domoticz.LOG_DEBUG,
marker = "Toilet beweging"
},
execute = function(dz, item)
local function logWrite(str,level)
dz.log(str,level or dz.LOG_DEBUG)
end
-- local Lux = dz.devices("Toilet | Neo Coolcam Lux").lux
local LuxDevice = dz.devices('Woonkamer | Neo Coolcam Lux') -- <<<--- replace xxx by IDX or name of your Lux device
local Lux = LuxDevice.lux
-- local Lights = dz.devices("Spot toilet raam")
local Lights = dz.devices('Spot toilet raam') -- <<<--- replace xxx by IDX or name of your lights
logWrite(LuxDevice.name .. " ==>> Lux: " .. Lux )
logWrite(Lights.name .. " ==>> State: " .. Lights.state)
logWrite(item.name .. " ==>> State: " .. item.state)
if Lux < 130 and item.state == "On" then
Lights.cancelQueuedCommands()
Lights.switchOn().checkFirst()
elseif item.state == "Off" and Lights.state == "On" then
Lights.switchOff().afterSec(180).checkFirst()
end
end
} |