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.

222.100 datatype on 6 bytes
#13
cool, great idea !

Your a genious !
I would not have this idea at all !!!

So for my script if I tag all 6byte with "knxBacnet"

and a script:

Code:
if event.src ~= 'local' then   -- get 3 adress from 6bytes adress   addr = event.dst     last = tonumber(addr:split('/')[3])     off = last * 3     addr1 = '3/2/' .. (off)     addr2 = '3/2/' .. (off + 1)     addr3 = '3/2/' .. (off + 2)     log(addr1, addr2, addr3)     -- -----      -- decode 3 value from 6bytes value   value = event.getvalue()   value = lmcore.strtohex(value)   bytestable = {}   for i = 2, #value, 2 do     bytevalue = string.sub(value, (i-1), i)     table.insert(bytestable, bytevalue)   end   value1 = knxdatatype.decode(bytestable[1] .. bytestable[2], dt.float16)   value2 = knxdatatype.decode(bytestable[3] .. bytestable[4], dt.float16)   value3 = knxdatatype.decode(bytestable[5] .. bytestable[6], dt.float16)   grp.update(addr1 , value1)   grp.update(addr2 , value2)   grp.update(addr3, value3)    end

and another with tag "bacKnx"

Code:
if event.src == 'local' then  -- get 3 adress from 2bytes adress  addr = event.dst     last = tonumber(addr:split('/')[3])     off = math.floor(last / 3)     addr1 = '3/2/' .. (off * 3)     addr2 = '3/2/' .. (off * 3 + 1)     addr3 = '3/2/' .. (off * 3 + 2)     out = '3/1/' .. off     log(addr1, addr2, addr3, out)     -- -----  -- encode 6 bytes value from 3x2bytes value  value1 = grp.find(addr1).datahex  value2 = grp.find(addr2).datahex  value3 = grp.find(addr3).datahex  sixbytevaluestring = lmcore.hextostr(value1 .. value2 .. value3)  oldvalue = grp.getvalue(out)  if oldvalue ~= sixbytevaluestring then    grp.write(out, sixbytevaluestring)  end   end


But I don't understant your point of view about the "event.datahex"

Quote:It can be simplified a bit by using event.datahex instead of using getvalue/strtohex conversion.
-----------
FRANCE SMARTHOME & SMARTBUILDING INTEGRATION
SE ECO EXPERT
Reply


Messages In This Thread
222.100 datatype on 6 bytes - by domotiqa - 27.09.2017, 10:15
RE: 222.100 datatype on 6 bytes - by domotiqa - 27.09.2017, 13:32
RE: 222.100 datatype on 6 bytes - by domotiqa - 28.09.2017, 10:36
RE: 222.100 datatype on 6 bytes - by domotiqa - 28.09.2017, 11:20
RE: 222.100 datatype on 6 bytes - by domotiqa - 28.09.2017, 18:09
RE: 222.100 datatype on 6 bytes - by admin - 28.09.2017, 18:12
RE: 222.100 datatype on 6 bytes - by domotiqa - 29.09.2017, 04:47
RE: 222.100 datatype on 6 bytes - by admin - 29.09.2017, 06:48
RE: 222.100 datatype on 6 bytes - by domotiqa - 29.09.2017, 14:32
RE: 222.100 datatype on 6 bytes - by admin - 29.09.2017, 16:46
RE: 222.100 datatype on 6 bytes - by domotiqa - 29.09.2017, 17:04
RE: 222.100 datatype on 6 bytes - by admin - 29.09.2017, 17:34
RE: 222.100 datatype on 6 bytes - by domotiqa - 29.09.2017, 17:39
RE: 222.100 datatype on 6 bytes - by domotiqa - 02.10.2017, 07:10
RE: 222.100 datatype on 6 bytes - by domotiqa - 02.10.2017, 13:46
RE: 222.100 datatype on 6 bytes - by domotiqa - 03.10.2017, 09:24
RE: 222.100 datatype on 6 bytes - by admin - 03.10.2017, 10:29
RE: 222.100 datatype on 6 bytes - by domotiqa - 03.10.2017, 12:22

Forum Jump: