Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jzucker2/multi-zone-receiver
A virtual multi zone receiver integration for Home Assistant (through HACS)
https://github.com/jzucker2/multi-zone-receiver
hacs hacs-integration home-assistant home-assistant-custom-component home-assistant-hacs home-assistant-integration media-player mediaplayer receiver
Last synced: 3 days ago
JSON representation
A virtual multi zone receiver integration for Home Assistant (through HACS)
- Host: GitHub
- URL: https://github.com/jzucker2/multi-zone-receiver
- Owner: jzucker2
- License: mit
- Created: 2024-09-08T02:24:51.000Z (19 days ago)
- Default Branch: master
- Last Pushed: 2024-09-18T20:57:21.000Z (8 days ago)
- Last Synced: 2024-09-20T12:49:59.758Z (7 days ago)
- Topics: hacs, hacs-integration, home-assistant, home-assistant-custom-component, home-assistant-hacs, home-assistant-integration, media-player, mediaplayer, receiver
- Language: Python
- Homepage:
- Size: 291 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Multi Zone Receiver
[![GitHub Release][releases-shield]][releases]
[![GitHub Activity][commits-shield]][commits]
[![License][license-shield]](LICENSE)[![pre-commit][pre-commit-shield]][pre-commit]
[![Black][black-shield]][black][![hacs][hacsbadge]][hacs]
[![Project Maintenance][maintenance-shield]][user_profile]
[![BuyMeCoffee][buymecoffeebadge]][buymecoffee][![Discord][discord-shield]][discord]
[![Community Forum][forum-shield]][forum]**TO BE REMOVED: If you need help, as a developer, to use this custom component tempalte,
please look at the [User Guide in the Cookiecutter documentation](https://cookiecutter-homeassistant-custom-component.readthedocs.io/en/stable/quickstart.html)****This component will set up the following platforms.**
| Platform | Description |
| --------------- | --------------------------------------- |
| `binary_sensor` | Show something `True` or `False`. |
| `sensor` | Show info from Multi Zone Receiver API. |![example][exampleimg]
## Installation
1. Using the tool of choice open the directory (folder) for your HA configuration (where you find `configuration.yaml`).
2. If you do not have a `custom_components` directory (folder) there, you need to create it.
3. In the `custom_components` directory (folder) create a new folder called `multi_zone_receiver`.
4. Download _all_ the files from the `custom_components/multi_zone_receiver/` directory (folder) in this repository.
5. Place the files you downloaded in the new directory (folder) you created.
6. Restart Home Assistant
7. In the HA UI go to "Configuration" -> "Integrations" click "+" and search for "Multi Zone Receiver"Using your HA configuration directory (folder) as a starting point you should now also have this:
```text
custom_components/multi_zone_receiver/translations/en.json
custom_components/multi_zone_receiver/translations/fr.json
custom_components/multi_zone_receiver/translations/nb.json
custom_components/multi_zone_receiver/translations/sensor.en.json
custom_components/multi_zone_receiver/translations/sensor.fr.json
custom_components/multi_zone_receiver/translations/sensor.nb.json
custom_components/multi_zone_receiver/translations/sensor.nb.json
custom_components/multi_zone_receiver/__init__.py
custom_components/multi_zone_receiver/api.py
custom_components/multi_zone_receiver/binary_sensor.py
custom_components/multi_zone_receiver/config_flow.py
custom_components/multi_zone_receiver/const.py
custom_components/multi_zone_receiver/manifest.json
custom_components/multi_zone_receiver/sensor.py
custom_components/multi_zone_receiver/switch.py
```## Configuration is done in the UI
## Contributions are welcome!
If you want to contribute to this please read the [Contribution guidelines](CONTRIBUTING.md)
## Credits
This project was generated from [@oncleben31](https://github.com/oncleben31)'s [Home Assistant Custom Component Cookiecutter](https://github.com/oncleben31/cookiecutter-homeassistant-custom-component) template.
Code template was mainly taken from [@Ludeeus](https://github.com/ludeeus)'s [integration_blueprint][integration_blueprint] template
---
[integration_blueprint]: https://github.com/custom-components/integration_blueprint
[black]: https://github.com/psf/black
[black-shield]: https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge
[buymecoffee]: https://www.buymeacoffee.com/jzucker2
[buymecoffeebadge]: https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg?style=for-the-badge
[commits-shield]: https://img.shields.io/github/commit-activity/y/jzucker2/multi-zone-receiver.svg?style=for-the-badge
[commits]: https://github.com/jzucker2/multi-zone-receiver/commits/main
[hacs]: https://hacs.xyz
[hacsbadge]: https://img.shields.io/badge/HACS-Custom-orange.svg?style=for-the-badge
[discord]: https://discord.gg/Qa5fW2R
[discord-shield]: https://img.shields.io/discord/330944238910963714.svg?style=for-the-badge
[exampleimg]: example.png
[forum-shield]: https://img.shields.io/badge/community-forum-brightgreen.svg?style=for-the-badge
[forum]: https://community.home-assistant.io/
[license-shield]: https://img.shields.io/github/license/jzucker2/multi-zone-receiver.svg?style=for-the-badge
[maintenance-shield]: https://img.shields.io/badge/maintainer-%40jzucker2-blue.svg?style=for-the-badge
[pre-commit]: https://github.com/pre-commit/pre-commit
[pre-commit-shield]: https://img.shields.io/badge/pre--commit-enabled-brightgreen?style=for-the-badge
[releases-shield]: https://img.shields.io/github/release/jzucker2/multi-zone-receiver.svg?style=for-the-badge
[releases]: https://github.com/jzucker2/multi-zone-receiver/releases
[user_profile]: https://github.com/jzucker2## Notes
- Custom integration requirements
- https://developers.home-assistant.io/docs/creating_integration_manifest/#requirements
- https://github.com/home-assistant/core/blob/dev/requirements.txt
- denon avr component
- https://github.com/home-assistant/core/tree/dev/homeassistant/components/denonavr
- https://developers.home-assistant.io/blog/2024/04/30/store-runtime-data-inside-config-entry/
- https://developers.home-assistant.io/blog/2024/08/05/coordinator_async_setup/
- https://developers.home-assistant.io/blog/2024/05/01/improved-hass-data-typing
- https://github.com/home-assistant/core/blob/dev/homeassistant/components/ecowitt/entity.py
- https://developers.home-assistant.io/docs/asyncio_thread_safety/
- This covers adding and removing and callbacks
- https://developers.home-assistant.io/docs/development_validation
- https://developers.home-assistant.io/docs/core/platform/significant_change/
- I want to use this to stabilize volume changes and keep them response on the client end
- https://github.com/home-assistant/core/blob/931c8f9e66193348fdcf92f93e7803d79b077f2f/homeassistant/components/group/config_flow.py#L22
- For selecting entities
- https://developers.home-assistant.io/docs/core/entity/#entity-naming
- Entity naming (this needs a redo)## Debug Notes
```
home-assistant | 2024-09-12 13:55:15.081 DEBUG (MainThread) [custom_components.multi_zone_receiver] New state from 'media_player.denon_avr_x4300h_main_zone_living_room': ''
home-assistant | 2024-09-12 13:55:20.175 DEBUG (MainThread) [custom_components.multi_zone_receiver] New state from 'media_player.denon_avr_x4300h_zone_3_kitchen': ''
home-assistant | 2024-09-12 13:55:20.807 DEBUG (MainThread) [custom_components.multi_zone_receiver] New state from 'media_player.denon_avr_x4300h_zone_2_dining_room': ''
home-assistant | 2024-09-12 13:55:22.345 DEBUG (MainThread) [custom_components.multi_zone_receiver] New state from 'media_player.denon_avr_x4300h_zone_2_dining_room': ''
```