Code Monkey home page Code Monkey logo

heos_custom's Introduction

Custom improvement of the offial HA integration for Denon HEOS

hacs_badge Maintenance

UPDATE January 2022: The official integration Denon HEOS had grouping features implemented as of Home Asssitant version 2021.12 and this custom integration should not be necessary anymore. It may be deprecated after a time of testing. OBS! If using the mini-media-player card for grouping, note that platform must be changed from 'heos' to 'media_player' for the speaker_group setting (see here). Feel free to continue using the custom integration, it may be used for testing other features like media browsing and similar.

--

The official integration for Denon HEOS in Home Assistant unfortunately lacks the grouping feature. Work is ongoing to add such features to the official integration, but due to some architectual discussions and the time it takes to conclude those, this custom integration allows HEOS-users to start grouping already today. Once this is implemented in the official integration, this custom integration will probably cease to exist.

The grouping feature is available as service calls join and unjoin but for the best user experience I recommend using the amazing mini-media-card which has the grouping feature working from UI/Lovelace.

DISCLAIMER: I am not the codeowner of the official HEOS integration and do not take credit for anything else but adding a grouping-hack while waiting for official support of the feature. Credits for the hard work belongs to Andrew Sayre who is the author of both the official integration and the PyHeos library.

Installation

There are different methods of installing the custom component. HACS is by far the simplest way for unexperienced users and is recomended.

HACS installation

The installation is not - and never will be - included in HACS as a default repo. Mainly since it is only meant as a temporary fix for the lack of grouping feature. However, it can be installed through HACS by adding this repo as a custom repository. When installed it will override the official integration and a warning for using custom integration should be shown in your Home Assistant log upon startup.

  1. Make sure you have HACS installed in your Home Assistant environment.
  2. Go to HACS, select Integrations.
  3. Click on the three dots in the upper right corner and select Custom repositories
  4. Copy/paste the URL for this repo https://github.com/tmjo/heos_custom into the URL-field, select Integration as category and then click Add.
  5. You should now find the Denon HEOS (Custom) integration by searching for it. Install it from HACS.
  6. Restart Home Assistant (a warning should be shown in log saying you're using a custom integration).
  7. Continue to the Configuration-section.

Manual

  1. Navigate to you home assistant configuration folder.
  2. Create a custom_components folder of it does not already exist, then navigate into it.
  3. Download the folder heos from this repo and add it into your custom_components folder.
  4. Restart Home Assistant (a warning should be shown in log saying you're using a custom integration).
  5. Continue to the Configuration-section.

Git installation

  1. Make sure you have git installed on your machine.
  2. Navigate to you home assistant configuration folder.
  3. Create a custom_components folder of it does not already exist, then navigate into it.
  4. Execute the following command: git clone https://github.com/tmjo/heos_custom heos_custom
  5. Run bash links.sh
  6. Restart Home Assistant (a warning should be shown in log saying you're using a custom integration).
  7. Continue to the Configuration-section.

Configuration

Configuration is done through UI/Lovelace. In Home Assistant, click on Configuration > Integrations where you add it with the + icon.

Usage

This custom integration should work the same way as the official integration but has added a grouping feature to enable you to group you speakers - just like you can do it in the HEOS app on you mobile or tablet.

Either use the service calls join and unjoin, and be sure to check out the amazing mini-media-card which has the grouping feature working from UI/Lovelace. With that card you can control grouping easily from your UI.

Issues and development

Please report issues on github. Keep in mind that this is a temporary fix while waiting for a perfect official integration, so minor stuff should be expected.

If you're a pro, please consider to direct your contributions towards the official integration as that would be the best solution for all. Follow the progress on official work (by others) here and here.

Feel free to propose PRs for improvements to this custom workaround too, or other features we could include.

heos_custom's People

Contributors

tmjo avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

remyvv

heos_custom's Issues

Heos devices unavailable after installing custom integration

First of all thank you for this great work!

After installing your configuration all my HEOS devices are shown as unavailable in home assistant. Configured all devices with the original integration, also tried to reset everything and start by configuring everything with the custom integration. In this case the integration can be set up, but no devices are shown/none can be set up.

Am I doing something wrong or did somebody experience the same problem and solved it?

Virtual main controller

Hi, I have the following scenario, with a possible solution, if HEOS allows that.
When I start playing on my living room receiver, I go upstairs and the office speaker joins, it is impossible to unjoin the living room. When I run that command, actually the office unjoins the living room since the living room is the master.

This makes it hard to control all zones, since the master cannot unjoin.

Would it be possible to have the app generate a virtual HEOS speaker that acts as the master? This way, you can play something on that master, and join/unjoin any speaker of receiver without running in to complexities about the master.

If this is not possible, I'll be looking for another solution but it might be nice if it is possible.

Deprecation of discovery_info['ssdp_location']

Since version 2021.12 of Home Assistant, this warning pops up in the logs:

WARNING (MainThread) [homeassistant.helpers.frame] Detected integration that accessed discovery_info['ssdp_location'] instead of discovery_info.ssdp_location; this will fail in version 2022.6. Please report issue to the custom component author for heos using this method at custom_components/heos/config_flow.py, line 29: hostname = urlparse(discovery_info[ssdp.ATTR_SSDP_LOCATION]).hostname

If you'd like i can try to submit a PR fixing this deprecation?

only the speaker for which you enter the ip address remains active.

I have three speakers, ( 3 x 250 denon heos) all of which can be added if I enter the ip address for them, but only the speaker I enter the ip for stays active and the other goes offline after a few minutes. if I then remove heos and enter ip of one of the speakers that are not available, then that speaker works again. however, all three speakers are always active in alexa or heos own mobile app the wifi signal is 100% and i tested both 2.4ghz and 5ghz band, it is only in homeassistant they end up as inaccessible if I look in the log nothing is visible. to get the speakers back in home assistant, I havto heos and then pull the cord out of the speakers then they go in for a while before it happens again. sometime, it has worked to enter ip for one of the other speakers and then press update in the heos integration, the others have appeared for a while again.

Unjoin stops working after 'wrong' join usage

So I have 2 receivers. This means I have two scenario's:

  1. I am playing on the living room and want to add the lounge
  2. I am playing on the lounge and want to add the living room

This is fine and seems to work correctly. I get issues when the following occurs.

  1. I am playing on the living room
  2. I run an automation 'add lounge to living room'
  3. I (accidentally) run an automation 'add living room to lounge'
  4. I try to unjoin, this failes.
  5. I manually unjoin (using the app)
  6. I join using one of either automations
  7. I still cannot unjoin using the automation
  8. After rebooting the whole lot I managed to get it to work, but trying the same it failed once more.

I also have the following:

  • When I add the lounge to the living room, I cannot unjoin the living room and keep the lounge active, or vice versa.
    Is it possible to add that functionality, or the option to 'change' master?
    That is the reason I tried the second join command, but as you can see without success.

Cant sign in to my heos account after configuration.

After downloading and enabling through the custom HEOS integration, I am unable to log into my account. If I search for the 'heos_sign.in' service, it doesn't appear in Home Assistant. I'm not sure if I'm missing something

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.