131 lines
4.0 KiB
Markdown
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" ]
|
|
```
|