amati.linea HTTP requests Back


cmd string
param JSON-encoded null, number, string, array, object

cmd play-single
param [ uri, clear ]
plays single track or remote playlist, setting clear to true will clear the current playlist

cmd vol-up, vol-down
param null
changes volume by 2% step

cmd db
param null
returns current database of albums, artists, genres and playlists

cmd play-pause
param null
toggles between play and pause state

cmd players
param null
returns a list of other players in the same network

cmd status
param null
returns various information on current player status

cmd playlistdelete
param [ playlist, filename ]
removes all occurrences of filename in playlist

cmd source
param "sourcename" (int, auto, ext1, ext2, ext3, ext4)
selects current source (if hardware supports it)

cmd zone
param zonenumber (1..4)
toggles selected zone number on/off (if hardware supports it)

cmd save
param playlistname
saves current playlist as playlistname

cmd action
param { action: action, type: type, arg: arg }
    action play, replace, add
    type album, artist, genre, filesystem, radio, playlist, current
    arg name
    adds, replaces, adds and plays track(s) or playlists matching search name criteria into current playlist

    action remove
    type current
    arg trackid
    removes track with id trackid from current playlist

    action remove
    type playlist
    arg playlistname
    deletes stored playlist named playlistname

    action track
    type playlist
    arg playlistname
    returns info on tracks in playlist playlistname

    action track
    type album, artist, genre
    arg name
    returns info on tracks matching search name criteria

cmd MPD command
param [ arg1, arg2, ... ]
sends a command to MPD server, returns JSON-encoded result

Helper function for LogicMachine

You can use amaticmd(ip, cmd, param) function to access player functions from LogicMachine

function amaticmd(ip, cmd, param)
  local url, res, err


  socket.http.TIMEOUT = 5

  if param == nil then
    param = json.null

  param = json.encode(param)

  cmd = socket.url.escape(cmd)
  param = socket.url.escape(param)

  url = string.format('http://%s/cgi-bin/audio/request.cgi?request=cmd&cmd=%s&param=%s', ip, cmd, param)
  res, err = socket.http.request(url)

  if res then
    return json.pdecode(res)
    return nil, err