5.9 KiB
title, description, ha_category, ha_release, ha_iot_class, ha_domain, ha_codeowners, ha_config_flow
title | description | ha_category | ha_release | ha_iot_class | ha_domain | ha_codeowners | ha_config_flow | ||
---|---|---|---|---|---|---|---|---|---|
Logitech Squeezebox | Instructions on how to integrate a Logitech Squeezebox player into Home Assistant. |
|
pre 0.7 | Local Polling | squeezebox |
|
true |
The Squeezebox integration allows you to control a Logitech Squeezebox music player from Home Assistant. This lets you control Squeezebox hardware like the Classic, Transporter, Duet, Boom, Radio and Touch and of software players like Squeezelite, SoftSqueeze, SqueezePlayer and SqueezeSlave.
The preferred method to install the Squeezebox integration is through the "Configuration" panel on the left hand side of the frontend. In the "Configuration" panel, choose "Integrations", click the "+" icon in the lower right-hand corner, and choose "Logitech Squeezebox" from the list of new integrations.
Although using the configuration.yaml
file to set up this integration is now deprecated, it continues to work:
# Example configuration.yaml entry
media_player:
- platform: squeezebox
host: IP_ADDRESS
{% configuration %} host: description: The host name or address of the Logitech Media Server, e.g., 192.168.1.21. required: true type: string port: description: The web interface port to Logitech Media Server. required: false default: 9000 type: integer username: description: The username, if password protection is enabled. required: false type: string password: description: The password, if password protection is enabled. required: false type: string {% endconfiguration %}
The Logitech Transporter which have two digital inputs can be activated using a script. The following example turns on the Transporter and activates the toslink input interface:
# Turn on Transporter and activate toslink interface
transporter_toslink:
sequence:
- service: homeassistant.turn_on
entity_id: media_player.transporter
- service: media_player.play_media
data:
entity_id: media_player.transporter
media_content_id: "source:toslink"
media_content_type: "music"
Service call_method
Call a custom Squeezebox JSON-RPC API.
See documentation for this interface on http://HOST:PORT/html/docs/cli-api.html?player=
where HOST and PORT are the host name and port for your Logitech Media Server.
Service data attribute | Optional | Description |
---|---|---|
entity_id |
no | Name(s) of the Squeezebox entities where to run the API method. |
command |
no | Command to pass to Logitech Media Server (p0 in the CLI documentation). |
parameters |
yes | Array of additional parameters to pass to Logitech Media Server (p1, ..., pN in the CLI documentation). |
This service can be used to integrate any Squeezebox action to an automation.
It can also be used to target a Squeezebox from IFTTT (or Dialogflow, Alexa...).
For example, to play an album from your collection, create an IFTTT applet like this:
- Trigger: Google assistant, with sentence:
I want to listen to album $
- Action: JSON post query with such JSON body:
{ "entity_id": "media_player.squeezebox_radio", "command": "playlist", "parameters": ["loadtracks", "album.titlesearch={{TextField}}"] }
This can work with title search and basically any thing. The same wouldn't have worked by calling directly Squeezebox server as IFTTT cannot escape the text field.
Service call_query
Call a custom Squeezebox JSON-RPC API. The result of the query will be stored in the 'query_result' attribute of the player.
See documentation for this interface on http://HOST:PORT/html/docs/cli-api.html?player=
where HOST and PORT are the host name and port for your Logitech Media Server.
Service data attribute | Optional | Description |
---|---|---|
entity_id |
no | Name(s) of the Squeezebox entities where to run the API method. |
command |
no | Command to pass to Logitech Media Server (p0 in the CLI documentation). |
parameters |
yes | Array of additional parameters to pass to Logitech Media Server (p1, ..., pN in the CLI documentation). |
This service can be used to integrate a Squeezebox query into an automation. For example, in a Python script, you can get a list of albums available by an artist like this:
hass.services.call("squeezebox", "call_query", { "entity_id": "media_player.kitchen", "command": "albums", "parameters": ["0", "20", "search:beatles", "tags:al"] })
To work with the results:
result = hass.states.get("media_player.kitchen").attributes['query_result']
Service sync
Add another player to this player's sync group. If the other player is already in a sync group, it will leave it.
Service data attribute | Optional | Description |
---|---|---|
entity_id |
no | Name(s) of the Squeezebox entities where to run the API method. |
other_player |
no | Name of the other Squeezebox player to join the sync group. |
Service unsync
Remove this player from its sync group.
Service data attribute | Optional | Description |
---|---|---|
entity_id |
no | Name(s) of the Squeezebox entities where to run the API method. |
=======