Discovery engine

WeavingThings functionality is based on its ability to automatically detect and classify any connected device in its surroundings. In order to implement a dynamic and automatic algorithm that is able to classify devices up to the service layer, and in order to make it highly scalable, a heuristic algorithm is developed. This algorithm generates data with various detection methodologies combining standard and device specific techniques. Then, heuristics are used in order to compose a full description of the device and its services. Moreover, WeavingThings’s discovery engine is dynamic in nature and does not require static, ahead of time detection schemes. Detection schemes can be dynamically updated, allowing the correct discovery of any future connected device.

Device Discovery

In this stage all the connected devices are discovered. Objects containing the low level networking parameters of the devices are created, including MAC address, IP address, DHCP parameters etc. Device detection is performed at the ip level (i.e. connected LAN and WIFI as well as bluetooth). Devices connected through other technologies (like zigbee and z-wave) are discovered through the hub that connects them to the ip network.

Service Discovery

Once devices have been discovered, an attempt is made to detect every service running on these devices, for use and identification purposes. Like the device detection a combination of techniques are used to detect services. Both standard techniques (like uPnP, bonjour etc) and proprietary techniques.


Device type classification is done by comparing a set of device attributes against an existing database. Since the set of attributes of the queried device might be incomplete, the result of the classification is not necessarily an exact match and relies both on previous results and approximation.

Device classification is done in few consecutive lookups.  Each lookup can add an input to the next lookup in the chain. The final result is a device-type along with a value that presents the likelihood of the match to be a correct device-type and the mapped services.

There are two discovery capabilities that are depended on the application at hand.

1.) Monitoring and discovery of surrounding WiFi and Bluetooth devices. These devices are not necessarily connected to our network, but are at the surrounding area of the access point / gateway.

2.) Deep classification and detection of connected devices and services of devices that joined our network on one of our access points / gateways.

Area Activity Scan