This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

Processing KNX Addresses
#8
Use this as a starting point and fill in the blanks Smile

1. inputgroup maps group address to group id. groupobjects contains group address to value map for each group id. If object is not found then it won't be added.
Code:
local inputgroup = {}
local groupobjects = {}

for i = 1, 60 do
  groupobjects[ i ] = {}

  for j = 11, 241, 10 do
    local addr = i .. "/2/" .. j
    local value = grp.getvalue(addr)

    if value ~= nil then
      inputgroup[ addr ] = i
      groupobjects[ i ][ addr ] = value
    end
  end
end

2. In groupwrite handler check if destination group address belongs to a certain group id. If so then new value is cached and updategroup is called.
Code:
local addr = event.dst
local group = inputgroup[ addr ]

if group then
  local value = tonumber(event.datahex, 16) ~= 0
  groupobjects[ group ][ addr ] = value
  updategroup(group)
end

3. updategroup checks if there's at least one group address in the group that is on (true). Place this function before the groupwrite handler.
Code:
local function updategroup(group)
  local objects = groupobjects[ group ]
  local groupon = false

  for addr, value in pairs(objects) do
    if value then
      groupon = true
      break
    end
  end

  log(groupon)
end

For outputs you can simply use grp.checkwrite to prevent sending the same values.
Reply


Messages In This Thread
Processing KNX Addresses - by AISystem - 10.05.2023, 07:13
RE: Processing KNX Addresses - by admin - 10.05.2023, 07:30
RE: Processing KNX Addresses - by AISystem - 10.05.2023, 08:24
RE: Processing KNX Addresses - by admin - 10.05.2023, 08:49
RE: Processing KNX Addresses - by AISystem - 10.05.2023, 11:50
RE: Processing KNX Addresses - by admin - 10.05.2023, 11:51
RE: Processing KNX Addresses - by AISystem - 10.05.2023, 12:05
RE: Processing KNX Addresses - by admin - 10.05.2023, 12:33
RE: Processing KNX Addresses - by AISystem - 10.05.2023, 14:21
RE: Processing KNX Addresses - by admin - 11.05.2023, 05:59
RE: Processing KNX Addresses - by AISystem - 11.05.2023, 07:28
RE: Processing KNX Addresses - by admin - 11.05.2023, 12:18
RE: Processing KNX Addresses - by AISystem - 22.05.2023, 11:29
RE: Processing KNX Addresses - by admin - 22.05.2023, 12:01
RE: Processing KNX Addresses - by AISystem - 25.05.2023, 07:14
RE: Processing KNX Addresses - by AISystem - 29.05.2023, 08:55
RE: Processing KNX Addresses - by admin - 29.05.2023, 09:41
RE: Processing KNX Addresses - by AISystem - 29.05.2023, 10:33
RE: Processing KNX Addresses - by admin - 29.05.2023, 10:58
RE: Processing KNX Addresses - by AISystem - 29.05.2023, 11:23
RE: Processing KNX Addresses - by admin - 29.05.2023, 11:48

Forum Jump: