-
Notifications
You must be signed in to change notification settings - Fork 4
Squeezebox Binding
Documentation of the Squeezebox binding Bundle
Slim Devices was established in 2000, and was first known for its SlimServer used for streaming music, but launched a hardware player named SliMP3 able to play these streams in 2001. Although the first player was fairly simple only supporting wired Ethernet and MP3 natively, it was followed two years later by a slightly more advanced player which was renamed to Squeezebox. Other versions followed, gradually adding native support for additional file formats, Wi-Fi-support, gradually adding larger and more advanced displays as well as a version targeting audiophile users. Support for playing music from external streaming platforms such as Pandora, Napster, Last.fm and Sirius were also added. The devices in general have two operating modes; either standalone where the device connects to an internet streaming service directly, or to a local computer running the Logitech Media Server or a network-attached storage device. Both the server software and large parts of the firmware on the most recent players are released under open source licenses.
In 2006, Slim Devices was acquired by Logitech for $20 million USD. Logitech continued the development of the player until they announced in August 2012 that it would be discontinued. Given the cross-platform nature of the server and software client, some users have ensured the continued use of the platform by utilizing the Raspberry Pi as dedicated Squeezebox device (both client and server).
Taken from: Wiki
For installation of the binding, please see Wiki page Bindings.
Please note there are two parts to the Squeezebox binding. You need to install both org.openhab.io.squeezeserver
and org.openhab.binding.squeezebox
. The io.squeezeserver
bundle is a common library used by both this binding and the Squeezebox action and handles all connections and messaging between openHAB and the Squeeze Server. This ensures you only need to specify one set of configuration in openhab.cfg (see below), which can be used by both the binding and the action.
First you need to let openHAB know where to find your Squeeze Server and each of your Squeezebox devices. This configuration is entered in your openhab.cfg configuration file and is used by both the Squeezebox binding and the Squeezebox Action:
# Squeeze server
squeeze:server.host=A.B.C.D
[squeeze:server.cliport=9090]
[squeeze:server.webport=9000]
# Squeezebox players/devices
squeeze:<player-id>.id=<mac-address-of-player A:B:C:D:E:F>
NOTE: the player-id
will be used in both the binding item configs and the action calls to defined which of your Squeezebox devices to communicate with.
The syntax of an item configuration is shown in the following line in general:
squeeze="<player-id>:<command>[:<extra>]"
Where player-id
matches one of the ids defined in your openhab.cfg file.
Command | Purpose |
---|---|
power | Power on/off your device |
mute | Mute/unmute your device |
volume | Change volume by 5% |
play | Play the current title |
pause | Pause the current title |
stop | Stop the current title |
http:stream | Play the given http stream (obsolete as there is now a new squeezeboxPlayUrl() action for handling this inside rules directly) |
file:file | Play the given file on your server (obsolete as there is now a new squeezeboxPlayUrl() action for handling this inside rules directly) |
sync:player-id2 | Add player-id2 to your device for synced playback |
Variable | Purpose |
title | Title of the current song |
album | Album name of the current song |
artist | Artist name of the current song |
year | Release year of the current song |
genre | Genre name of the current song |
coverart | Address to cover art of the current song |
remotetitle | Title of radio station currently playing |
ircode | String of the catched IR code |
Here are some examples of valid binding configuration strings:
squeeze="player1:volume"
squeeze="player1:title"
squeeze="player1:play"
As a result, your lines in the items file might look like the following:
Dimmer sq_test_volume "Volume [%.1f %%]" { squeeze="player1:volume" }
String sq_test_title "Title [%s]" { squeeze="player1:title" }
Switch sq_test_play "Play" { squeeze="player1:play" }
String sq_test_ircode "IR-Code [%s]" { squeeze="player1:ircode" }
NOTE: when binding the 'play' command to a switch item you will trigger 'play' when the item receives the ON command. It will also trigger 'stop' when the item receives the OFF command. The same applies for 'stop' and 'pause' except ON=>stop/pause and OFF=>play. This is so you can setup a single item for controlling play/stop by defining mappings in your sitemap:
Switch item=sq_test_play mappings=[ON="Play", OFF="Stop"]
And whenever the player state is changed from outside of openHAB these items will be updated accordingly, since there is now no longer a separate item for 'play' and 'isPlaying'.
v1.4.0: Squeezebox binding can store the latest IR code (form the infrared remote) in a variable, which can be used to do some actions. Look at this rule:
rule "IR Code catched"
when
Item sq_test_ircode received update
then
if (sq_test_ircode.state=="00ff32cd") {
sendCommand(Licht_Schlafzimmer, ON)
logInfo("IR Code rules", "schalte Schlafzimmerlicht ein")
} else if (sq_test_ircode.state=="00ff708f") {
sendCommand(Licht_Schlafzimmer, OFF)
logInfo("IR Code rules", "schalte Schlafzimmerlicht aus")
}
end
Installation
Community
- Support
- News Archive
- Presentations
- How to Contribute
- IDE Setup
- How to Implement a Binding
- How to Implement an Action
- Projects using openHAB
- User Interfaces
- Classic UI
- iOS Client
- Android Client
- GreenT UI
- CometVisu
- Bindings
- Asterisk Binding
- Astro Binding
- Bluetooth Binding
- Comfo Air Binding
- CUL Binding
- CUPS Binding
- digitalSTROM Binding
- DMX512 Binding
- EnOcean Binding
- Epson Projector Binding
- Exec Binding
- Fritz!Box Binding
- Fritz AHA Binding
- GPIO Binding
- HDAnywhere binding
- Heatmiser Binding
- Homematic Binding
- HTTP Binding
- IHC / ELKO Binding
- Insteon Hub Binding
- Insteon PLM Binding
- Ir-Trans Binding
- KNX Binding
- Koubachi Binding
- MAX!Cube-Binding
- MiLight Binding
- Modbus TCP Binding
- MPD Binding
- MQTT Binding
- MQTTitude binding
- Neohub Binding (Preview)
- Netatmo Binding
- Network Health Binding
- Nibe Heatpump Binding
- Nikobus Binding
- Novelan/Luxtronic Heatpump Binding
- NTP Binding
- One-Wire Binding
- Onkyo AV Receiver Binding
- Open Energy Monitor Binding
- OpenPaths presence detection binding
- OpenSprinkler Binding
- OSGi Configuration Admin Binding
- Philips Hue Binding
- Piface Binding
- Pioneer-AVR-Binding
- Plugwise Binding
- PLCBus Binding
- Pulseaudio Binding
- RFXCOM Binding
- Samsung TV Binding
- Serial Binding
- Snmp Binding
- Squeezebox Binding
- System Info Binding
- Somfy URTSI II Binding
- Sonos Binding
- Swegon ventilation Binding
- TCP/UDP Binding
- Tellstick Binding
- TinkerForge Binding
- VDR Binding
- Velleman-K8055-Binding
- Wake-on-LAN Binding
- Withings Binding
- XBMC Binding
- xPL Binding
- Z-Wave Binding
- Persistence
- db4o Persistence
- rrd4j Persistence
- MySQL Persistence
- MongoDB Persistence
- Sen.Se Persistence
- Cosm Persistence
- Logging Persistence
- Exec Persistence
- MQTT Persistence
- Automation
- Scripts
- Rules
- Actions
- Misc
- REST-API
- Security
- Google Calendar Support
- Twitter Action
- Service Discovery
- Dropbox Bundle
Samples
- Item definitions
- Sitemap definitions
- Binding configurations
- Rules
- REST Examples
- Tips & Tricks
- FAQ
- XSLT Transforms
- Scripts
- Integration with other applications
- Syntax highlighting for external editors
- Update-Scripts
- Samples-Comfo-Air-Binding
- Samples WAC Binding
Release Notes