Easy to use, 100% Lua-based event scripting framework.
Moderator: leecollings
yazul
Posts: 3 Joined: Monday 13 January 2020 19:38
Target OS: Raspberry Pi / ODroid
Domoticz version: 4.10717
Location: Lyon, France
Contact:
Post
by yazul » Monday 13 January 2020 19:45
Hi, everybody !
i don't understand why this sample script fails : user variable "presence_globale" doesn't matches the pattern "presence-*" ?
Code: Select all
return {
active= true,
on = {
variables= {
"presence-*"
}
},
logging= {
level= domoticz.LOG_DEBUG
},
execute = function(domoticz, variable)
domoticz.log("trigger variable "..variable.name.." = "..tostring(variable.value).." changed "..tostring(variable.changedalue));
end
}
here is the log :
2020-01-13 07:56:32.830 Status: dzVents: Info: Handling variable-events for: "presence_globale", value: "1"
2020-01-13 07:56:32.830 Status: dzVents: Info: ------ Start external script: essai.lua: Variable: "presence_globale" Index: 29
2020-01-13 07:56:32.830 Status: dzVents: Info: trigger variable presence_globale = 1 changed nil
2020-01-13 07:56:32.830 Status: dzVents: Info: ------ Finished essai.lua
My version :
Version: 4.10717
Build Hash: b38b49e
Compile Date: 2019-05-09 13:04:08
dzVents Version: 2.4.19
waaren
Posts: 6028 Joined: Tuesday 03 January 2017 14:18
Target OS: Linux
Domoticz version: Beta
Location: Netherlands
Contact:
Post
by waaren » Monday 13 January 2020 20:05
yazul wrote: ↑ Monday 13 January 2020 19:45
i don't understand why this sample script fails : user variable "presence_globale" doesn't matches the pattern "presence-*" ?
From the script I cannot determine what it should print but changedalue does not exist as a valid method or attribute of an object of type variable. That is why you see nil.
See below script and some output of it. It might point you in the right direction.
Code: Select all
--[[
dz Essai
--]]
return {
active= true,
on = {
variables= {
"presence-*"
}
},
logging= {
level= domoticz.LOG_DEBUG
},
execute = function(domoticz, variable)
-- changedalue does not exist as a valid method or attribute of an objkect of type variable
-- domoticz.log("trigger variable "..variable.name.." = "..tostring(variable.value).." changed " .. tostring(variable.changedalue));
domoticz.utils.dumpTable(variable)
domoticz.log("trigger variable "..variable.name.." = ".. tostring(variable.value).." changed ",domoticz.LOG_DEBUG)
end
}
log when triggered by setting variable to integer 6
Spoiler: show Code: Select all
2020-01-13 09:19:19.808 Status: dzVents: Info: Handling variable-events for: "presence-test", value: "6"
2020-01-13 09:19:19.808 Status: dzVents: Info: ------ Start internal script: dz Essai : Variable: "presence-test" Index: 2
2020-01-13 09:19:19.808 Status: dzVents: > nValue: 6
2020-01-13 09:19:19.808 Status: dzVents: > set()
2020-01-13 09:19:19.808 Status: dzVents: > isHTTPResponse: false
2020-01-13 09:19:19.808 Status: dzVents: > isGroup: false
2020-01-13 09:19:19.808 Status: dzVents: > lastUpdate:
2020-01-13 09:19:19.810 Status: dzVents: > name: presence-test
2020-01-13 09:19:19.810 Status: dzVents: > value: 6
2020-01-13 09:19:19.810 Status: dzVents: > isVariable: true
2020-01-13 09:19:19.810 Status: dzVents: > rename()
2020-01-13 09:19:19.810 Status: dzVents: > isTimer: false
2020-01-13 09:19:19.810 Status: dzVents: > type: integer
2020-01-13 09:19:19.810 Status: dzVents: > id: 2
2020-01-13 09:19:19.810 Status: dzVents: > isSecurity: false
2020-01-13 09:19:19.810 Status: dzVents: > changed: true
2020-01-13 09:19:19.810 Status: dzVents: > isScene: false
2020-01-13 09:19:19.810 Status: dzVents: > baseType: variable
2020-01-13 09:19:19.810 Status: dzVents: > isDevice: false
2020-01-13 09:19:19.810 Status: dzVents: Debug: trigger variable presence-test = 6 changed
2020-01-13 09:19:19.810 Status: dzVents: Info: ------ Finished dz Essai
log when triggered by setting variable to string 'present'
Spoiler: show Code: Select all
2020-01-13 09:22:19.358 Status: dzVents: Info: Handling variable-events for: "presence-test string", value: "present"
2020-01-13 09:22:19.358 Status: dzVents: Info: ------ Start internal script: dz Essai: Variable: "presence-test string" Index: 3
2020-01-13 09:22:19.358 Status: dzVents: > value: present
2020-01-13 09:22:19.359 Status: dzVents: > isSecurity: false
2020-01-13 09:22:19.359 Status: dzVents: > id: 3
2020-01-13 09:22:19.359 Status: dzVents: > type: string
2020-01-13 09:22:19.359 Status: dzVents: > isTimer: false
2020-01-13 09:22:19.359 Status: dzVents: > isVariable: true
2020-01-13 09:22:19.361 Status: dzVents: > set()
2020-01-13 09:22:19.361 Status: dzVents: > isDevice: false
2020-01-13 09:22:19.361 Status: dzVents: > isScene: false
2020-01-13 09:22:19.361 Status: dzVents: > isHTTPResponse: false
2020-01-13 09:22:19.361 Status: dzVents: > isGroup: false
2020-01-13 09:22:19.361 Status: dzVents: > rename()
2020-01-13 09:22:19.361 Status: dzVents: > name: presence-test string
2020-01-13 09:22:19.361 Status: dzVents: > baseType: variable
2020-01-13 09:22:19.361 Status: dzVents: > changed: true
2020-01-13 09:22:19.361 Status: dzVents: Debug: trigger variable presence-test string = present changed
2020-01-13 09:22:19.361 Status: dzVents: Info: ------ Finished dz Essai
Debian buster, bullseye on RPI-4, Intel NUC.
dz Beta, Z-Wave, RFLink, RFXtrx433e, P1, Youless, Hue, Yeelight, Xiaomi, MQTT
==>>
dzVents wiki
yazul
Posts: 3 Joined: Monday 13 January 2020 19:38
Target OS: Raspberry Pi / ODroid
Domoticz version: 4.10717
Location: Lyon, France
Contact:
Post
by yazul » Wednesday 15 January 2020 17:21
waaren wrote: ↑ Monday 13 January 2020 20:05
yazul wrote: ↑ Monday 13 January 2020 19:45
i don't understand why this sample script fails : user variable "presence_globale" doesn't matches the pattern "presence-*" ?
From the script I cannot determine what it should print but changedalue does not exist as a valid method or attribute of an object of type variable. That is why you see nil.
Thanks for your answer...
The problem (except changedalue, sorry for that) is :
i want to select only variables beginning with "presence-".
But the script is triggered for "presence_globale" wich doesn't begin with the search pattern...
hyphen is not underscore !
what did i missed ?
waaren
Posts: 6028 Joined: Tuesday 03 January 2017 14:18
Target OS: Linux
Domoticz version: Beta
Location: Netherlands
Contact:
Post
by waaren » Wednesday 15 January 2020 17:42
yazul wrote: ↑ Wednesday 15 January 2020 17:21
The problem (except changedalue, sorry for that) is : i want to select only variables beginning with "presence-".
But the script is triggered for "presence_globale" wich doesn't begin with the search pattern... what did i missed ?
You did not miss anything. This is a bug that existed in the code until some months ago. It was corrected in a recent beta
Debian buster, bullseye on RPI-4, Intel NUC.
dz Beta, Z-Wave, RFLink, RFXtrx433e, P1, Youless, Hue, Yeelight, Xiaomi, MQTT
==>>
dzVents wiki
yazul
Posts: 3 Joined: Monday 13 January 2020 19:38
Target OS: Raspberry Pi / ODroid
Domoticz version: 4.10717
Location: Lyon, France
Contact:
Post
by yazul » Thursday 16 January 2020 11:26
Thanks
Users browsing this forum: No registered users and 1 guest