Difference between revisions of "Heos"

From HSYCO
Jump to navigation Jump to search
(Created page with "Heos by Denon comprises a set of HiFi audio systems integrated with HSYCO via WiFi or Ethernet connection. A single HEOS I/O Server controls all the devices connected to the l...")
 
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
Heos by Denon comprises a set of HiFi audio systems integrated with HSYCO via WiFi or Ethernet connection. A single HEOS I/O Server controls all the devices connected to the local network.
 
Heos by Denon comprises a set of HiFi audio systems integrated with HSYCO via WiFi or Ethernet connection. A single HEOS I/O Server controls all the devices connected to the local network.
 +
 +
The driver has been tested on firmware version 1.289.95 of the HEOS devices.
  
 
[[Category:I/O Server]]
 
[[Category:I/O Server]]
Line 11: Line 13:
 
=== High Availability ===
 
=== High Availability ===
 
*'''User''': username for the HEOS account (optional)
 
*'''User''': username for the HEOS account (optional)
*'''Password''': password for the HEOS account (optional)
+
*'''Password''': password for the HEOS account (if User is provided)
 
*'''Shutdown when inactive''': defaults to false.
 
*'''Shutdown when inactive''': defaults to false.
  
Line 35: Line 37:
  
 
== Datapoints ==
 
== Datapoints ==
 +
 +
In the following table, replace <name> with the name assigned to each player. Names are transformed to lowercase and spaces are replaced by '-'. For instance, if the name assigned to a player is "Example Name", the <name> part of the corresponding datapoints will be "example-name". The same applies to <group_name> placeholders.
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 55: Line 59:
 
|-
 
|-
  
|rowspan="3" |state
+
|<name>.model
|play
+
|<model_name>
 +
|R
 +
|reports the model name of this player, e.g. "HEOS 3"
 +
 
 +
|-
 +
 
 +
|<name>.version
 +
|<version_number>
 +
|R
 +
|reports the version number of this player, e.g. "1.289.95"
 +
 
 +
|-
 +
 
 +
|rowspan="6" |<name>.state
 +
|rowspan="2" |play
 +
|R
 +
|the audio stream is playing
 +
|-
 +
|W
 +
|start playing
 +
|-
 +
|rowspan="2" |pause
 +
|R
 +
|the audio stream is paused
 +
|-
 +
|W
 +
|pause the audio stream
 +
|-
 +
|rowspan="2" |stop
 +
|R
 +
|the audio stream is stopped
 +
|-
 +
|W
 +
|stop the audio stream
 +
 
 +
|-
 +
 
 +
|<name>.song
 +
|<title>
 
|R
 
|R
|the audio is playing
+
|reports the title of the song currently playing
 +
 
 
|-
 
|-
|pause
+
 
 +
|<name>.album
 +
|<album_name>
 
|R
 
|R
|the audio is paused
+
|reports the name of the album currently playing
 +
 
 
|-
 
|-
|stop
+
 
 +
|<name>.artist
 +
|<artist_name>
 
|R
 
|R
|the audio is stopped
+
|reports the name of the artist currently playing
  
 
|-
 
|-
 +
 +
|<name>.image_url
 +
|<url>
 +
|R
 +
|reports the URL of the artwork of the track currently playing
 +
 +
|-
 +
 +
|<name>.image_url
 +
|<url>
 +
|R
 +
|reports the URL of the artwork of the track currently playing
 +
 +
|-
 +
 +
|rowspan="4" |<name>.volume
 +
|rowspan="2" |0% ... 100%
 +
|R
 +
|the volume is set to the reported value
 +
|-
 +
|W
 +
|set the volume to the specified value
 +
|-
 +
| +<n>
 +
|W
 +
|increase the volume of the specified value (e.g. "+10")
 +
|-
 +
| -<n>
 +
|W
 +
|decrease the volume of the specified value (e.g. "-10")
 +
 +
|-
 +
 +
|rowspan="5" |<name>.mute
 +
|rowspan="2" |1
 +
|R
 +
|the audio is muted
 +
|-
 +
|W
 +
|mute the audio
 +
|-
 +
|rowspan="2" |0
 +
|R
 +
|the audio is not muted
 +
|-
 +
|W
 +
|unmute the audio
 +
|-
 +
|flip
 +
|W
 +
|invert the mute state
 +
 +
|-
 +
 +
|<name>.progress
 +
|0% ... 100%
 +
|R
 +
|the progress of the currently playing track reached the reported value
 +
 +
|-
 +
 +
|rowspan="2" |<name>.qid
 +
|rowspan="2" |<queue_id>
 +
|R
 +
|reports the queue position of the current track
 +
|-
 +
|W
 +
|play the track at the specified queue position
 +
 +
|-
 +
 +
|rowspan="2" |<name>.qid.remove
 +
|<queue_id>
 +
|W
 +
|remove from the queue the specified element
 +
|-
 +
|all
 +
|W
 +
|clear the queue
 +
 +
|-
 +
 +
|<name>.sid
 +
|<source_id>
 +
|R
 +
|reports the source id currently set on the player
 +
 +
|-
 +
 +
|<name>.mid
 +
|<media_id>
 +
|R
 +
|reports the media id currently set on the player
 +
 +
|-
 +
 +
|<name>.next
 +
|
 +
|W
 +
|play next track in the queue
 +
 +
|-
 +
 +
|<name>.previous
 +
|
 +
|W
 +
|play previous track in the queue
 +
 +
|-
 +
 +
|rowspan="6" |<name>.repeat
 +
|rowspan="2" |on_one
 +
|R
 +
|the player is set on repeat mode on the current track
 +
|-
 +
|W
 +
|enable repeat mode on the current track
 +
|-
 +
|rowspan="2" |on_all
 +
|R
 +
|the player is set on repeat mode on the current queue
 +
|-
 +
|W
 +
|enable repeat mode on the current queue
 +
|-
 +
|rowspan="2" |off
 +
|R
 +
|repeat mode is off
 +
|-
 +
|W
 +
|disable repeat mode
 +
 +
|-
 +
 +
|rowspan="4" |<name>.shuffle
 +
|rowspan="2" |on
 +
|R
 +
|shuffle mode is on
 +
|-
 +
|W
 +
|set shuffle mode on
 +
|-
 +
|rowspan="2" |off
 +
|R
 +
|shuffle mode is off
 +
|-
 +
|W
 +
|set shuffle mode off
 +
 +
|-
 +
 +
|rowspan="2" |<name>.type
 +
|song
 +
|R
 +
|the player is currently playing a song
 +
|-
 +
|station
 +
|R
 +
|the player is currently playing a radio station
 +
 +
|-
 +
 +
|rowspan="4" |group.<group_name>.volume
 +
|rowspan="2" |0% ... 100%
 +
|R
 +
|the volume is set to the reported value
 +
|-
 +
|W
 +
|set the volume to the specified value
 +
|-
 +
| +<n>
 +
|W
 +
|increase the volume of the specified value (e.g. "+10")
 +
|-
 +
| -<n>
 +
|W
 +
|decrease the volume of the specified value (e.g. "-10")
 +
 +
|-
 +
 +
|rowspan="5" |group.<group_name>.mute
 +
|rowspan="2" |1
 +
|R
 +
|the audio is muted
 +
|-
 +
|W
 +
|mute the audio
 +
|-
 +
|rowspan="2" |0
 +
|R
 +
|the audio is not muted
 +
|-
 +
|W
 +
|unmute the audio
 +
|-
 +
|flip
 +
|W
 +
|invert the mute state
 +
 +
|-
 +
 +
|rowspan="2" |group.create
 +
|<players_list>
 +
|W
 +
|group the listed players. The value is a list of names of players separated by ';' (e.g. "player1;plarer2"). The first player in the list becomes the group leader
 +
|-
 +
|<group_leader_name>
 +
|W
 +
|remove the group whose leader player is the specified one
 +
 +
|-
 +
 +
|<name>.play.song
 +
|[[#media_ids|<song_id>]]
 +
|W
 +
|play the track with the specified [[#media_ids|song ID]]
 +
 +
|-
 +
 +
|<name>.play.station
 +
|[[#media_ids|<station_id>]]
 +
|W
 +
|play the radio station with the specified [[#media_ids|station ID]]
  
 
|}
 
|}
 +
 +
<span id="media_ids">
 +
;Song and station IDs: To get the ID of a song or a radio station refer to [[Heos Utility]]
 +
</span>
  
 
== User Interface ==
 
== User Interface ==
Line 93: Line 368:
 
|-
 
|-
  
|}
+
|rowspan="2"|<name>.state.play
 +
|rowspan="2"|visible
 +
|true
 +
|when datapoint <name>.state = play
 +
|-
 +
|false
 +
|otherwise
 +
 
 +
|-
 +
 
 +
|rowspan="2"|<name>.state.pause
 +
|rowspan="2"|visible
 +
|true
 +
|when datapoint <name>.state = pause
 +
|-
 +
|false
 +
|otherwise
 +
 
 +
|-
 +
 
 +
|rowspan="2"|<name>.state.stop
 +
|rowspan="2"|visible
 +
|true
 +
|when datapoint <name>.state = stop
 +
|-
 +
|false
 +
|otherwise
 +
 
 +
|-
 +
 
 +
|<name>.volume
 +
|value
 +
|colspan="2"|the current volume's value (0 ... 100)
 +
 
 +
|-
 +
 
 +
|rowspan="2"|<name>.mute.0
 +
|rowspan="2"|visible
 +
|true
 +
|when datapoint mute = 0
 +
|-
 +
|false
 +
|when datapoint mute = 1
 +
 
 +
|-
 +
 
 +
|rowspan="2"|<name>.mute.1
 +
|rowspan="2"|visible
 +
|true
 +
|when datapoint mute = 1
 +
|-
 +
|false
 +
|when datapoint mute = 0
 +
 
 +
|-
 +
 
 +
|rowspan="2"|<name>.repeat.off
 +
|rowspan="2"|visible
 +
|true
 +
|when datapoint <name>.repeat = off
 +
|-
 +
|false
 +
|otherwise
 +
 
 +
|-
 +
 
 +
|rowspan="2"|<name>.repeat.on_all
 +
|rowspan="2"|visible
 +
|true
 +
|when datapoint <name>.repeat = on_all
 +
|-
 +
|false
 +
|otherwise
 +
 
 +
|-
 +
 
 +
|rowspan="2"|<name>.repeat.on_one
 +
|rowspan="2"|visible
 +
|true
 +
|when datapoint <name>.repeat = on_one
 +
|-
 +
|false
 +
|otherwise
 +
 
 +
|-
 +
 
 +
|rowspan="2"|<name>.shuffle.off
 +
|rowspan="2"|visible
 +
|true
 +
|when datapoint <name>.shuffle = off
 +
|-
 +
|false
 +
|when datapoint <name>.shuffle = on
 +
 
 +
|-
 +
 
 +
|rowspan="2"|<name>.shuffle.on
 +
|rowspan="2"|visible
 +
|true
 +
|when datapoint <name>.shuffle = on
 +
|-
 +
|false
 +
|when datapoint <name>.shuffle = off
 +
 
 +
|-
 +
 
 +
|<name>.progress
 +
|value
 +
|colspan="2"|the current track progress value (0% ... 100%)
 +
 
 +
|-
 +
 
 +
|<name>.qid
 +
|value
 +
|colspan="2"|the queue position of the current track
 +
 
 +
|-
 +
 
 +
|<name>.song
 +
|value
 +
|colspan="2"|the title of the song currently playing
 +
 
 +
|-
 +
 
 +
|<name>.album
 +
|value
 +
|colspan="2"|the title of the album currently playing
 +
 
 +
|-
  
=== USER Commands ===
+
|<name>.artist
 +
|value
 +
|colspan="2"|the title of the artist currently playing
  
{| class="wikitable"
+
|-
!Name
 
!Param
 
!Action
 
  
 +
|rowspan="2"|<name>.queue
 +
|values
 +
|colspan="2"|list of qids of queued tracks
 
|-
 
|-
 +
|labels
 +
|colspan="2"|list of qid, title, artist and album of queued tracks
  
 
|}
 
|}
 +
 +
=== USER Commands ===
 +
 +
Use the IDs and values listed in the [[#Datapoints|datapoints table]] respectively as ''name'' and ''param'' for USER objects to perform the corresponding actions.
  
 
== Release Notes ==
 
== Release Notes ==

Latest revision as of 14:55, 12 May 2015

Heos by Denon comprises a set of HiFi audio systems integrated with HSYCO via WiFi or Ethernet connection. A single HEOS I/O Server controls all the devices connected to the local network.

The driver has been tested on firmware version 1.289.95 of the HEOS devices.

Communication

Just make sure the Heos devices are connected to the same local network as HSYCO server is.

HSYCO Configuration

Add a HEOS I/O Server in the I/O Servers section of the Settings and set its parameters:

High Availability

  • User: username for the HEOS account (optional)
  • Password: password for the HEOS account (if User is provided)
  • Shutdown when inactive: defaults to false.

Options

ID Default Values Description
startupevents false true generate IO events also during the driver’s start-up phase
false start generating events only after HSYCO is aligned with the current status of the system

Datapoints

In the following table, replace <name> with the name assigned to each player. Names are transformed to lowercase and spaces are replaced by '-'. For instance, if the name assigned to a player is "Example Name", the <name> part of the corresponding datapoints will be "example-name". The same applies to <group_name> placeholders.

ID Value R/W Description
connection online R connection established
offline R HSYCO can't connect to the device
<name>.model <model_name> R reports the model name of this player, e.g. "HEOS 3"
<name>.version <version_number> R reports the version number of this player, e.g. "1.289.95"
<name>.state play R the audio stream is playing
W start playing
pause R the audio stream is paused
W pause the audio stream
stop R the audio stream is stopped
W stop the audio stream
<name>.song <title> R reports the title of the song currently playing
<name>.album <album_name> R reports the name of the album currently playing
<name>.artist <artist_name> R reports the name of the artist currently playing
<name>.image_url <url> R reports the URL of the artwork of the track currently playing
<name>.image_url <url> R reports the URL of the artwork of the track currently playing
<name>.volume 0% ... 100% R the volume is set to the reported value
W set the volume to the specified value
+<n> W increase the volume of the specified value (e.g. "+10")
-<n> W decrease the volume of the specified value (e.g. "-10")
<name>.mute 1 R the audio is muted
W mute the audio
0 R the audio is not muted
W unmute the audio
flip W invert the mute state
<name>.progress 0% ... 100% R the progress of the currently playing track reached the reported value
<name>.qid <queue_id> R reports the queue position of the current track
W play the track at the specified queue position
<name>.qid.remove <queue_id> W remove from the queue the specified element
all W clear the queue
<name>.sid <source_id> R reports the source id currently set on the player
<name>.mid <media_id> R reports the media id currently set on the player
<name>.next W play next track in the queue
<name>.previous W play previous track in the queue
<name>.repeat on_one R the player is set on repeat mode on the current track
W enable repeat mode on the current track
on_all R the player is set on repeat mode on the current queue
W enable repeat mode on the current queue
off R repeat mode is off
W disable repeat mode
<name>.shuffle on R shuffle mode is on
W set shuffle mode on
off R shuffle mode is off
W set shuffle mode off
<name>.type song R the player is currently playing a song
station R the player is currently playing a radio station
group.<group_name>.volume 0% ... 100% R the volume is set to the reported value
W set the volume to the specified value
+<n> W increase the volume of the specified value (e.g. "+10")
-<n> W decrease the volume of the specified value (e.g. "-10")
group.<group_name>.mute 1 R the audio is muted
W mute the audio
0 R the audio is not muted
W unmute the audio
flip W invert the mute state
group.create <players_list> W group the listed players. The value is a list of names of players separated by ';' (e.g. "player1;plarer2"). The first player in the list becomes the group leader
<group_leader_name> W remove the group whose leader player is the specified one
<name>.play.song <song_id> W play the track with the specified song ID
<name>.play.station <station_id> W play the radio station with the specified station ID

Song and station IDs
To get the ID of a song or a radio station refer to Heos Utility

User Interface

UISET Actions

ID Attribute Set to
connection visible true when datapoint connection = offline
false when datapoint connection = online
<name>.state.play visible true when datapoint <name>.state = play
false otherwise
<name>.state.pause visible true when datapoint <name>.state = pause
false otherwise
<name>.state.stop visible true when datapoint <name>.state = stop
false otherwise
<name>.volume value the current volume's value (0 ... 100)
<name>.mute.0 visible true when datapoint mute = 0
false when datapoint mute = 1
<name>.mute.1 visible true when datapoint mute = 1
false when datapoint mute = 0
<name>.repeat.off visible true when datapoint <name>.repeat = off
false otherwise
<name>.repeat.on_all visible true when datapoint <name>.repeat = on_all
false otherwise
<name>.repeat.on_one visible true when datapoint <name>.repeat = on_one
false otherwise
<name>.shuffle.off visible true when datapoint <name>.shuffle = off
false when datapoint <name>.shuffle = on
<name>.shuffle.on visible true when datapoint <name>.shuffle = on
false when datapoint <name>.shuffle = off
<name>.progress value the current track progress value (0% ... 100%)
<name>.qid value the queue position of the current track
<name>.song value the title of the song currently playing
<name>.album value the title of the album currently playing
<name>.artist value the title of the artist currently playing
<name>.queue values list of qids of queued tracks
labels list of qid, title, artist and album of queued tracks

USER Commands

Use the IDs and values listed in the datapoints table respectively as name and param for USER objects to perform the corresponding actions.

Release Notes

3.5.0

  • initial release


Heos and Denon are registered trademarks of D&M Holdings, Inc.