hyperion.ng/docs/docs/en/api/Detect.md

2.5 KiB

Detect Hyperion

Hyperion announces it's services on the network, via ZeroConf and SSDP.

toc

SSDP

SimpleServiceDiscoveryProtocol (SSDP) is the discovery subset of UPnP. The implementation is lighter than ZeroConf as it just needs a UDP Socket without any further dependencies.

SSDP-Client Library

Here are some example client libraries for different programming languages (many others available):

Usage

With a given SSDP-client library, you can use the following USN / service type:

urn:hyperion-project.org:device:basic:1

Some headers from the response will include:

  • Location: The URL of the webserver
  • USN: The unique id for this Hyperion instance, it will remain the same after system restarts or Hyperion updates
  • HYPERION-FBS-PORT: The port of the flatbuffers server
  • HYPERION-JSS-PORT: The port of the JsonServer
  • HYPERION-NAME: The user defined name for this server

As the data changes (e.g. network adapter IP address change), new updates will be automatically announced.

Zeroconf

Also known as Apple Bonjour or Avahi. Hyperion is detectable through zeroconf.

Hyperion publishes the following informations:

  • _hyperiond-http._tcp: Hyperion Webserver (HTTP+Websocket)
  • _hyperiond-json._tcp: Hyperion JSON Server (TcpSocket)
  • _hyperiond-flatbuf._tcp: Hyperion Flatbuffers server (Google Flatbuffers)

You get the IP address, hostname, port and the Hyperion instance name (before the @ for the full name). As this works realtime you can always have an up to date list of available Hyperion servers.

TXT RECORD

Each published entry contains at least the following data in the txt field:

  • id: A static unique id to identify an Hyperion instance.
  • version: Hyperion version.

Test Clients

There are several clients available for testing like the avahi-browse a commandline tool for Ubuntu/Debian. Example command

sudo apt-get install avahi-browse && avahi-browse -r _hyperiond-http._tcp