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 } = resultgetPlayers
var [ player_info ] = await heos_lib.getPlayers ()
var { name, pid, model, version } = player_infogetPlayerInfo
var player_info = await heos_lib.getPlayerInfo (pid)
var { name, pid, model, version } = player_infogetPlayState
var play_state = await heos_lib.getPlayState (pid)
var { state } = play_statesetPlayState
var result = await heos_lib
.setPlayState (pid, 'play') // play, pause, stop
var { pid, state } = resultgetNowPlayingMedia
var now_playing = await heos_lib
.getNowPlayingMedia (pid)
var { type, song, artist } = now_playinggetVolume
var { pid, level } = await heos_lib.getVolume (pid)setVolume
var result = await heos_lib.setVolume (pid, level)
var { pid, level } = resultvolumeUp
var result = await heos_lib.volumeUp (pid, step)
var { pid, step } = resultvolumeDown
var result = await heos_lib.volumeDown (pid, step)
var { pid, step } = resultgetMute
var { pid, state } = await heos_lib.getMute (pid)setMute
var result = await heos_lib.setMute (pid, state)
var { pid, state } = resulttoggleMute
var result = await heos_lib.toggleMute (pid)
var { pid } = resultgetPlayMode
var play_mode = await heos_lib.getPlayMode (pid)
var { pid, repeat, shuffle } = play_modesetPlayMode
var result = await heos_lib
.setPlayMode (pid, repeat, shuffle)
var { pid, repeat, shuffle } = resultgetQueue
var range = [0, 50].join (',')
var queue_data = await heos_lib.getQueue (pid, range)
var { count, items } = queue_dataplayQueueItem
var result = await heos_lib.playQueueItem (pid, qid)
var { pid, qid } = resultremoveFromQueue
var result = await heos_lib.removeFromQueue (pid, qid)
var { pid, qid } = resultsaveQueue
var result = await heos_lib.saveQueue (pid, name)
var { pid, name } = resultclearQueue
var result = await heos_lib.clearQueue (pid)
var { pid } = resultmoveQueueItem
var sqid = 2
var dqid = 8
var result = await heos_lib.moveQueueItem (pid, sqid, dqid)
var { pid, sqid, dqid } = resultplayNext
var result = await heos_lib.playNext (pid)
var { pid } = resultplayPrevious
var result = await heos_lib.playPrevious (pid)
var { pid } = resultgetMusicSources
var [ source_info ] = await heos_lib.getMusicSources ()
var { name, type, sid } = source_infogetSourceInfo
var [ source_info ] = await heos_lib.getSourceInfo (sid)
var { name, type, sid } = source_infobrowseSource
var sid = 1024 // see getMusicSources
var range = [0, 5].join (',')
var { count, items } = await heos_lib
.browseSource (sid, range)
var [{ name, type, cid }] = itemsbrowseSourceContainers
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 }] = itemsgetSourceSearchCriteria
var criterias_list = await heos_lib
.getSourceSearchCriteria (sid)
var [{ name, scid, cid }] = criterias_listbrowseSearch
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 }] = itemsItem 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 } = resultplayPresetStation
var preset = 1 // see getHeosFavorites
var result = await heos_lib.playPresetStation (pid, preset)
var { pid, preset } = resultplayInputSource
var input_name = 'inputs/hdradio' // see HEOS specification
var result = await heos_lib.playInputSource (pid, input_name)
var { pid, input } = resultplayInputSourceFrom
var input_name = 'input/hdradio' // see HEOS specification
var result = await heos_lib
.playInputSourceFrom (pid, spid, input_name)
var { pid, spid, input } = resultplayUrl
var result = await heos_lib.playUrl (pid, url)
var { pid, url } = resultaddContainerToQueue
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 } = resultaid (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 } = resultgetHeosPlaylists
var range = [0, 50].join (',')
var { count, items } = await heos_lib
.getHeosPlaylists (range)
var [{ name, type, cid }] = itemsrenameHeosPlaylist
var result = await heos_lib
.renameHeosPlaylist (sid, cid, name)
var { sid, cid, name } = resultdeleteHeosPlaylist
var result = await heos_lib
.deleteHeosPlaylist (sid, cid)
var { sid, cid } = resultgetHeosHistory
var type = 'tracks' // tracks, stations
var range = [0, 50].join (',')
var { count, items } = await heos_lib
.getHeosHistory (type, range)
var [{ name, type, cid }] = itemsretrieveAlbumMetadata
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).
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago