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
- Host: GitHub
- URL: https://github.com/Petro31/ha-integration-multizone-controller
- Owner: Petro31
- License: mit
- Created: 2021-04-27T14:39:24.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-07-08T11:11:56.000Z (almost 2 years ago)
- Last Synced: 2024-02-14T21:16:26.105Z (over 1 year ago)
- Topics: hacs, media-players, multizone-controller, volume-increment, zone-volume
- Language: Python
- Homepage:
- Size: 16.6 KB
- Stars: 14
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ha-multizone-controller
[](https://github.com/custom-components/hacs)
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 RequiredList 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_zoneCycle through available media_player zones.
Service data attribute | Optional | Description
-- | -- | --
`entity_id` | yes | Target a specific mutlizone controller sensor.
multizone_controller.volume_upTurn a zone volume up.
Service data attribute | Optional | Description
-- | -- | --
`entity_id` | yes | Target a specific mutlizone controller sensor.
multizone_controller.volume_downTurn a zone volume down.
Service data attribute | Optional | Description
-- | -- | --
`entity_id` | yes | Target a specific mutlizone controller sensor.
multizone_controller.toggle_volume_muteToggle to mute/unmute a zone's volume.
Service data attribute | Optional | Description
-- | -- | --
`entity_id` | yes | Target a specific mutlizone controller sensor.
multizone_controller.volume_muteToggle 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_setSet 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