# Detect Hyperion
Hyperion announces it's services on the network, via ZeroConf and SSDP.
# 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
