46 lines
993 B
Plaintext
46 lines
993 B
Plaintext
local myResponse
|
|
|
|
return {
|
|
on = {
|
|
devices = {
|
|
'test'
|
|
},
|
|
shellCommandResponses = {
|
|
'myResponse', -- must match with the callback passed to the executeShellCommand
|
|
},
|
|
},
|
|
logging = {
|
|
level = domoticz.LOG_INFO,
|
|
marker = 'template',
|
|
},
|
|
execute = function(domoticz, item)
|
|
|
|
if (item.isDevice) then
|
|
domoticz.executeShellCommand({
|
|
command = 'speedtest-cli --json', -- just an example
|
|
callback = 'myResponse', -- see shellCommandResponses above.
|
|
timeout = 50, -- Max runtime 50 seconds
|
|
})
|
|
end
|
|
|
|
if (item.isShellCommandResponse) then
|
|
|
|
if (item.statusCode==0) then
|
|
if (item.isJSON) then
|
|
|
|
domoticz.log('Download speed is '.. item.json.download,domoticz.LOG_INFO) -- just an example
|
|
|
|
-- update some device in Domoticz
|
|
domoticz.devices('myTextDevice').updateText(someValue)
|
|
end
|
|
else
|
|
domoticz.log('There was a problem handling the request', domoticz.LOG_ERROR)
|
|
domoticz.log(item, domoticz.LOG_ERROR)
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
}
|
|
|