Logic Machine Forum
KNX physical address check - Printable Version

+- Logic Machine Forum (https://forum.logicmachine.net)
+-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1)
+--- Forum: Scripting (https://forum.logicmachine.net/forumdisplay.php?fid=8)
+--- Thread: KNX physical address check (/showthread.php?tid=104)



KNX physical address check - Peter - 13.10.2015

Hello,
I would like to know if there is any way how to check if there is a specific device on the KNX bus operating. In ETS we can just "ping" the physical address and get a yes/no result. It would be great if we can do something similar in LM. Possible use case: we have just arrived at a house where a KNX thermostat stopped working, therefor the heating was off. If we would have known that, the customer would not have to find it out after a long time.
Thanks


RE: KNX physical address check - admin - 13.10.2015

Code:
result = knxlib.ping('1.1.1')



RE: KNX physical address check - Peter - 13.10.2015

(13.10.2015, 11:53)admin Wrote:
Code:
result = knxlib.ping('1.1.1')

you are the best! LM ROCKS! Smile
thanks

OK, I would like to extend my previous question for all of LM users: what other use cases of this little script can you think of? And more importantly: what other diagnostic tool for KNX bus and LM do you use, or would you want to use?
Thanks for all of your ideas.
Peter


RE: KNX physical address check - Erwin van der Zwart - 14.10.2015

I use it as a line check on the device at the end of a line, this way you know all cabling is still functional.


RE: KNX physical address check - Peter - 15.10.2015

I have another idea: if you do Export OPC from your ETS, you get also a project.phd file, which contains all the KNX devices with their physical addresses. Would it be possible to upload such a file to LM's ftp and then write a script that will check the bus for all these addresses?


RE: KNX physical address check - gtsamis - 21.01.2016

Hello,
I need to check if the devices on my line are alive. I am using LM Load Balnce that doesn't have TP1 on board knxlib.ping won't work.
Can someone suggest another way on how to implement same functionality without the use of knxlib.ping?

Thank you in advance


RE: KNX physical address check - Ruslan - 28.02.2016

Hi everyone!

I also use knxlib.ping for check accessibility of many KNX devices in few zones. Im try knxlib.ping every few minutes and if status of object is changed send push notification. If ping is fail im try few times with random seconds between it. 
But every day many times ping is failed. May be another type of check is more stable? Like config perdiodicaly sent value of object (etc luminosity) and check last update time?


RE: KNX physical address check - rocfusion - 28.02.2016

Hi,

You could try changing the KNX address of the Logic Machine ( found in System Configuration \ Network \ KNX Connection ) to an free address on the first line of the KNX bus.

Thanks,


Roger


RE: KNX physical address check - Ruslan - 29.02.2016

(28.02.2016, 20:47)rocfusion Wrote: Hi,

You could try changing the KNX address of the Logic Machine ( found in System Configuration \ Network \ KNX Connection ) to an free address on the first line of the KNX bus.

Thanks,


Roger

Thank you. My LM uses last free address (1.1.253) and dont cross with another devices. 
I think what root cause is any problem with bus? but in same time from pinged device im receive another telegram.


RE: KNX physical address check - rocfusion - 29.02.2016

when you create a new script on a object that pings a module which is known to fail does that work? disable your scheduled script for this test.


RE: KNX physical address check - admin - 02.03.2016

Another approach is to map a specific read-only group address and send read requests from LM to check if the device is alive. This will work even over IP networks.

Code:
addr = '1/1/1'
-- send read request and wait for reply
grp.read(addr)
os.sleep(2)

-- get time difference between now and last telegram
obj = grp.find(addr)
delta = os.time() - obj.updatetime

if delta < 10 then
  alert('Check OK')
else
  alert('Check FAIL')
end