Avahi Integration

To give applications the possibility to discover uberbus nodes in to local network Multicast DNS is used.

A uberbus node announces its services via MDNS in the local network.

MDNS field Description
Service Name Name of the uberbus node
Service Type Name and protocol of the service
Host Hostname of the uberbus nodes(usually its name with .local as domain)
Port Port under which the service is reachable
Txt Records Currently unused

The service name is the name of the uberbus node.

Examples: LightSwitch1, KitchenLamp, DoorSensor2

This field contains information about the actual service provided. It is separated into two fields:

_ Uberbus class ._ Protocol

The uberbus class defines what the service does and which commands are used(See the class descriptions). The protocol defines if TCP or UDP can be used to communicate with this service (See the protocol description).

Examples: _moodlamp._udp, _switch._tcp

These fields can be used to identify the node in the local network. The hostname can be resolved to an IPv6 raddress and the port defines which port on the node will handle the announced service.

Usually the hostname is the service name with “.local” attached to it.

Examples: LightSwitch1.local, KitchenLamp.local, DoorSensor2.local

Multicast

The uberbus also supports grouping nodes together in multicast groups. These multicast groups are also announced via MDNS.

The key differences to normal service announcements are that only UDP is offered as protocol and that IPv6 multicast addresses are used as IP of the host name. If a command is sent to a multicast group the command is sent to all nodes associated with this group. It is not guaranteed that the command will reach all nodes.

  • uberbus/mdns.txt
  • Last modified: 2021/04/18 12:35
  • (external edit)