Robot Discovery Protocol

All ZBOS robots are equiped with a mechanism to allow them to be discovered in a network. This can be useful when creating external applications that interact with the robot via the robot’s internal MQTT broker.

For the robot discovery to work the network must allow UDP broadcast messages on port 5000. The response messages are sent on port 5001. Broadcasting is a one-to-all type of communication, the intention is to send the datagram to all the hosts in the network. Unlike in the case of point-to-point communication, we don’t have to know the target host’s IP address. Instead, the broadcast address is used.

Some networks will block broadcast messages, or not propagate them across access points. Please contact your network administrator when in doubt.
Due to hardware limitations on the James robot, the broadcast method is not available there. Instead you can send direct messages one-by-one across the complete IP range, or look for devices with hostname "360-ROUTER-5G". These workarounds are used for example when adding James robot for the first time in ZBOS Control.

Discovery request message

Finding all ZBOS robots in a network

Send the following to the broadcast address on port 5000:

{
   "type":"ZBOS-DISCOVER"
}

Finding a specific ZBOS robot in a network

Send the following to the broadcast address on port 5000:

{
   "type":"ZBOS-DISCOVER",
   "id":"{serial_number_of_robot}"
}

Discovery response message

After sending a discovery request and there’s ZBOS robots in the network, one or more response messages will be returned on port 5001 with the following format:

{
   "type":"ZBOS-NOTIFY",
   "id":"{serial_number_of_robot}",
   "identity": "{type_of_robot}"
}