heos-lib v1.0.3
Heos Library
A Node.js library for HEOS device interaction
Constructor
The constructor requires a socket as can be acquired with net.createConnection (...)
const heos_lib = new HeosLib (socket)
A timeout for command results may be specified as a timeout
property on an optional configuration parameter. The value should be set in milliseconds. By default the timeout is set to 5000 (5 seconds).
const heos_lib = new HeosLib (socket, {timeout: 10000})
Methods
registerForChangeEvents
var result = await heos_lib
.registerForChangeEvents ('on') // on, off
var { enable } = result
getPlayers
var [ player_info ] = await heos_lib.getPlayers ()
var { name, pid, model, version } = player_info
getPlayerInfo
var player_info = await heos_lib.getPlayerInfo (pid)
var { name, pid, model, version } = player_info
getPlayState
var play_state = await heos_lib.getPlayState (pid)
var { state } = play_state
setPlayState
var result = await heos_lib
.setPlayState (pid, 'play') // play, pause, stop
var { pid, state } = result
getNowPlayingMedia
var now_playing = await heos_lib
.getNowPlayingMedia (pid)
var { type, song, artist } = now_playing
getVolume
var { pid, level } = await heos_lib.getVolume (pid)
setVolume
var result = await heos_lib.setVolume (pid, level)
var { pid, level } = result
volumeUp
var result = await heos_lib.volumeUp (pid, step)
var { pid, step } = result
volumeDown
var result = await heos_lib.volumeDown (pid, step)
var { pid, step } = result
getMute
var { pid, state } = await heos_lib.getMute (pid)
setMute
var result = await heos_lib.setMute (pid, state)
var { pid, state } = result
toggleMute
var result = await heos_lib.toggleMute (pid)
var { pid } = result
getPlayMode
var play_mode = await heos_lib.getPlayMode (pid)
var { pid, repeat, shuffle } = play_mode
setPlayMode
var result = await heos_lib
.setPlayMode (pid, repeat, shuffle)
var { pid, repeat, shuffle } = result
getQueue
var range = [0, 50].join (',')
var queue_data = await heos_lib.getQueue (pid, range)
var { count, items } = queue_data
playQueueItem
var result = await heos_lib.playQueueItem (pid, qid)
var { pid, qid } = result
removeFromQueue
var result = await heos_lib.removeFromQueue (pid, qid)
var { pid, qid } = result
saveQueue
var result = await heos_lib.saveQueue (pid, name)
var { pid, name } = result
clearQueue
var result = await heos_lib.clearQueue (pid)
var { pid } = result
moveQueueItem
var sqid = 2
var dqid = 8
var result = await heos_lib.moveQueueItem (pid, sqid, dqid)
var { pid, sqid, dqid } = result
playNext
var result = await heos_lib.playNext (pid)
var { pid } = result
playPrevious
var result = await heos_lib.playPrevious (pid)
var { pid } = result
getMusicSources
var [ source_info ] = await heos_lib.getMusicSources ()
var { name, type, sid } = source_info
getSourceInfo
var [ source_info ] = await heos_lib.getSourceInfo (sid)
var { name, type, sid } = source_info
browseSource
var sid = 1024 // see getMusicSources
var range = [0, 5].join (',')
var { count, items } = await heos_lib
.browseSource (sid, range)
var [{ name, type, cid }] = items
browseSourceContainers
var sid = 1024 // see getMusicSources
var cid = 1 // see browseSource
var range = [0, 50].join (',')
var { count, items } = await heos_lib
.browseSourceContainers (sid, cid, range)
var [{ name, type, cid }] = items
getSourceSearchCriteria
var criterias_list = await heos_lib
.getSourceSearchCriteria (sid)
var [{ name, scid, cid }] = criterias_list
browseSearch
var sid = 1024 // see getMusicSources
var scid = 3 // see getSourceSearchCriteria
var search = 'search query'
var range = [0, 50].join (',')
var { count, items } = await heos_lib
.browseSearch (sid, search, scid, range)
var [{ name, type, mid }] = items
Item properties present depends on the type.
playStation
var sid = 13 // see getMusicSources
var cid = 1 // see browseSource, browseSourceContainers
var mid = 1 // see browseSearch, browseSourceContainers
var pid = 123 // see getPlayers
var name = 'name' // see browseSource, browseSourceContainers
var result = await heosLib
.playStation (sid, cid, mid, pid, name)
var { cid, cid, mid, pid, name } = result
playPresetStation
var preset = 1 // see getHeosFavorites
var result = await heos_lib.playPresetStation (pid, preset)
var { pid, preset } = result
playInputSource
var input_name = 'inputs/hdradio' // see HEOS specification
var result = await heos_lib.playInputSource (pid, input_name)
var { pid, input } = result
playInputSourceFrom
var input_name = 'input/hdradio' // see HEOS specification
var result = await heos_lib
.playInputSourceFrom (pid, spid, input_name)
var { pid, spid, input } = result
playUrl
var result = await heos_lib.playUrl (pid, url)
var { pid, url } = result
addContainerToQueue
var sid = 13 // see getMusicSources
var cid = 1 // see browseSource, browseSourceContainers
var aid = 1
var pid = 123 // see getPlayers
var name = 'name' // see browseSource, browseSourceContainers
var result = await heos_lib
.addContainerTOQueue (sid, cid, aid, pid)
var { sid, cid, aid, pid } = result
aid (add criteria) is one of:
- HeosLib.QUEUE_PLAY_NOW
- HeosLib.QUEUE_PLAY_NEXT
- HeosLib.QUEUE_PLAY_LAST
- HeosLib.QUEUE_REPLACE_AND_PLAY
addTrackToQueue
var sid = 13 // see getMusicSources
var cid = 1 // see browseSource, browseSourceContainers
var mid = 100 // see browseSource, browseSourceContainers
var aid = 1 // see addContainerToQueue
var pid = 123 // see getPlayers
var name = 'name' // see browseSource, browseSourceContainers
var result = await heos_lib
.addContainerTOQueue (sid, cid, mid, aid, pid)
var { sid, cid, mid, aid, pid } = result
getHeosPlaylists
var range = [0, 50].join (',')
var { count, items } = await heos_lib
.getHeosPlaylists (range)
var [{ name, type, cid }] = items
renameHeosPlaylist
var result = await heos_lib
.renameHeosPlaylist (sid, cid, name)
var { sid, cid, name } = result
deleteHeosPlaylist
var result = await heos_lib
.deleteHeosPlaylist (sid, cid)
var { sid, cid } = result
getHeosHistory
var type = 'tracks' // tracks, stations
var range = [0, 50].join (',')
var { count, items } = await heos_lib
.getHeosHistory (type, range)
var [{ name, type, cid }] = items
retrieveAlbumMetadata
const { count, items } = await heos_lib
.retrieveAlbumMetadata (sid, cid)
Napster and Rhapsody only.
setServiceOption
const option = 11 // See HEOS protocol spec
const { count, items } = await heos_lib
.setServiceOption (sid, option, pid)
Options that require 'cid', 'mid' or 'name' are currently not supported by the setServiceOption method. The command
method can be used as a workaround.
command
Send a direct command:
heos_lib.command ({
command: 'player/get_volume',
params: { pid: 1234567890 }
})
Currently, the command
method does not directly return a value. The result can be obtained with an event listener.
Events
data
Receives all events and results. Note that data that could not be determined to be a result or an event will be included here.
event
Receives all events
event:event name
Receives results for a specified event. Note event names exclude the 'event/' prefix.
result
Receives all results
result:command name
Receives results for a specified command
Links
Notice
This unsponsored software is provided, subject to a MIT license, unofficially and independently of Sound United, LLC, its affiliates, subsidiaries and brands (such as HEOS, Denon and any such not listed here).
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago