openhab-docs/_bindings/pulseaudio1
John Cocula aa2ab2cac1 [Add-ons] Generate as Jekyll Collections instead of Jekyll Pages (#355)
* Generate addon docs as Jekyll Collections instead of Jekyll Pages

Simplifies a lot of Jekyll, makes custom addon layout possible.

Signed-off-by: John Cocula <john@cocula.com>

* Adds-on (all but bindings) in user menu

Signed-off-by: John Cocula <john@cocula.com>

* Added openhab-distro submodule

Signed-off-by: John Cocula <john@cocula.com>
2017-03-02 01:08:44 +01:00
..
readme.md [Add-ons] Generate as Jekyll Collections instead of Jekyll Pages (#355) 2017-03-02 01:08:44 +01:00

readme.md

id label title type description source since logo install
pulseaudio Pulseaudio Pulseaudio - Bindings binding This binding allows openHAB to monitor and control pulseaudio servers. https://github.com/openhab/openhab1-addons/blob/master/bundles/binding/org.openhab.binding.pulseaudio/README.md 1x images/addons/pulseaudio.png manual

{% include base.html %}

Pulseaudio Binding

This binding allows openHAB to monitor and control pulseaudio servers.

There is also a binding specifically for openHAB 2 here.

Prerequisites

You need a running pulseaudio server whith module module-cli-protocol-tcp loaded and accessible by the server which runs your openHAB instance.

Binding Configuration

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

Property Default Required Description
<ServerName>.TBD TBD TBD TBD

Item Configuration

The syntax is:

pulseaudio="<ServerName>:<SinkOrSourceName>:<command>"

where:

  • <ServerName> is the name of the pulseaudio server as it is defined in your binding configuration.
  • <SinkOrSourceName> is the name of a pulseaudio sink or source as it is defined on the related server (you can find out the names with the pactl command).
  • the <command> section is optional and one of:
  • EXISTS: queries if the item exists on the pulseaudio server or not
  • MUTED: queries if the item is muted or not
  • SLAVE_SINKS: queries the names of the members of a combined sink (must be bound to a string item)

Here are some examples of valid binding configuration strings:

pulseaudio="Main:combined-music"
pulseaudio="Main:combined-music:SLAVE_SINKS"
pulseaudio="Main:combined-music:EXISTS"
pulseaudio="Main:combined-music:MUTED"

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

Dimmer Sink_FF_Multiroom_Volume	{ pulseaudio="Main:combined-music" }
String Sink_FF_Multiroom_Slaves { pulseaudio="Main:combined-music:SLAVE_SINKS" }
Switch Sink_FF_Multiroom_Exists { pulseaudio="Main:combined-music:EXISTS" }
Switch Sink_FF_Multiroom_Muted  { pulseaudio="Main:combined-music:MUTED" }

In order to find out the names of your pulseaudio sinks you can use the pactl command line tool on the server, which is running your pulseaudio instance:

pactl list sinks short

which returns something like this

9       combined-music  module-combine-sink.c   s16le 2ch 44100Hz       RUNNING

where combined-music is the name of the sink.

Example

The Pulseaudio Binding can be used to e.g. to mute a sink or to change the volume of one.

items/pulseaudio.items

Switch Sink_FF_Multiroom_Muted { pulseaudio="Main:combined-music:MUTED" }

rules/pulseaudio.rule

rule "mute pulseaudio sink on incoming call"
when
	Item Incoming_Call received update
then
	if (Incoming_Call.state==ON) {
		Sink_FF_Multiroom_Muted.sendCommand(ON)
	} else {
		Sink_FF_Multiroom_Muted.sendCommand(OFF)
	}
end