An open API service indexing awesome lists of open source software.

https://github.com/Petro31/ha-integration-multizone-controller

Integration that creates a multi-zone volume controller for media_players in Home Assistant
https://github.com/Petro31/ha-integration-multizone-controller

hacs media-players multizone-controller volume-increment zone-volume

Last synced: 2 months ago
JSON representation

Integration that creates a multi-zone volume controller for media_players in Home Assistant

Awesome Lists containing this project

README

        

# ha-multizone-controller

[![hacs_badge](https://img.shields.io/badge/HACS-Default-orange.svg?style=for-the-badge)](https://github.com/custom-components/hacs)

Buy Me A Coffee

This creates a sensor that represents the current media_player zone that is under control.

e.g. You have a reciever with 3 zones. When brought into Home Assistant, you get 3 separate Zones. You'd like to turn the volume up for all the zones that are on, or optionally just turn on one.

* The created sensors current state will represent which zones are on. e.g. `All Zones`, `Zone 1`, `Zone 2`, `Zone 1`, `Zone 1,2`, `off`.
* The sensor will contain a list of available media_players (All players that are currently on).
* The sensor will contain a list of active media_players (All players that will be affected by the events).


Installation

* Install using HACS, or copy the contents of `custom_components/multizone_controller/` to `/custom_components/multizone_controller/`
* Restart Home Assistant


Configuration


Basic

```
sensor:
- platform: multizone_controller
zones:
- source: media_player.yamaha_receiver
- source: media_player.yamaha_receiver_zone_2
```


Advanced

```
sensor:
- platform: multizone_controller
zones:
- source: media_player.yamaha_receiver
- source: media_player.yamaha_receiver_zone_2
snap_volume: true
volume_increment: 0.05
volume_max: 1.0
volume_min: 0.2
```


Options


zones list Required

List of media_player entity_ids, the order of the zones is determined by the order of this list.


name str (optional, default: Active Media Player)

Friendly name of the Sensor.


volume_max float (optional, default: 1.0)

A maximum volume that the controller can go to.


volume_min float (optional, default: 0.0)

A minimum volume that the controller can go to.


volume_increment float (optional, default: 0.01)

The amount of volume that moves up and down when a volume_up/down service is used.


snap_volume bool (optional, default: false)

When this is active, the volume will snap to the volume increment. Meaning if you have an increment of 0.5, the volume will only increase to all numerical values that are devisible by 0.05. I.e. 0.0, 0.05, 0.10, 0.15, etc.


Services


multizone_controller.next_zone

Cycle through available media_player zones.

Service data attribute | Optional | Description
-- | -- | --
`entity_id` | yes | Target a specific mutlizone controller sensor.


multizone_controller.volume_up

Turn a zone volume up.

Service data attribute | Optional | Description
-- | -- | --
`entity_id` | yes | Target a specific mutlizone controller sensor.


multizone_controller.volume_down

Turn a zone volume down.

Service data attribute | Optional | Description
-- | -- | --
`entity_id` | yes | Target a specific mutlizone controller sensor.


multizone_controller.toggle_volume_mute

Toggle to mute/unmute a zone's volume.

Service data attribute | Optional | Description
-- | -- | --
`entity_id` | yes | Target a specific mutlizone controller sensor.


multizone_controller.volume_mute

Toggle to mute/unmute a zone's volume.

Service data attribute | Optional | Description
-- | -- | --
`entity_id` | yes | Target a specific mutlizone controller sensor.
`is_volume_muted` | no | True/false for mute/unmute


multizone_controller.volume_set

Set a zone's volume level.

Service data attribute | Optional | Description
-- | -- | --
`entity_id` | yes | Target a specific mutlizone controller sensor.
`is_volume_muted` | no | Float for volume level. Range 0..1