HD PowerView Binding Issue - openHAB 3.3.0

Hi all,

I have officially upgraded to openHAB 3.3.0 release build. This includes using the release build of the HD PowerView binding.

Now, all my blinds seem to be online. However, I’m unable to control them…if I use the JAR file from HD PowerView Binding connection error - Add-ons / Bindings - openHAB Community all seems to work as expected.

For reference I have the revision 1 PowerView hub :slight_smile: and no error logs displayed in OH :frowning:

As always any help would be greatly appreciated.

Many thanks in advance :slight_smile:


@Jeevs can you please turn on trace logging and post the results?

log:set TRACE org.openhab.binding.hdpowerview

@laursen => ping!

@AndrewFG of course, please see output below:

With TRACE just set intially:

2022-06-27 18:04:12.856 [TRACE] [rview.internal.HDPowerViewWebTargets] - API command GET
2022-06-27 18:04:12.927 [TRACE] [rview.internal.HDPowerViewWebTargets] - JSON response = {"firmware":{"mainProcessor":{"name":"PowerView Hub","revision":1,"subRevision":1,"build":857}}}
2022-06-27 18:04:12.930 [DEBUG] [ternal.handler.HDPowerViewHubHandler] - Main processor firmware version received: PowerView Hub, 1.1.857
2022-06-27 18:04:12.933 [DEBUG] [ternal.handler.HDPowerViewHubHandler] - Polling for state
2022-06-27 18:04:12.935 [TRACE] [rview.internal.HDPowerViewWebTargets] - API command GET
2022-06-27 18:04:13.027 [TRACE] [rview.internal.HDPowerViewWebTargets] - JSON response = {"shadeIds":[18210,64255,9142,28943],"shadeData":[{"id":18210,"name":"S2l0Y2hlbiBCbGluZA==","roomId":28574,"groupId":13505,"order":0,"type":6,"batteryStrength":177,"batteryStatus":3, "positions":{"position1":65535,"posKind1":1}},{"id":64255,"name":"Q29uc2VydmF0b3J5IFJpZ2h0","roomId":28574,"groupId":13505,"order":1,"type":6,"batteryStrength":0,"batteryStatus":0, "positions":{"position1":65535,"posKind1":1}},{"id":9142,"name":"Q29uc2VydmF0b3J5IERvb3I=","roomId":28574,"groupId":13505,"order":2,"type":6,"batteryStrength":176,"batteryStatus":3, "positions":{"position1":65535,"posKind1":1}},{"id":28943,"name":"Q29uc2VydmF0b3J5IExlZnQ=","roomId":28574,"groupId":13505,"order":3,"type":6,"batteryStrength":177,"batteryStatus":3, "positions":{"position1":65535,"posKind1":1}}]}
2022-06-27 18:04:13.036 [DEBUG] [ternal.handler.HDPowerViewHubHandler] - Received data for 4 shades
2022-06-27 18:04:13.039 [DEBUG] [ternal.handler.HDPowerViewHubHandler] - Updating shade '18210'
2022-06-27 18:04:13.042 [DEBUG] [rnal.handler.HDPowerViewShadeHandler] - Unable to set capabilities for shade 18210
2022-06-27 18:04:13.045 [DEBUG] [rnal.handler.HDPowerViewShadeHandler] - The 'shadeCapabilities' field has not yet been initialized
2022-06-27 18:04:13.051 [DEBUG] [ternal.handler.HDPowerViewHubHandler] - Updating shade '64255'
2022-06-27 18:04:13.054 [DEBUG] [rnal.handler.HDPowerViewShadeHandler] - Unable to set capabilities for shade 64255
2022-06-27 18:04:13.058 [DEBUG] [rnal.handler.HDPowerViewShadeHandler] - The 'shadeCapabilities' field has not yet been initialized
2022-06-27 18:04:13.063 [DEBUG] [ternal.handler.HDPowerViewHubHandler] - Updating shade '9142'
2022-06-27 18:04:13.066 [DEBUG] [rnal.handler.HDPowerViewShadeHandler] - Unable to set capabilities for shade 9142
2022-06-27 18:04:13.069 [DEBUG] [rnal.handler.HDPowerViewShadeHandler] - The 'shadeCapabilities' field has not yet been initialized
2022-06-27 18:04:13.074 [DEBUG] [ternal.handler.HDPowerViewHubHandler] - Updating shade '28943'
2022-06-27 18:04:13.076 [DEBUG] [rnal.handler.HDPowerViewShadeHandler] - Unable to set capabilities for shade 28943
2022-06-27 18:04:13.079 [DEBUG] [rnal.handler.HDPowerViewShadeHandler] - The 'shadeCapabilities' field has not yet been initialized
2022-06-27 18:04:13.084 [TRACE] [rview.internal.HDPowerViewWebTargets] - API command GET
2022-06-27 18:04:13.161 [TRACE] [rview.internal.HDPowerViewWebTargets] - JSON response = {"sceneIds":[],"sceneData":[]}
2022-06-27 18:04:13.163 [DEBUG] [ternal.handler.HDPowerViewHubHandler] - Received data for 0 scenes
2022-06-27 18:04:13.165 [DEBUG] [ternal.handler.HDPowerViewHubHandler] - Preserving scene channels, no changes detected
2022-06-27 18:04:13.167 [TRACE] [rview.internal.HDPowerViewWebTargets] - API command GET
2022-06-27 18:04:13.240 [TRACE] [rview.internal.HDPowerViewWebTargets] - JSON response = {"sceneCollectionIds": [],"sceneCollectionData":[]}
2022-06-27 18:04:13.242 [DEBUG] [ternal.handler.HDPowerViewHubHandler] - Received data for 0 sceneCollections
2022-06-27 18:04:13.245 [DEBUG] [ternal.handler.HDPowerViewHubHandler] - Preserving scene group channels, no changes detected
2022-06-27 18:04:13.247 [TRACE] [rview.internal.HDPowerViewWebTargets] - API command GET
2022-06-27 18:04:13.321 [TRACE] [rview.internal.HDPowerViewWebTargets] - JSON response = {"scheduledEventIds": [],"scheduledEventData":[]}
2022-06-27 18:04:13.324 [DEBUG] [ternal.handler.HDPowerViewHubHandler] - Received data for 0 scheduledEvents
2022-06-27 18:04:13.326 [DEBUG] [ternal.handler.HDPowerViewHubHandler] - Preserving automation channels, no changes detected

Once a command is sent (up/down):

2022-06-27 18:06:53.777 [TRACE] [rview.internal.HDPowerViewWebTargets] - JSON response = {"shade":{"id":28943,"name":"Q29uc2VydmF0b3J5IExlZnQ=","roomId":28574,"groupId":13505,"order":3,"type":6,"batteryStrength":177,"batteryStatus":3, "positions":{"position1":65535,"posKind1":1}},"shadeData":[]}
2022-06-27 18:06:53.780 [DEBUG] [rnal.handler.HDPowerViewShadeHandler] - Unable to set capabilities for shade 28943
2022-06-27 18:06:53.784 [TRACE] [powerview.internal.api.ShadePosition] - setPosition(): capabilities=-- not in database -- (-1), coords=PRIMARY_POSITION, percent=100
2022-06-27 18:06:53.794 [TRACE] [rview.internal.HDPowerViewWebTargets] - API command PUT
2022-06-27 18:06:53.797 [TRACE] [rview.internal.HDPowerViewWebTargets] - JSON command = {"shade":{"positions":{"posKind1":1,"position1":65535}}}
2022-06-27 18:06:53.876 [TRACE] [rview.internal.HDPowerViewWebTargets] - JSON response = {"shade":{"id":28943,"name":"Q29uc2VydmF0b3J5IExlZnQ=","roomId":28574,"groupId":13505,"order":3,"type":6,"batteryStrength":177,"batteryStatus":3, "positions":{"position1":65535,"posKind1":1}}}
2022-06-27 18:06:53.880 [DEBUG] [rnal.handler.HDPowerViewShadeHandler] - Unable to set capabilities for shade 28943
2022-06-27 18:06:53.882 [DEBUG] [rnal.handler.HDPowerViewShadeHandler] - The 'shadeCapabilities' field has not yet been initialized

Many thanks for the quick response! :slight_smile:

Thanks, so it seems to be a regression of:

What is the response to this (you can just paste it in a browser):

It seems that type and capabilities are not included in the list of shades, so just would need to confirm that they are not included in response for individual shades either.

@AndrewFG - in this case we could fallback to old behavior, i.e. reintroduce:

for Hub v1. However, this issue could then be fixed by having a possibility to manually configure type and/or capabilities in this situation. WDYT?

@laursen thanks very much for the quick response.

Please see response below:

{"shade":{"id":18210,"name":"S2l0Y2hlbiBCbGluZA==","roomId":28574,"groupId":13505,"order":0,"type":6,"batteryStrength":177,"batteryStatus":3, "positions":{"position1":65535,"posKind1":1}},"shadeData":[{"id":64255,"name":"Q29uc2VydmF0b3J5IFJpZ2h0","roomId":28574,"groupId":13505,"order":1,"type":6,"batteryStrength":0,"batteryStatus":0, "positions":{"position1":65535,"posKind1":1}},{"id":9142,"name":"Q29uc2VydmF0b3J5IERvb3I=","roomId":28574,"groupId":13505,"order":2,"type":6,"batteryStrength":176,"batteryStatus":3, "positions":{"position1":65535,"posKind1":1}},{"id":28943,"name":"Q29uc2VydmF0b3J5IExlZnQ=","roomId":28574,"groupId":13505,"order":3,"type":6,"batteryStrength":177,"batteryStatus":3, "positions":{"position1":65535,"posKind1":1}}]}

Many thanks,

Thanks @Jeevs, this confirms that Hub v1 doesn’t provide type and capabilities.

@AndrewFG - so specifically I would propose new shade configuration options, i.e.:

Thing shade shade1 [id=18210, type=42, capabilities=0]

Capabilities is probably what is really needed, so maybe type can be omitted? And I guess it should be defaulted to 0, or whatever would reintroduce legacy behavior in this case. Then, whenever any value is received from the hub, this should then override configured/defaulted value. To make this tolerable for the user, we can list all capabilities in the README. But I don’t really see any way around letting the user tell us the capabilities when the hub won’t?

@Jeevs - just out of interest: Which kind of shades do you have? I’m assuming that hub v1 doesn’t inform about capabilities, but not sure if it can be ruled out that the shades don’t report it. In the PowerView app, did they appear automatically as the correct type etc., or did you have to select it?

1 Like

Actually, user could decide whether to provide type or capabilities. Type will find correct capabilities in database, but being able to provide capabilities directly would be nice when having an unsupported type. :slight_smile:

I have Duette shades and once discovered the type of shade has to be manually set within the PowerView app. I cannot see anything in relation to capabilities within the app. Where should I be seeing this?

Thanks as always :slight_smile:

Can you please indicate (screenshot) how you set the type in the App? Is there (say) a dropdown selection? Or do you enter a string (“Duette”)? Or do you enter a number (“42”)?

I’ve now created an issue for tracking this:

Did you have any issues controlling the shades previously? Is it “normal” Duette or TDBU?

1 Like

I’m guessing same way as when configuring power supply, which is not even detected automatically with Hub v2. And assuming Duette without TDBU, it would be capabilities 0, so probably default capabilities work fine with this shade. With the current functionalities, is capabilities 0 considered similar as before 3.3?

I am thinking that on hub v1 the following…

  1. type resp. capabilities should default to 0
  2. logger.warn if shade does not return a type resp. capabilities
  3. shade property shows type resp. capabilities ‘UNKOWN’
  4. user can enter a type config param same as they do it in the app

Agree to default capabilities to 0.

I disagree slightly. Preferably no warning at all, but we could discuss showing a warning if type or capabilities is not configured by the user. So the first time user would probably see a warning instructing to provide configuration, and after that no warning.

Only problem is that if default capabilities 0 is fine (Duette, Roller Blind, etc), it’s annoying to have to shut up a warning by providing a configuration matching the default. On the other hand, it’s also annoying when a more advanced shade is not behaving correctly, but in this case the documentation will explain how to configure it.

Probably “Unknown (0)” for consistency, as currently something like “Bottom Up (0)” will be displayed.

Agreed - and/or capabilities so that capabilities can be configured directly when type is not yet included in internal database.

When the thing is created, and the shade data has no type info, and a config param value does not exist, then log a warning, and auto- set the config param to 0. This means that the warning is logged just once…

Please see screenshots below:

Select ‘Blind Type’:

I’ve got normal Duette shades, since the bug logged in December 2021 quoted in the original post I was using the JAR file provided there without any issues. Until I upgraded today to 3.3.0 where I thought all the changes would have been merged into the release, that is when I found out it stopped working…

Hope this helps and as always thanks for the hard work :slight_smile:

1 Like

Thanks for the screenshots. In the second shot “select blind type”, is that the full list of choices? Or does the list scroll down further? If so can you please screen shot all of the pages with all the choices of shade types?

@laursen I am happy to write the code for this. And you can review :wink: Is that Ok?

1 Like

And one of you, please add it to the created issue as documentation. :wink:


This is the complete list of choices available to select from in the v1 hub :slight_smile:

Of course I’ll add the screenshots to the created issue :slight_smile:

Sounds like I have the task to create the issue, so you can add the screenshots to it :wink:

EDIT: oh I see he opened an issue already…

1 Like