OpenHAB3 Windows Arping

I am having some trouble getting my presence detection ( item Online) working an it is sometimes hit or miss detecting Computers and phones. Not sure if this has to do with APPING or not, and not sure if I have this set up correctly.

In my Logs I am getting this warning …

2022-06-15 15:09:02.796 [WARN ] [rg.openhab.core.io.net.exec.ExecUtil] - Timeout occurred when executing commandLine '[H:\openHAB\userdata\etc\arp-ping.exe, --help]'
2022-06-15 15:09:03.322 [WARN ] [rg.openhab.core.io.net.exec.ExecUtil] - Failed to execute commandLine '[arping, --help]'

Once restart the OpenHAB Service, the detection will work for a little, then it’ll stop detecting certain things.

H:\openHAB\userdata\etc\arp-ping.exe is the file location of the executable that I downloaded and here are my settings.

Any ideas why this would be not reliably working?

What is the output of the exe if you run the command with the switch --help ?

In the source code one can see that the binding runs the exe with option --help to distinguish between different implementation of the arping tool:


    /**
     * Return true if the external arp ping utility (arping) is available and executable on the given path.
     */
    public ArpPingUtilEnum determineNativeARPpingMethod(String arpToolPath) {
        String result = ExecUtil.executeCommandLineAndWaitResponse(Duration.ofMillis(100), arpToolPath, "--help");
        if (result == null || result.isBlank()) {
            return ArpPingUtilEnum.DISABLED_UNKNOWN_TOOL;
        } else if (result.contains("Thomas Habets")) {
            if (result.matches("(?s)(.*)w sec Specify a timeout(.*)")) {
                return ArpPingUtilEnum.THOMAS_HABERT_ARPING;
            } else {
                return ArpPingUtilEnum.THOMAS_HABERT_ARPING_WITHOUT_TIMEOUT;
            }
        } else if (result.contains("-w timeout") || result.contains("-w <timeout>")) {
            return ArpPingUtilEnum.IPUTILS_ARPING;
        } else if (result.contains("Usage: arp-ping.exe")) {
            return ArpPingUtilEnum.ELI_FULKERSON_ARP_PING_FOR_WINDOWS;
        }
        return ArpPingUtilEnum.DISABLED_UNKNOWN_TOOL;
    }

In case you get a timeout warning it looks like the execution takes langer than 100ms.
If that just happens from time to time I would assume that load of your host is higher so thatit takes longer to execute the task.