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 |
Service Name
The service name is the name of the uberbus node.
Examples: LightSwitch1, KitchenLamp, DoorSensor2
Service Type
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
Host And Port
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.