Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(Hunter Douglas) blinds type missing and control is greyed out. #115257

Open
coaxialdaisy opened this issue Apr 9, 2024 · 15 comments
Open

(Hunter Douglas) blinds type missing and control is greyed out. #115257

coaxialdaisy opened this issue Apr 9, 2024 · 15 comments

Comments

@coaxialdaisy
Copy link

The problem

  1. 1 error msg in the system log shows the type of shade can not be identified, and fall back to basic bottom up capabilities.

  2. the 2nd error shows: Error adding entity cover.kitchen_north for domain cover with platform hunterdouglas_powerview. Therefore, the blinds control is greyed out.
    image

What version of Home Assistant Core has the issue?

core-2024.4.2

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant Container

Integration causing the issue

Hunter Douglas PowerView

Link to integration documentation on our website

https://www.home-assistant.io/integrations/hunterdouglas_powerview

Diagnostics information

1st:

Logger: aiopvapi.resources.shade
Source: components/hunterdouglas_powerview/init.py:84
First occurred: 5:56:12 PM (8 occurrences)
Last logged: 8:11:24 PM

Shade type not found. Falling back to basic bottom up capabilities: <class 'aiopvapi.resources.shade.BaseShade'> - {'id': 7003, 'name': 'QmF0aCBFYXN0', 'roomId': 4896, 'groupId': 35661, 'order': 2, 'type': 40, 'batteryStrength': 94, 'batteryStatus': 1, 'positions': {'position1': 32768, 'posKind1': 3}, 'name_unicode': 'Bath East'}
Shade type not found. Falling back to basic bottom up capabilities: <class 'aiopvapi.resources.shade.BaseShade'> - {'id': 53627, 'name': 'QmF0aCBTb3V0aA==', 'roomId': 4896, 'groupId': 35661, 'order': 3, 'type': 40, 'batteryStrength': 127, 'batteryStatus': 3, 'positions': {'position1': 32768, 'posKind1': 3}, 'name_unicode': 'Bath South'}
Shade type not found. Falling back to basic bottom up capabilities: <class 'aiopvapi.resources.shade.BaseShade'> - {'id': 36492, 'name': 'S2l0Y2hlbiBOb3J0aA==', 'roomId': 4896, 'groupId': 35661, 'order': 0, 'type': 40, 'batteryStrength': 116, 'batteryStatus': 3, 'positions': {'position1': 65535, 'posKind1': 1}, 'name_unicode': 'Kitchen North'}
Shade type not found. Falling back to basic bottom up capabilities: <class 'aiopvapi.resources.shade.BaseShade'> - {'id': 7003, 'name': 'QmF0aCBFYXN0', 'roomId': 4896, 'groupId': 35661, 'order': 2, 'type': 40, 'batteryStrength': 94, 'batteryStatus': 1, 'positions': {'position1': 65535, 'posKind1': 1}, 'name_unicode': 'Bath East'}
Shade type not found. Falling back to basic bottom up capabilities: <class 'aiopvapi.resources.shade.BaseShade'> - {'id': 53627, 'name': 'QmF0aCBTb3V0aA==', 'roomId': 4896, 'groupId': 35661, 'order': 3, 'type': 40, 'batteryStrength': 127, 'batteryStatus': 3, 'positions': {'position1': 65535, 'posKind1': 1}, 'name_unicode': 'Bath South'}

—————————————————————————
2nd :

Logger: homeassistant.components.cover
Source: helpers/entity_platform.py:580
integration: Cover (documentation, issues)
First occurred: 8:17:08 PM (2 occurrences)
Last logged: 8:19:56 PM

Error adding entity cover.kitchen_north for domain cover with platform hunterdouglas_powerview
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 580, in _async_add_entities
await coro
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 890, in _async_add_entity
await entity.add_to_platform_finish()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1334, in add_to_platform_finish
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 998, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1119, in _async_write_ha_state
state, attr, capabilities, shadowed_attr = self.__async_calculate_state()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1056, in __async_calculate_state
state = self._stringify_state(available)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1004, in _stringify_state
if (state := self.state) is None:
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/cover/init.py", line 321, in state
if (closed := self.is_closed) is None:
^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/hunterdouglas_powerview/cover.py", line 146, in is_closed
return self.positions.primary <= CLOSED_POSITION
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '<=' not supported between instances of 'NoneType' and 'int'

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

Even though the blinds control in the Hunter Douglas integration is unavailable, HASS automation can still trigger scenes defined in the PowerView app.

@home-assistant
Copy link

home-assistant bot commented Apr 9, 2024

Hey there @home-assistant/core, mind taking a look at this issue as it has been labeled with an integration (cover) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of cover can trigger bot actions by commenting:

  • @home-assistant close Closes the issue.
  • @home-assistant rename Awesome new title Renames the issue.
  • @home-assistant reopen Reopen the issue.
  • @home-assistant unassign cover Removes the current integration label and assignees on the issue, add the integration domain after the command.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue.
  • @home-assistant remove-label needs-more-information Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


cover documentation
cover source
(message by IssueLinks)

@home-assistant
Copy link

home-assistant bot commented Apr 9, 2024

Hey there @bdraco, @kingy444, @trullock, mind taking a look at this issue as it has been labeled with an integration (hunterdouglas_powerview) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of hunterdouglas_powerview can trigger bot actions by commenting:

  • @home-assistant close Closes the issue.
  • @home-assistant rename Awesome new title Renames the issue.
  • @home-assistant reopen Reopen the issue.
  • @home-assistant unassign hunterdouglas_powerview Removes the current integration label and assignees on the issue, add the integration domain after the command.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue.
  • @home-assistant remove-label needs-more-information Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


hunterdouglas_powerview documentation
hunterdouglas_powerview source
(message by IssueLinks)

@kingy444
Copy link
Contributor

kingy444 commented Apr 9, 2024

Both of these appear to be upstream errors. Can you please share the json output of your hub from http://<ipaddress>/api/shades

Do you also know what Gen hub you are running. The fallback was added to account for cases where we don't have the capability supported, but the json above is straight up missing the capability

We also don't believe we have type 40 defined (part of the issue here too) - what would the "friendly name" for these be ?

@coaxialdaisy
Copy link
Author

coaxialdaisy commented Apr 9, 2024

Thanks @kingy444 , pls see my answers below:

1a) here is the output from my hub:
http://<ipaddress>/api/shades
image


1b) here is for one of my blinds:
http://<ipaddress>/api/shades/65111

image


2) My hub is G1, (see below screenshots)
image

3) the "type 40" is an initial setting inputted from the PowerView APP configuration
image

4) Not sure what is the "friendly name" you point to? I attached few screenshots for both blinds and hub page in HA and PowerView hub, hopefully they can answer some of your questions.

a) hub and blinds pages in HA

image

image

b) hub and blinds pages in PowerView APP

image

image

@coaxialdaisy
Copy link
Author

coaxialdaisy commented Apr 9, 2024

@kingy444
Copy link
Contributor

kingy444 commented Apr 9, 2024

Thanks - that's really helpful

The 'friendly name' was just the shade type so in this case "Everwood Alternative Wood Blinds"

From the JSON you provided it looks like these could actually have a tilt capability (which I assume HA has never offered you)

Could you take a look at the table published here and let me know which "capability" they fall into

I expect they are bottom up with a 90 degree tilt ability, but only able to tilt when closed (capability 1) but please take a look at all the columns and let me know if there are any discrepancies with that. (Such as you could tilt it when open)

To understand 90 vs 180 tilt that refers to whether the tilt can go all the way up and back down vertically (180) or whether it can only go horizontally (90) then back to the closed position

@coaxialdaisy
Copy link
Author

Thanks @kingy444

I think my blinds are closer to the type of “Venetian, Tilt Anywhere” (51 or 62) blinds that can be tilted 180°, but don't have the bottom-up feature (bottom-up is manual).

@kingy444
Copy link
Contributor

Apologies looks like I never posted the link to the repo

https://github.com/sander76/aio-powerview-api

Looks like you found your way though, have these actually ever worked in HA? (More curious as I cannot understand how previous versions would have given you tilt capability)

To be clear on the initial ask I needed to know how they work in the PowerView App not how they work in HA

From your description they only provide tilt via the app (so I would put them in capability 5 / Tilt Only) but the conflict to that is your provided json says both poskind=1 and poskind1=3 which indicates which motor moves to which position.

The json would indicate you can control both up down and tilt via the PowerView app?

@coaxialdaisy
Copy link
Author

Looks like you found your way though, have these actually ever worked in HA? (More curious as I cannot understand how previous versions would have given you tilt capability)

To be clear on the initial ask I needed to know how they work in the PowerView App not how they work in HA

It never worked in my HA, and every time I clicked on any control in HA, it just made the blinds instance unavailable for a while. I can now only control the blinds by activating different scenes (different positions of the blades) which were pre-set in the PowerView APP and imported into to the integration during HA setup.

But in PoweView APP, the tilt control is working great!, The tilt of the blades can be stopped at any position, very responsive!

From your description they only provide tilt via the app (so I would put them in capability 5 / Tilt Only) but the conflict to that is your provided json says both poskind=1 and poskind1=3 which indicates which motor moves to which position.

The json would indicate you can control both up down and tilt via the PowerView app?

I do not quite understand the definitions in the json. However, the physical machine can only control the tilt of the blinds.

Thanks @kingy444

@kingy444
Copy link
Contributor

kingy444 commented Apr 11, 2024

I'm mainlyconfused with the poskind1 = 1. poskind defines the cover type (primary/1.secondary/2,tilt/3)

could you move shade http://10.0.0.152/api/shades/65111 (Kitchen West) to the below positions using the powerview ap and provide the same output you did previously in the screenshots.

Not sure how responsive the position updates are with Gen 1 so make sure the postion1 value has updated

  1. Tilt fully down
  2. Tilt 90 degrees (horizontal
  3. Tilt Fully Up

Also out of curiousity of the poskind=1 ....

Could we try manually opening a shade (I assume they have a cord ? ) then doing the same to get the positioning.

Happy for you to do whatever positioning testing you can think of based on how you usually use these, this info will all help me make sure their capability is correctly defined and you get full functionaility.

This Kitchen West cover was the one that reported poskind1=1 , and the same cover you provided in the screenshot (and was back to reporting poskind=3 by then.
Some tilt covers do act this way where the poskind is interchangable between a 1 and a 3, but ive never seen a shade that is both manual and powered. I was hoping you could both open AND tilt the cover via the powerview app

@coaxialdaisy
Copy link
Author

could you move shade http://10.0.0.152/api/shades/65111 (Kitchen West) to the below positions using the powerview ap and provide the same output you did previously in the screenshots.

Sorry, what output you are mentioning? If using PowerView, I don’t know if there is a way to generate an error logs or json files from App. May I have your direction? Thanks, @kingy444

@kingy444
Copy link
Contributor

Just move the shade using the app and then visit the url of the shade as you did in the earlier screenshot

I only say using the app so the positions have the most likely hood of being correct - so make sure the numbers have updated in position1 field before grabbing the output from the /shades url

I also mentioned opening one of the shades by hand to try and work out where the poskind1=1 comes into things

@coaxialdaisy
Copy link
Author

Thanks for your clarification, @kingy444. Below is the output:

  1. Tilt fully down

{"shade":{"id":65111,"name":"S2l0Y2hlbiBXZXN0","roomId":4896,"groupId":35661,"order":1,"type":40,"batteryStrength":124,"batteryStatus":3, "positions":{"position1":0,"posKind1":3}},"shadeData":[{"id":7003,"name":"QmF0aCBFYXN0","roomId":4896,"groupId":35661,"order":2,"type":40,"batteryStrength":94,"batteryStatus":1, "positions":{"position1":32768,"posKind1":3}},{"id":53627,"name":"QmF0aCBTb3V0aA==","roomId":4896,"groupId":35661,"order":3,"type":40,"batteryStrength":127,"batteryStatus":3, "positions":{"position1":32768,"posKind1":3}}]}* Connection #0 to host 10.0.0.252 left intact

2. Tilt 90 degrees (horizontal

{"shade":{"id":65111,"name":"S2l0Y2hlbiBXZXN0","roomId":4896,"groupId":35661,"order":1,"type":40,"batteryStrength":124,"batteryStatus":3, "positions":{"position1":65535,"posKind1":1}},"shadeData":[{"id":7003,"name":"QmF0aCBFYXN0","roomId":4896,"groupId":35661,"order":2,"type":40,"batteryStrength":94,"batteryStatus":1, "positions":{"position1":32768,"posKind1":3}},{"id":53627,"name":"QmF0aCBTb3V0aA==","roomId":4896,"groupId":35661,"order":3,"type":40,"batteryStrength":127,"batteryStatus":3, "positions":{"position1":32768,"posKind1":3}}]}* Connection #0 to host 10.0.0.252 left intact

3. Tilt Fully Up

{"shade":{"id":65111,"name":"S2l0Y2hlbiBXZXN0","roomId":4896,"groupId":35661,"order":1,"type":40,"batteryStrength":124,"batteryStatus":3, "positions":{"position1":65535,"posKind1":3}},"shadeData":[{"id":7003,"name":"QmF0aCBFYXN0","roomId":4896,"groupId":35661,"order":2,"type":40,"batteryStrength":94,"batteryStatus":1, "positions":{"position1":32768,"posKind1":3}},{"id":53627,"name":"QmF0aCBTb3V0aA==","roomId":4896,"groupId":35661,"order":3,"type":40,"batteryStrength":127,"batteryStatus":3, "positions":{"position1":32768,"posKind1":3}}]}* Connection #0 to host 10.0.0.252 left intact

Could we try manually opening a shade (I assume they have a cord ? ) then doing the same to get the positioning.

I may not have explained this clearly before. The blinds cannot be tilted manually. It does come with a cord, but it can only be used to pull up the entire blind (all the blades are stacked together at the top)

@kingy444
Copy link
Contributor

Yep that made sense.

What I was asking is for you to do that, then wait then see if the value of "posKind1":3 changed to "posKind":1

This won't be an immediate change though so here are some basic instructions.

  1. Open the Kitchen West shade using the cord
  2. Wait 5 minutes (completely making this one up but assuming the position update is not immediate)
  3. Add refresh=true to the position request like the below
http://10.0.0.152/api/shades/65111?refresh=true
  1. Check the returned result does not say timeout:true, if it does the refresh failed so you will want your try again. I believe a successful refresh says timeout:false

@coaxialdaisy
Copy link
Author

@kingy444 sorry for reply late, just got some time to test. Below is the results. Feel free to review, thanks!

  1. Tilt fully down

{"shade":{"id":65111,"name":"S2l0Y2hlbiBXZXN0","roomId":4896,"groupId":35661,"order":1,"type":40,"batteryStrength":124,"batteryStatus":3, "positions":{"position1":0,"posKind1":3}},"shadeData":[{"id":7003,"name":"QmF0aCBFYXN0","roomId":4896,"groupId":35661,"order":2,"type":40,"batteryStrength":94,"batteryStatus":1, "positions":{"position1":32768,"posKind1":3}},{"id":53627,"name":"QmF0aCBTb3V0aA==","roomId":4896,"groupId":35661,"order":3,"type":40,"batteryStrength":126,"batteryStatus":3, "positions":{"position1":32768,"posKind1":3}}]}

2. Tilt 90 degrees (horizontal

{"shade":{"id":65111,"name":"S2l0Y2hlbiBXZXN0","roomId":4896,"groupId":35661,"order":1,"type":40,"batteryStrength":124,"batteryStatus":3, "positions":{"position1":32768,"posKind1":3}},"shadeData":[{"id":7003,"name":"QmF0aCBFYXN0","roomId":4896,"groupId":35661,"order":2,"type":40,"batteryStrength":94,"batteryStatus":1, "positions":{"position1":32768,"posKind1":3}},{"id":53627,"name":"QmF0aCBTb3V0aA==","roomId":4896,"groupId":35661,"order":3,"type":40,"batteryStrength":126,"batteryStatus":3, "positions":{"position1":32768,"posKind1":3}}]}

3. Tilt Fully Up

{"shade":{"id":65111,"name":"S2l0Y2hlbiBXZXN0","roomId":4896,"groupId":35661,"order":1,"type":40,"batteryStrength":124,"batteryStatus":3, "positions":{"position1":65535,"posKind1":3}},"shadeData":[{"id":7003,"name":"QmF0aCBFYXN0","roomId":4896,"groupId":35661,"order":2,"type":40,"batteryStrength":94,"batteryStatus":1, "positions":{"position1":32768,"posKind1":3}},{"id":53627,"name":"QmF0aCBTb3V0aA==","roomId":4896,"groupId":35661,"order":3,"type":40,"batteryStrength":126,"batteryStatus":3, "positions":{"position1":32768,"posKind1":3}}]}

Lastly, I added one test that tilt up 135 degrees (between "Tilt 90 degrees (horizontal)" and "Tilt Fully Up" )
{"shade":{"id":65111,"name":"S2l0Y2hlbiBXZXN0","roomId":4896,"groupId":35661,"order":1,"type":40,"batteryStrength":124,"batteryStatus":3, "positions":{"position1":49467,"posKind1":3}},"shadeData":[{"id":7003,"name":"QmF0aCBFYXN0","roomId":4896,"groupId":35661,"order":2,"type":40,"batteryStrength":94,"batteryStatus":1, "positions":{"position1":32768,"posKind1":3}},{"id":53627,"name":"QmF0aCBTb3V0aA==","roomId":4896,"groupId":35661,"order":3,"type":40,"batteryStrength":126,"batteryStatus":3, "positions":{"position1":32768,"posKind1":3}}]}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants