# MPD Binding
Music Player Daemon (MPD) (opens new window) is a flexible, powerful, server-side application for playing music. Through plugins and libraries it can play a variety of sound files while being controlled by its network protocol.
With the openHAB MPD binding you can control Music Player Daemons.
# Supported Things
This binding supports one ThingType: mpd
# Discovery
If zeroconf is enabled in the Music Player Daemon, it is discovered. Each Music Player daemon requires a unique zeroconf_name for correct discovery.
# Thing Configuration
The ThingType mpd requires the following configuration parameters:
Parameter Label | Parameter ID | Description | Required |
---|---|---|---|
IP Address | ipAddress | Host name or IP address of the Music Player Daemon | yes |
Port | port | Port number on which the Music Player Daemon is listening. Default: 6600 | yes |
Password | password | Password to access the Music Player Daemon | no |
# Channels
The following channels are currently available:
Channel Type ID | Item Type | Description |
---|---|---|
control | Player | Start/Pause/Next/Previous |
volume | Dimmer | Volume in percent |
stop | Switch | Stop playback |
currentalbum | String | Current album |
currentartist | String | Current artist |
currentname | String | Current name |
currentsong | Number | Current song |
currentsongid | Number | Current song id |
currenttitle | String | Current title |
currenttrack | Number | Current track |
# Full Example
# Thing
mpd:mpd:music [ ipAddress="192.168.1.2", port=6600 ]
# Items
Switch morning_music "Morning music"
Player mpd_music_player "Player" { channel = "mpd:mpd:music:control" }
Dimmer mpd_music_volume "Volume [%d %%]" { channel = "mpd:mpd:music:volume" }
Switch mpd_music_stop "Stop" { channel = "mpd:mpd:music:stop" }
String mpd_music_album "Album [%s]" { channel = "mpd:mpd:music:currentalbum" }
String mpd_music_artist "Artist [%s]" { channel = "mpd:mpd:music:currentartist" }
String mpd_music_name "Name [%s]" { channel = "mpd:mpd:music:currentname" }
Number mpd_music_song "Song [%d]" { channel = "mpd:mpd:music:currentsong" }
Number mpd_music_song_id "Song Id [%d]" { channel = "mpd:mpd:music:currentsongid" }
String mpd_music_title "Title [%s]" { channel = "mpd:mpd:music:currenttitle" }
Number mpd_music_track "Track [%d]" { channel = "mpd:mpd:music:currenttrack" }
# Sitemap
Frame label="Music" {
Default item=mpd_music_player
Slider item=mpd_music_volume
Switch item=mpd_music_stop
Text item=mpd_music_album
Text item=mpd_music_artist
Text item=mpd_music_name
Text item=mpd_music_song
Text item=mpd_music_song_id
Text item=mpd_music_title
Text item=mpd_music_track
}
# Rule
rule "turn on morning music"
when
Item morning_music changed to ON
then
val actions = getActions("mpd","mpd:mpd:music")
if(actions === null) {
logWarn("myLog", "actions is null")
return
}
actions.sendCommand("clear")
actions.sendCommand("load", "MorningMusic");
actions.sendCommand("shuffle");
actions.sendCommand("play");
end
Caught a mistake or want to contribute to the documentation? Edit this page on GitHub (opens new window)