KNX device monitoring #
KNX device monitoring via status objects #
The following scheduled script pings KNX devices and sends device status to group addresses.
Scheduled script #

Modify the addrs table as needed.
Left side (key) is an individual address, right side (value) is a status group address.
-- 1.1.22 - physical address of the knx device
-- 42/1/1 - group address to monitor status of knx device
addrs = {
['1.1.22'] = '42/1/1',
['1.1.23'] = '42/1/2',
['1.1.24'] = '42/1/3',
}
for ia, ga in pairs(addrs) do
res = buslib.ping(ia)
grp.checkupdate(ga, res) -- true = online / false = offline
os.sleep(1)
end
KNX motion sensor monitoring via email #
The following scheduled script pings KNX motion sensors, turns off the status group address if the sensor is not responding and sends an email if at least one device is not responding.
Set SMTP server and other parameters #
Edit mail function parameters in Scripting > Common functions.
Scheduled script #

Modify the devices table as needed.
-- 1.1.22 - physical address of the knx device
-- 42/1/1 - motion detector status group address
devices = {
{ address = '1.1.22', motion = '42/1/1' },
{ address = '1.1.23', motion = '42/1/2' },
{ address = '1.1.24', motion = '42/1/3' },
}
content = {}
for _, dev in ipairs(devices) do
result = buslib.ping(dev.address)
if result == false then
table.insert(content, 'Motion Detector - Address: ' .. dev.address .. ' - <b>IS OFFLINE!</b>')
grp.checkwrite(dev.motion, false) -- turn off motion detector if the device is not responding
end
os.sleep(1)
end
if #content > 0 then
message = table.concat(content, '<br>\n')
res, err = mail('user@example.com', 'KNX Installation Fault', message)
end