In addition to the HTTP endpoints presented in the official docs, the WiiM's HTTP API allows for way more undocumented operations.
If any functionality you need is not listed here, feel free to create a PR with additional info. The instructions on how to set up the interceptor are specified here.
All HTTP requests use the GET method, regardless whether they set or get a resource.
-
- Command:
getStaticIpInfo - Args: None
- Example: https://192.168.1.100/httpapi.asp?command=getStaticIpInfo
- Output example:
{ "wlanStaticIp": "192.168.100/24", "wlanGateWay": "192.168.1.1", "wlanDnsServer": "8.8.8.8", "wlanStaticIpEnable": 1, "ethStaticIp": "", "ethGateWay": "", "ethDnsServer": "", "ethStaticIpEnable": 0 } - Observations
- If the WiiM device is configured to use DHCP, the above string values will be empty (see the ethernet related keys).
- Command:
-
- Command:
setWlanStaticIp - Keyword args:
ipAddr: Static IP address to set + netmaskgateWay: GatewaydnsServer: The DNS Server (default:8.8.8.8)
- Example: https://192.168.1.100/httpapi.asp?command=setWlanStaticIp:ipAddr=192.168.1.100/24:gateWay=192.168.1.1:dnsServer=8.8.8.8
- Output:
- Success:
OK
- Success:
- Command:
-
- Command:
startbtdiscovery - Args:
NUM_SECONDS: Number of seconds for which to run the scan for - Example: https://192.168.1.100/httpapi.asp?command=startbtdiscovery:3
- Output:
- Success:
OK
- Success:
- Command:
-
- Command:
getbtdiscoveryresult - Args: None
- Example: https://192.168.1.100/httpapi.asp?command=getbtdiscoveryresult
- Output (JSON):
num: Number of found devicesscan_status: BT scan step0: Not started1: Initializing2: ??? (never seen it)3: Scanning4: Finished scanning
list: List of found devices
- Output example:
{ "num": 1, "scan_status": 3, "list": [ { "name": "Bedroom TV", "ad": "1d:a2:53:1a:85:9c", "ct": 0, "role": "Audio Source" } ] } - Observations:
- Already paired devices may be listed
- Command:
-
- Command:
clearbtdiscoveryresult - Args: None
- Example: https://192.168.1.100/httpapi.asp?command=clearbtdiscoveryresult
- Output:
- Success:
OK
- Success:
- Command:
-
-
Command:
getbthistory -
Args: None
-
Example: https://192.168.1.100/httpapi.asp?command=getbthistory
-
Output (JSON):
num: Number of found devicesscan_status: BT scan step1: Initializing2: ??? (never seen it)3: Scanning4: Finished scanning
list: List of found devices
-
Output example:
{ "num": 1, "scan_status": 0, "list": [ { "name": "My Speaker", "ad": "9c:2a:be:2e:ce:f1", "ct": 0, "role": "Audio Sink" } ] }
-
-
- Command:
connectbta2dpsynk - Args:
BT_MAC_ADDRESS - Example: https://192.168.1.100/httpapi.asp?command=connectbta2dpsynk:9c:2a:be:2e:ce:f1
- Output:
- Success:
OK - Error:
Failed
- Success:
- Observations:
- The device should be an
Audio Sink(e.g. speaker, A/V reciever). The audio output will be changed to the device.
- The device should be an
- Command:
-
- Command:
disconnectbta2dpsynk - Args:
BT_MAC_ADDRESS - Example: https://192.168.1.100/httpapi.asp?command=disconnectbta2dpsynk:9c:2a:be:2e:ce:f1
- Output:
- Success:
OK
- Success:
- Command:
-
- Command:
getbtpairstatus - Args: None
- Example: https://192.168.1.100/httpapi.asp?command=getbtpairstatus
- Output (JSON):
result: Pair status1: Disconnected2: Connecting (assumption, never seen it)3: Connected
- Output example:
{"result":3}
- Command:
-
- Command:
getSpdifOutSwitchDelayMs - Args: None
- Example: https://192.168.1.100/httpapi.asp?command=getSpdifOutSwitchDelayMs
- Output example
800 - Observations:
- This value only makes sense if the output interface is SPDIF (optical out).
- Value can be retrieved even if output is not SPDIF
- Command:
-
- Command:
setSpdifOutSwitchDelayMs - Args:
SPDIF_OUT_SWITCH_DELAY_MS - Example: https://192.168.1.100/httpapi.asp?command=setSpdifOutSwitchDelayMs:800
- Output:
- Success:
OK
- Success:
- Observations:
- Value can be set even if output is not SPDIF
SPDIF_OUT_SWITCH_DELAY_MSis upper bound to 3000.
- Command:
-
- Command:
getChannelBalance - Args: None
- Example: https://192.168.1.100/httpapi.asp?command=getChannelBalance
- Output example
0.0 - Observations:
- The value will be a number ranging from
-1.0(fully panned left) to1.0(fully panned right).
- The value will be a number ranging from
- Command:
-
- Command:
setChannelBalance - Args:
CHANNEL_BALANCE:-1.0to1.0(decimal is optional) - Example: https://192.168.1.100/httpapi.asp?command=setChannelBalance:0
- Output
- Success:
OK - Error:
Failed
- Success:
- Command:
-
- Command:
EQOff - Args: None
- Example: https://192.168.1.100/httpapi.asp?command=EQOff
- Output:
{"status":"OK"}
- Command:
-
- Command:
EQGetList - Args: None
- Example: https://192.168.1.100/httpapi.asp?command=EQGetList
- Output (JSON): a list of equalizer presets
- Output example:
[ "Acoustic", "Bass Booster", "Bass Reducer", "Classical", "Dance", "Deep", "Electronic", "Flat", "Game", "Hip-Hop", "Jazz", "Latin", "Loudness", "Lounge", "Movie", "Piano", "Pop", "R&B", "Rock", "Small Speakers", "Spoken Word", "Treble Booster", "Treble Reducer", "Vocal Booster" ]
- Command:
-
- Command:
EQLoad - Args: one of the preset names
- Examples:
- Output (JSON): the resulting 10-band equalizer configuration
- Output example:
{ "EQStat": "On", "Name": "Classical", "pluginURI": "http://moddevices.com/plugins/caps/Eq10HP", "EQBand": [ { "index": 0, "param_name": "band31Hz", "value": 4.8 }, { "index": 1, "param_name": "band63Hz", "value": 3.8 }, { "index": 2, "param_name": "band125Hz", "value": 3 }, { "index": 3, "param_name": "band250Hz", "value": 2.5 }, { "index": 4, "param_name": "band500Hz", "value": -1.5 }, { "index": 5, "param_name": "band1kHz", "value": -1.5 }, { "index": 6, "param_name": "band2kHz", "value": 0 }, { "index": 7, "param_name": "band4kHz", "value": 2.2 }, { "index": 8, "param_name": "band8kHz", "value": 3.2 }, { "index": 9, "param_name": "band16kHz", "value": 3.8 } ], "channelMode": "Stereo", "status": "OK", "source_name": "wifi" }
- Command:
-
- Command:
Squeezelite:getState - Args: None
- Output (JSON):
default_server: the LMS instance to which the player would connect automaticallystate:discovering: player is discovering LMS instancesconnected: player is connected to an LMS
discover_list: list of LMS instances found in the player's networkauto_connect: whether to automatically re-connect to the previously connected LMS instance
- Example: https://192.168.1.100/httpapi.asp?command=Squeezelite:getState
- Output example:
{ "default_server": "192.168.1.4:3483", "state": "discovering", "discover_list": [ "192.168.1.4:3483", "192.168.1.123:3483" ], "connected_server": "192.168.1.4:3483", "auto_connect": 1 }
- Command:
-
- Command:
Squeezelite:discover - Args: None
- Example: https://192.168.1.100/httpapi.asp?command=Squeezelite:discover
- Output:
OK
- Command:
-
- Command:
Squeezelite:autoConnectEnable - Args:
ON: 0 or 1 - Examples:
- Output:
OK
- Command:
-
- Command:
Squeezelite:connectServer - Args:
LMS IP Address - Example:
- Output:
OK
- Command:
-
- Command:
LED_SWITCH_SET - Args:
ON: 0 or 1 - Examples:
- Output:
- Success:
OK
- Success:
- Command:
-
- Command:
Button_Enable_SET - Args:
ON: 0 or 1 - Examples:
- Output:
- Success:
OK
- Success:
- Command: