As I’m renting out part of my house, it’s important for me to know if anyone tries to tamper with the smoke-alarms. Fibaro smoke sensor has a tamper-switch, but it doesn’t look like Telldus Live supports an event for the tamper yet – or I don’t know how to.
So my goal was to try writing a LUA-script for the first time, and this is the result:
-- File: SmokeSensor.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 and cmdClass == 113) then
if list.len(data) < 7 then
return
end
-- data[4] is the notification type
-- data[5] is the status.
-- Notification type 7 is "Home Security"
-- Status for notification type 7:
-- 0: Event inactive
-- 3: Tampering, Product covering removed
local notification_type = data[4]
local status = data[5]
-- print("Device: %s", smokesensor)
print("Device: %s. Flags: %s. cmdClass: %s. cmd: %s. Data: %s", device, flags, cmdClass, cmd, data)
print("Notification type: %s. Status: %s", notification_type, status)
if (notification_type == 7) then
if (status == 0) then
print("Event inactive")
elseif (status == 3) then
print("Tampering, Product covering removed")
end
end
end
end
I don’t have any documentation for the data-parameters, so I’m not sure how stable this script is yet. Please see this forum thread for any updates: http://forum.telldus.com/viewtopic.php?f=16&t=6436. I’ll try to update this article also, if I change anything.
I’m not sure how to report which smoke sensor has been tampered with. The only way I see right now, is to create a dummy device for each smoke sensor, and an event for each dummy device. Maybe I’ll split up my home i zones or apartment to prevent having to many devices and events. It would be great if Telldus would allow triggering event or URL directly from the LUA-script.

