openhab-docs/_bindings/mpd1/readme.md

131 lines
4.0 KiB
Markdown

---
id: mpd
label: MPD
title: MPD - Bindings
type: binding
description: "[Music Player Daemon (MPD)](http://www.musicpd.org/) 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."
source: https://github.com/openhab/openhab1-addons/blob/master/bundles/binding/org.openhab.binding.mpd/README.md
since: 1x
install: manual
---
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
{% include base.html %}
# MPD Binding
[Music Player Daemon (MPD)](http://www.musicpd.org/) 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:
```
mpd="<openHAB-command>:<player-id>:<player-commandLine>[,<openHAB-command>:<player-id>:<player-commandLine>][,...]"
```
where the parts in `[]` are optional.
The Player-Id corresponds with the configuration in `mpd.cfg` where one has to configure the MPDs:
## Examples
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)
#### Items
```
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" }
```
### Rules
To concatenate artist and title:
```
rule "concat"
when
Item CurrentTrack received update or
Item CurrentArtist received update
then
ConcatInfo.postUpdate(CurrentTrack.state.toString + " / " + CurrentArtist.state.toString)
end
```
#### Sitemap
```
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
#### Items
```
Number PlayHappyBirthdays "Play Happy Birthday" <none> (All) { mpd="ON:playsong=HappyBirthdays" }
```
#### Sitemap
```
Switch item=PlayHappyBirthdays mappings=[ON="Play" ]
```
### Play song from current list
It can be used to choose radio station (streaming URI) from playlist defined.
### Items
```
Number CurrentRadioStation "Radio" <none> (All) { mpd="NUMBER:p1:playsongid" }
```
### Sitemap
```
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" ]
```