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.

Comparing object names with Json list
#1
Hi.

Is it possible to compare the names of the objets in LM with a newer Json file that i have exported and converted from ETS/KNX? And somehow get a print of every objects with wrong names in LM?
BR
Kai-Roger
Reply
#2
Put your JSON data into the script and run once. It will log all objects that are present in JSON but not in LM and objects that have mismatching names.
Code:
1234567891011121314151617181920
require('json') data = [[ PUT_JSON_DATA_HERE ]] objects = json.decode(data).objects for id, obj in pairs(objects) do   id = tonumber(id)   curr = grp.find(id)   addr = buslib.decodega(id)   if curr then     if obj.name and curr.name ~= obj.name then       log('name mismatch ' .. addr, curr.name, obj.name)     end   else     log('missing object ' .. addr)   end end
Reply
#3
(06.04.2021, 06:23)admin Wrote: Put your JSON data into the script and run once. It will log all objects that are present in JSON but not in LM and objects that have mismatching names.
Code:
1234567891011121314151617181920
require('json') data = [[ PUT_JSON_DATA_HERE ]] objects = json.decode(data).objects for id, obj in pairs(objects) do   id = tonumber(id)   curr = grp.find(id)   addr = buslib.decodega(id)   if curr then     if obj.name and curr.name ~= obj.name then       log('name mismatch ' .. addr, curr.name, obj.name)     end   else     log('missing object ' .. addr)   end end

Thank you
BR
Kai-Roger
Reply
#4
Worked like a charm. This makes updating group text really easy. 

But is there a possbility to make the log not show unassigned Group addresses, like this

* string: missing object 25/2/165

Want only the * string: name mismatch 8/3/1

Thanks in advance Smile
Reply
#5
Remove the relevant log call:
Code:
12345678910111213141516
require('json') data = [[ PUT_JSON_DATA_HERE ]] objects = json.decode(data).objects for id, obj in pairs(objects) do   id = tonumber(id)   curr = grp.find(id)   addr = buslib.decodega(id)   if curr and obj.name and curr.name ~= obj.name then     log('name mismatch ' .. addr, curr.name, obj.name)   end end
Reply


Forum Jump: