The openHAB Documentation Has Moved

The documentation has moved to and

Please use the link below to be redirected to the new version of this article, and update your bookmarks.

MPD Binding

Music Player Daemon (MPD) 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.

By help of the openHAB MPD binding, you can e.g. start/stop playing music in specific rooms / on various channels and change volume.

Binding Configuration

This binding can be configured in the file services/mpd.cfg.

Property Default Required Description
<player-id>.host   Yes IP address or hostname of the MPD player
<player-id>.port   Yes Port number on which the MPD player is listening

where <player-id> is a unique name that you give for the player, such as livingroom, bath, etc.

Item Configuration

The syntax for the Exec binding configuration string is explained here:


where the parts in [] are optional.

The Player-Id corresponds with the configuration in mpd.cfg where one has to configure the MPDs:


Here are some examples of valid binding configuration strings:

mpd="ON:bath:play, OFF:bath:stop"
mpd="INCREASE:bath:volume_increase, DECREASE:bath:volume_decrease"

As a result, your lines in the items file might look like the following:

Switch Mpd_Bathroom_StartStop	"Start/Stop"	(Bathroom)	{ mpd="ON:bad:play, OFF:bad:stop" }

Track Names

Support for track names was added in 1.5 and also ability to set exact volume for dimmer items (previously only increase/decrease actions were available)


String CurrentTrack    "Current track [%s]" { mpd="TITLE:bad:tracktitle" }
String CurrentArtist    "Current artist [%s]" { mpd="ARTIST:bad:trackartist" }
String ConcatInfo       "Now playing [%s]"

Switch Mpd_Bathroom_StartStop       "Start/Stop"   (Bathroom)  { mpd="ON:bad:play, OFF:bad:stop" }
Switch Mpd_Bathroom_NextPrev        "Track control"   (Bathroom)    { mpd="ON:bad:next, OFF:bad:prev" } 
Dimmer Mpd_Bathroom_VolumeControl   "Volume [%d%%]"       (Bathroom)  { mpd="INCREASE:bad:volume_increase, DECREASE:bad:volume_decrease, PERCENT:bad:volume" }


To concatenate artist and title:

rule "concat"
  Item CurrentTrack received update or
  Item CurrentArtist received update
  ConcatInfo.postUpdate(CurrentTrack.state.toString + " / " + CurrentArtist.state.toString)


Text item=CurrentTrack
Text item=CurrentArtist
Text item=ConcatInfo
Switch item=Mpd_Bathroom_StartStop mappings=[OFF="Pause", ON="Play"]
Switch item=Mpd_Bathroom_NextPrev  mappings=[OFF="Previous", ON="Next"]
Slider item=Mpd_Bathroom_VolumeControl

Find song in MPD database by title and play this song


Number PlayHappyBirthdays "Play Happy Birthday" <none> (All) { mpd="ON:playsong=HappyBirthdays" }


Switch item=PlayHappyBirthdays mappings=[ON="Play" ]

Play song from current list

It can be used to choose radio station (streaming URI) from playlist defined.


Number CurrentRadioStation "Radio" <none> (All) { mpd="NUMBER:p1:playsongid" }


Selection item=CurrentRadioStation mappings=[1="ZET Chilli",2="Radio Kolor",3="Radio 7",4="Złote Przeboje",5="EskaROCK",6="RMF Classic",7="RMF Maxxx",11="ESKA",9="RMF",10="MUZO.FM",8="PR 3",12="TOK FM" ]