-
Notifications
You must be signed in to change notification settings - Fork 0
SqueezeboxExample
Below you'll find an example configuration for the squeezebox binding to select different radio stations.
Here you'll need to configure your players; please make sure that the id's match the name of your logitech configuration. Do not use special characters for the player id.
### Squeezebox
squeeze:server.host = 192.168.10.59
squeeze:Bad.id = 00:04:20:28:65:c7
squeeze:Bastelzimmer.id = 00:04:20:29:62:0e
squeeze:Buero.id = 00:04:20:29:a7:27
squeeze:Kueche.id = 00:04:20:28:65:91
squeeze:Schlafzimmer.id = 00:04:20:2a:37:4b
squeeze:TV.id = 00:04:20:23:52:3c
squeeze:Wohnbereich.id = 00:04:20:2a:3b:21
squeeze:language = de
/* SqueezeBox */
Number squeezeSelectedPlayer
Number squeezeSelectedStation
Switch squeezePlay
Switch squeezeBadPower "Bad" <squeeze> (gPlayerPower, gPlayerPowerOG) { squeeze="Bad:power" }
Switch squeezeBadPlay "Bad" { squeeze="Bad:play" }
Dimmer squeezeBadVolume "Bad [%.1f %%]" <volume> (gPlayerVolume) { squeeze="Bad:volume" }
Switch squeezeBastelzimmerPower "Gästezimmer" <squeeze> (gPlayerPower, gPlayerPowerOG) { squeeze="Bastelzimmer:power" }
Switch squeezeBastelzimmerPlay "Gästezimmer" { squeeze="Bastelzimmer:play" }
Dimmer squeezeBastelzimmerVolume "Gästezimmer [%.1f %%]" <volume> (gPlayerVolume) { squeeze="Bastelzimmer:volume" }
Switch squeezeBueroPower "Büro" <squeeze> (gPlayerPower, gPlayerPowerOG) { squeeze="Buero:power" }
Switch squeezeBueroPlay "Büro" { squeeze="Buero:play" }
Dimmer squeezeBueroVolume "Büro [%.1f %%]" <volume> (gPlayerVolume) { squeeze="Buero:volume" }
Switch squeezeSchlafzimmerPower "Schlafzimmer" <squeeze> (gPlayerPower, gPlayerPowerOG) { squeeze="Schlafzimmer:power" }
Switch squeezeSchlafzimmerPlay "Schlafzimmer" { squeeze="Schlafzimmer:play" }
Dimmer squeezeSchlafzimmerVolume "Schlafzimmer [%.1f %%]" <volume> (gPlayerVolume) { squeeze="Schlafzimmer:volume" }
Switch squeezeTVPower "TV" <squeeze> (gPlayerPower, gPlayerPowerEG, gTV) { squeeze="TV:power" }
Switch squeezeTVPlay "TV" { squeeze="TV:play" }
Dimmer squeezeTVVolume "TV [%.1f %%]" <volume> (gPlayerVolume) { squeeze="TV:volume" }
Switch squeezeKuechePower "Küche" <squeeze> (gPlayerPower, gPlayerPowerEG) { squeeze="Kueche:power" }
Switch squeezeKuechePlay "Küche" { squeeze="Kueche:play" }
Dimmer squeezeKuecheVolume "Küche [%.1f %%]" <volume> (gPlayerVolume) { squeeze="Kueche:volume" }
Switch squeezeWohnbereichPower "Wohnbereich" <squeeze> (gPlayerPower, gPlayerPowerEG) { squeeze="Wohnbereich:power" }
Switch squeezeWohnbereichPlay "Wohnbereich" { squeeze="Wohnbereich:play" }
Dimmer squeezeWohnbereichVolume "Wohnbereich [%.1f %%]" <volume> (gPlayerVolume) { squeeze="Wohnbereich:volume" }
#squeeze.rules
import org.openhab.core.library.types.*
import org.openhab.model.script.actions.*
import org.openhab.action.squeezebox.*
// Handle squeezebox radio station UI
rule "SqueezePlayerRadioStation"
when
Item squeezePlay changed
or
Item squeezeSelectedStation changed
or
Item squeezeSelectedPlayer changed
then
logInfo("squeeze.rules", "SqueezePlayerPlay")
var String [] players = newArrayList("Bad", "Bastelzimmer", "Buero", "Schlafzimmer", "TV", "Kueche", "Wohnbereich");
var String[] urls = newArrayList(
"http://stream.srg-ssr.ch/drs1/mp3_128.m3u", // Radio SRF1
"http://stream.srg-ssr.ch/drs2/mp3_128.m3u", // Radio SRF2
"http://stream.srg-ssr.ch/drs3/mp3_128.m3u", // Radio SRF3
"http://www.swissgroove.ch/listen.m3u", // Swiss Groove
"http://icecast.argovia.ch/argovia128.m3u", // Radio Argovia
"http://stream.srg-ssr.ch/rsj/mp3_128.m3u", // Swiss Jazz
"http://mp3-live.swr3.de/swr3_m.m3u" // SWR 3
)
logInfo("squeeze.rules", squeezeSelectedStation.toString)
var stationIndex = ((squeezeSelectedStation.state as DecimalType).intValue - 1)
var station = urls.get(stationIndex) as String;
var playerIndex = ((squeezeSelectedPlayer.state as DecimalType).intValue - 1)
var player = players.get(playerIndex) as String
logInfo("squeeze.rules", player)
logInfo("squeeze.rules", station)
if (squeezePlay.state == ON) {
squeezeboxPlayUrl(player, station)
} else {
squeezeboxStop(player)
}
end
#squeeze.sitemap
sitemap
{
Frame label="System" {
Text label="Audio" icon="squeeze" {
Frame label="Alle" {
Switch item=gPlayerPowerAll label="EG & OG"
Switch item=gPlayerPowerEG label="EG"
Switch item=gPlayerPowerOG label="OG"
Group item=gPlayerPower label="Ein / Aus" {
Switch item=squeezeBadPower
Switch item=squeezeBastelzimmerPower
Switch item=squeezeBueroPower
Switch item=squeezeSchlafzimmerPower
Switch item=squeezeTVPower
Switch item=squeezeKuechePower
Switch item=squeezeWohnbereichPower
}
Group item=gPlayerVolume label="Lautstärke" {
Slider item=squeezeBadVolume switchSupport
Slider item=squeezeBastelzimmerVolume switchSupport
Slider item=squeezeBueroVolume switchSupport
Slider item=squeezeSchlafzimmerVolume switchSupport
Slider item=squeezeTVVolume switchSupport
Slider item=squeezeKuecheVolume switchSupport
Slider item=squeezeWohnbereichVolume switchSupport
}
Slider item=gPlayerVolume label="Lautstärke"
}
Frame label="Einzeln" {
Selection item=squeezeSelectedPlayer label="Gerät" mappings=[1="Bad", 2="Gästezimmer", 3="Büro", 4="Schlafzimmer", 5="TV", 6="Küche", 7="Wohnbereich"]
Selection item=squeezeSelectedStation label="Sender" mappings=[1="SRF 1", 2="SRF 2", 3="SRF 3", 4="Swiss Groove", 5="Argovia", 6="Swiss Jazz", 7="SWR 3"]
Switch item=squeezePlay label="Stop / Play" mappings=[OFF="Stop", ON="Play"]
Switch item=squeezeBadPower visibility=[squeezeSelectedPlayer==1]
Switch item=squeezeBastelzimmerPower visibility=[squeezeSelectedPlayer==2]
Switch item=squeezeBueroPower visibility=[squeezeSelectedPlayer==3]
Switch item=squeezeSchlafzimmerPower visibility=[squeezeSelectedPlayer==4]
Switch item=squeezeTVPower visibility=[squeezeSelectedPlayer==5]
Switch item=squeezeKuechePower visibility=[squeezeSelectedPlayer==6]
Switch item=squeezeWohnbereichPower visibility=[squeezeSelectedPlayer==7]
Slider item=squeezeBadVolume switchSupport visibility=[squeezeSelectedPlayer==1]
Slider item=squeezeBastelzimmerVolume switchSupport visibility=[squeezeSelectedPlayer==2]
Slider item=squeezeBueroVolume switchSupport visibility=[squeezeSelectedPlayer==3]
Slider item=squeezeSchlafzimmerVolume switchSupport visibility=[squeezeSelectedPlayer==4]
Slider item=squeezeTVVolume switchSupport visibility=[squeezeSelectedPlayer==5]
Slider item=squeezeKuecheVolume switchSupport visibility=[squeezeSelectedPlayer==6]
Slider item=squeezeWohnbereichVolume switchSupport visibility=[squeezeSelectedPlayer==7]
}
}
}
}
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
- Automation
- Scripts
- Rules
- Actions
- Bindings
- AlarmDecoder Binding
- Anel Binding
- Asterisk Binding
- Astro Binding
- BenQ Projector Binding
- Bluetooth Binding
- Comfo Air Binding
- Config Admin Binding
- CUL Binding
- CUPS Binding
- DAIKIN Binding
- Davis Binding
- digitalSTROM Binding
- DMX512 Binding
- DSC Alarm Binding
- DSMR Binding
- Ecobee Binding
- EDS OWSever Binding
- eKey Binding
- Energenie Binding
- EnOcean Binding
- Epson Projector Binding
- Exec Binding
- Freebox Binding
- Freeswitch Binding
- Fritz AHA Binding
- Fritz!Box Binding
- FS20 Binding
- Global Cache IR Binding
- GPIO Binding
- HAI/Leviton OmniLink Binding
- HDAnywhere Binding
- Heatmiser Binding
- Homematic / Homegear Binding
- HTTP Binding
- IEC 62056-21 Binding
- IHC / ELKO Binding
- ImperiHome Binding
- Insteon Hub Binding
- Insteon PLM Binding
- IRtrans Binding
- jointSPACE-Binding
- KNX Binding
- Koubachi Binding
- Leviton/HAI Omnilink Binding
- Lg TV Binding
- MAX!Cube-Binding
- MAX! CUL Binding
- MiLight Binding
- MiOS Binding
- Modbus TCP Binding
- MPD Binding
- MQTT Binding
- MQTTitude binding
- Neohub Binding
- Nest Binding
- Netatmo Binding
- Network Health Binding
- Network UPS Tools 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
- pilight Binding
- Pioneer-AVR-Binding
- Plugwise Binding
- PLCBus Binding
- Primare Binding
- Pulseaudio Binding
- RFXCOM Binding
- Samsung AC Binding
- Samsung TV Binding
- Serial Binding
- Satel Alarm Binding
- Snmp Binding
- Somfy URTSI II Binding
- Sonos Binding
- Squeezebox Binding
- Swegon ventilation Binding
- System Info Binding
- TCP/UDP Binding
- Tellstick Binding
- TinkerForge Binding
- Tivo Binding
- VDR Binding
- Velleman-K8055-Binding
- Wake-on-LAN Binding
- Waterkotte EcoTouch Heatpump Binding
- Weather Binding
- Wemo Binding
- Withings Binding
- XBMC Binding
- xPL Binding
- Yamahareceiver Binding
- Zibase Binding
- Z-Wave Binding
- Application Integration
- Asterisk
- Google Calendar
- Linux Media Players
- ROS Robot Operating System
- Telldus Tellstick
- Zoneminder
- Rooted Wink Hub
- Persistence
- db4o Persistence
- rrd4j Persistence
- MySQL Persistence
- MongoDB Persistence
- Sen.Se Persistence
- Cosm Persistence
- Logging Persistence
- Exec Persistence
- MQTT Persistence
- InfluxDB Persistence
- JPA Persistence
- Misc
- Transformations
- REST-API
- Security
- Service Discovery
- Dropbox Bundle
- Voice Control
Samples
- Item definitions
- Sitemap definitions
- Binding configurations
- Comfo Air Binding
- Nest Binding (new)
- Nest Thermostat
- Rollershutter Groups
- Squeezebox
- WAC Binding
- WebSolarLog
- Rules
- Misc. rule examples
- Alarm Clock
- Convert Farenheit to Celcius
- Taking Rules to New Heights
- Reusable Rules via Functions
- Items, Rules and more Examples of a SmartHome
- REST Examples
- Tips and Tricks
- Scripts
- Syntax highlighting for external editors
- Update-Scripts
- Controlling openHAB with Android
- Usecase examples
Release Notes