I'm new to LUA, but after some testing I kinda got it working. But I'm not sure how to interpret the data and documentation.
So far I have found two values changing while triggering the tamper. I'm guessing the cmd is equal to the association?
My current script:
Code: Select all
-- File: SmokeSenor.lua
-- Define the names on your devices here:
local smokesensor = "SmokeSensorTest"
local deviceManager = require "telldus.DeviceManager"
function onZwaveMessageReceived(device, flags, cmdClass, cmd, data)
if device:name() ~= smokesensor then
return
end
if cmd == 5 then
-- if cmdClass == 113 then
local tamper1 = data[5]
local tamper2 = data[6]
print("Device: %s. Flags: %s. cmdClass: %s. cmd: %s. Data: %s", device, flags, cmdClass, cmd, data)
if tamper1 == 0 then
print("Smokedetector (tamper1) closed")
elseif tamper1 == 3 then
print("Smokedetector (tamper1) open")
end
if tamper2 == 1 then
print("Smokedetector (tamper2) closed")
elseif tamper2 == 0 then
print("Smokedetector (tamper2) open")
end
end
end
Can anyone help me interpret the values to any documentation? Any idea why it sends two commands for each?Device: <zwave.telldus.DeviceNode.DeviceNode object at 0x1107480>. Flags: 256. cmdClass: 113. cmd: 5. Data: [0, 0, 0, 255, 7, 3, 0]
Smokedetector (tamper1) open
Smokedetector (tamper2) open
Device: <zwave.telldus.DeviceNode.DeviceNode object at 0x1107480>. Flags: 0. cmdClass: 113. cmd: 5. Data: [0, 0, 0, 255, 7, 3, 0]
Smokedetector (tamper1) open
Smokedetector (tamper2) open
Device: <zwave.telldus.DeviceNode.DeviceNode object at 0x1107480>. Flags: 256. cmdClass: 113. cmd: 5. Data: [0, 0, 0, 255, 7, 0, 1, 3]
Smokedetector (tamper1) closed
Smokedetector (tamper2) closed
Device: <zwave.telldus.DeviceNode.DeviceNode object at 0x1107480>. Flags: 0. cmdClass: 113. cmd: 5. Data: [0, 0, 0, 255, 7, 0, 1, 3]
Smokedetector (tamper1) closed
Smokedetector (tamper2) closed
Her is the full output, without checking for cmd 5:
OPEN
Device: <zwave.telldus.DeviceNode.DeviceNode object at 0x1107480>. Flags: 256. cmdClass: 113. cmd: 5. Data: [0, 0, 0, 255, 7, 3, 0]
Device: <zwave.telldus.DeviceNode.DeviceNode object at 0x1107480>. Flags: 0. cmdClass: 86. cmd: 1. Data: [113, 5, 0, 0, 0, 255, 7, 3, 0, 52, 115]
Device: <zwave.telldus.DeviceNode.DeviceNode object at 0x1107480>. Flags: 0. cmdClass: 113. cmd: 5. Data: [0, 0, 0, 255, 7, 3, 0]
Device: <zwave.telldus.DeviceNode.DeviceNode object at 0x1107480>. Flags: 8. cmdClass: 156. cmd: 2. Data: [11, 0, 255, 0, 0]
Device: <zwave.telldus.DeviceNode.DeviceNode object at 0x1107480>. Flags: 0. cmdClass: 156. cmd: 2. Data: [11, 0, 255, 0, 0]
CLOSE
Device: <zwave.telldus.DeviceNode.DeviceNode object at 0x1107480>. Flags: 256. cmdClass: 113. cmd: 5. Data: [0, 0, 0, 255, 7, 0, 1, 3]
Device: <zwave.telldus.DeviceNode.DeviceNode object at 0x1107480>. Flags: 0. cmdClass: 86. cmd: 1. Data: [113, 5, 0, 0, 0, 255, 7, 0, 1, 3, 95, 213]
Device: <zwave.telldus.DeviceNode.DeviceNode object at 0x1107480>. Flags: 0. cmdClass: 113. cmd: 5. Data: [0, 0, 0, 255, 7, 0, 1, 3]
Device: <zwave.telldus.DeviceNode.DeviceNode object at 0x1107480>. Flags: 8. cmdClass: 156. cmd: 2. Data: [11, 0, 0, 0, 0]
Device: <zwave.telldus.DeviceNode.DeviceNode object at 0x1107480>. Flags: 0. cmdClass: 156. cmd: 2. Data: [11, 0, 0, 0, 0]