KNX device monitoring

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 #

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 #

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