[pulseaudio] Allow flexible parameters to find a given pulseaudio device (#12598)
* [pulseaudio] Allow flexible parameters to find a given pulseaudio device To identify the device on the pulseaudio server, you can now use the description instead of the technical id (a.k.a. "name"). To filter furthermore, you can also use the parameter additionalFilters (optional regular expressions that need to match a property value of a device on the pulseaudio server) Closes #12555 Signed-off-by: Gwendal Roulleau <gwendal.roulleau@gmail.com>
This commit is contained in:
@@ -38,8 +38,12 @@ binding.pulseaudio:sourceOutput=false
|
||||
|
||||
## Thing Configuration
|
||||
|
||||
The Pulseaudio bridge requires the host (ip address or a hostname) and a port (default: 4712) as a configuration value in order for the binding to know where to access it.
|
||||
You can use `pactl -s <ip-address|hostname> list sinks | grep "name:"` to find the name of a sink.
|
||||
The Pulseaudio bridge requires the host (ip address or a hostname) and a port (default: 4712) as a configuration value in order for the binding to know where to access it.
|
||||
A Pulseaudio device requires at least an identifier. For sinks and sources, you can use the name or the description. For sink inputs and source outputs, you can use the name or the application name.
|
||||
To know without hesitation the correct value to use, you should use the command line utility `pactl`. For example, to find the name of a sink:
|
||||
`pactl -s <ip-address|hostname> list sinks | grep "name:"`
|
||||
If you need to narrow the identification of a device (in case name or description are not consistent and sufficient), you can use the `additionalFilters` parameter (optional/advanced parameter), in the form of one or several (separator '###') regular expression(s), each one matching a property value of the pulseaudio device. You can use every properties listed with `pactl`.
|
||||
|
||||
|
||||
## Channels
|
||||
|
||||
@@ -74,7 +78,7 @@ This requires the module **module-simple-protocol-tcp** to be present on the tar
|
||||
```
|
||||
Bridge pulseaudio:bridge:<bridgname> "<Bridge Label>" @ "<Room>" [ host="<ipAddress>", port=4712 ] {
|
||||
Things:
|
||||
Thing sink multiroom "Snapcast" @ "Room" [name="alsa_card.pci-0000_00_1f.3", activateSimpleProtocolSink=true, simpleProtocolSinkPort=4711] // the name corresponds to `pactl list sinks` output
|
||||
Thing sink multiroom "Snapcast" @ "Room" [name="alsa_card.pci-0000_00_1f.3", activateSimpleProtocolSink=true, simpleProtocolSinkPort=4711, additionalFilters="analog-stereo###internal"]
|
||||
Thing source microphone "microphone" @ "Room" [name="alsa_input.pci-0000_00_14.2.analog-stereo"]
|
||||
Thing sink-input openhabTTS "OH-Voice" @ "Room" [name="alsa_output.pci-0000_00_1f.3.hdmi-stereo-extra1"]
|
||||
Thing source-output remotePulseSink "Other Room Speaker" @ "Other Room" [name="alsa_input.pci-0000_00_14.2.analog-stereo"]
|
||||
|
||||
Reference in New Issue
Block a user