Device "discovery" is a means to "crawl" an existing system, locating devices, and parsing scene information. This allows a pre-set system to be easily incorporated into the OOHome
system. In fact, this discovery process is fairly integral to the correct operation of the system. Device/module information and raw scene data is persisted so as to reduce the amount of time it takes to create and manage scenes (device memory probing is slow).
This process involves a lengthy series of commands to remote devices to read their scene "databases." It starts with the interface device (e.g. PLC), locates all the scenes within that device, and then goes through and retrieves device and scene information for each device the interface is linked to.
As more devices are found in other scenes, they too are probed.
Note that if a device is not linked to any other, it cannot be "discovered." However, the same persistence mechanism is employed dynamically, so (essentially) full coverage of a complete InsteonTM installation can be preserved.
IMPORTANT! Because this process is rather intensive, it is highly recommended that it be started when no other home-control operations (triggers, scheduled events, even "local" key presses) be performed while it's running.
There is no way determine beforehand how long a discovery process will run, as it varies on the number of devices, the number of scenes in each device, and how quickly a device responds (or not). It will finish when it finishes.
The OOHome application client can initiate discovery through the System menu. After it's initiated, you can even close out the client and let the server run alone.
The oohome-hardware
library has a stand-alone "crawler" application that performs the discovery process without the server or client running. This is actually the most recommended approach as it pretty much ensures that OOHome won't get in it's own way.
Running it:
To run it, you will need to invoke it thusly: (the \ character indicates "continued on next line")
*nix: java -cp oohome-hardware.jar:oohome-common.jar oohome.hardware.tools.Crawler [options] Windows: java -cp oohome-hardware.jar;oohome-common.jar oohome.hardware.tools.Crawler [options]
where [options] are required:
The results will be output to STDOUT and logging/errors are output to STDERR. If that makes no sense, then the results are output to the console you ran the application from.
![]() |