Hunter Douglas PowerView Gen 3 integration

I used an nRF52840-Dongle.

The manufacturer provides a standard firmware that you can flash on it to make it function as a BLE network interface for Wireshark.

Then you can sniff the traffic while you pair the device with the PowerView app. And one of the first few transactions contains the 32 byte encryption key.

So I will have to forget my device and re-pair them?

Is it the same key for all the device? Or 1 key per device?

I have ESPs (ESP32 and ESP8266) so I would prefer to use them if that’s feasible.

If you have special hardware, it seems I cannot use my integrated bluetooth (Lenovo X1 Gen9) to sniff traffic with Wireshark?

Yes.

It is the same key for each user account.

@patman did that I think.

Probably it is regular Bluetooth rather than BLE…

1 Like

JFYI: I did not yet have enough time to succeed on using ESP32. I sniffed via recording the BT traffic on my mobile using the PowerView app.

I guess you need to have root access on your device? I only have 2 corporate phones I cannot use for this.

I’ll see if I can get time to have something to sniff BLE during the holidays. Confidence: 15% :smiley:

You can also just grab the key out of the app data if you have root on an Android phone or an emulator. The emulator doesn’t even need to support bluetooth if you are logging in with an online account. I successfully extracted mine using Waydroid.

sqlite3 ~/.local/share/waydroid/data/data/com.hunterdouglas.powerview/databases/ExdadUesc0LMXnTCcTu4_7 'select home_key from homes;'

Not sure if the file name there is different for every user. On a real phone this would be at /data/data/com.hunterdouglas.powerview/databases/.

2 Likes

Thank you so much @ad1217 ! I got my “key”.

I now need to setup an ESP as a bluetooth proxy as I don’t have any BLE adapter to plug into my NAS where I run HAOS in a VM.

Another week of holiday, that’s my #1 project :slight_smile:

I will try the custom_component from @patman:

@patman do you plan to propose to integrate it in HA core at some point?

That is quite a far way to get there, but in general, why not. First I need to get a clean code to integrate it with HACS as default repository, when it’s stable I can look further. For the moment, I still need to figure out really basic things, e.g. how much I can reuse from the existing integration with the hub, to avoid double work.
Nevertheless, my shades work well and stable since months (but I only have one simple type …).

Thanks. If I can be of any help, let me know.

So far I have:

  • Added a bluetooth proxy via an ESP device as I don’t have bluetooth on my NAS where HA runs into a VM
  • Added your custom component hdpv_ble
  • I can see my Duettes blinds:
    image
  • I added one and I can see when I open or close it with the app (and I guess with the remote as well)

Question:

  • I have the bluetooth “encryption/home key” but I don’t know if I can use it to also control the blinds ? Where should I add it?

Let me know if you want me to test some stuff. I need to place the ESPHome Bluetooth proxy somewhere final, I have other duties for it but I can develop on another one if I need to test the stability of the system.

1 Like

So I easily found where to add the key :smiley:

I added it the way it is requested and restarted HA.

I now see the controls but they fail with:

Failed to perform the action cover/stop_cover. Device did not send confirmation.

I have gathered the logs and opened a bug:

Sorry for the noise in the logs, I have other small issues to fix but they are not impacting this issue :slight_smile:

You need to add it to the const.py file.

Let me know if you want me to test some stuff.

Thanks, will come back to this offer, at the moment, I just finished a fake shade that allows to gather the encryption key and run further tests. Further, I’m working on integrating new types and align with the core integration on, e.g. data types for code reuse.

Wondering if someone can help me troubleshoot…

The integration with my gen3 system has been rock solid basically since it was released. Then this morning, I noticed my shades didn’t’ open on schedule. I didn’t think much of it, and I used the PowerView app. But then they didn’t close in the evening… Closed w/ PowerView.

I looked into Home Assistant, and I see the dreaded red exclamation point that says, “Failed setup, will retry: Connection error to PowerView Hub XXX.XXX.X.XXX: Timeout in communicating with the hub.

I’m not sure what it can be or what caused it. I rebooted the hub. I also made sure I could ping it from the host that Home Assistant is running. No problem. I have a different 3rd party integration with Hunter Douglas that is working as well. Any ideas? Thanks!

I’ve had the same issue. Powered cycled the hub and it went back to normal. Mine lasted about a year before requiring a power cycle.

Yeah. I tried power cycling it, and no change. How would I go about troubleshooting this? I find it interesting that the PowerView app still works just fine.

I actually have two 3rd party integrations w/ Hunter Douglas. One is Brilliant Control (the wall switches), and the other is Home Assistant. The Brilliant Control integration is working just fine. So is the PowerView app. Thus, I believe the issue is on the Home Assistant side. How do I get the right detailed logs to troubleshoot this?

UPDATE: I deleted the integration, and I tried to start over from scratch. This did not work. When I try to manually add it back, it’s not connecting via IP address. Again, The Brilliant integration and the PowerView app still work.

UPDATE 2: No idea what the root issue was, but I just deleted all of my gateways and re-added them. Now my system is working well again… Go figure. Clearly not a Home Assistant issue!

I hadn’t realized that the Gen 3 was added to the powerview integration, I have been using the HomeKit Device integration for the Gen 3 with reasonable success. I also have a Gen 2 unit working just fine with the powerview integration.

I added the Gen 3 to the powerview integration and it is added without error and a ton of entities are added for my 5 shades. However, ALL the entities are showing up as unavailable.

Do I have to delete the HomeKit Device information (and possibly reset my hub)? Is there a setting I need to check in my hub?

Let me know if I’m missing something.

Any idea how to extract the key on IOS?

I am looking at the Powerview+ Gen 3 shades. These are shades that can be controlled directly (hardwired) in addition to via bluetooth. If I have a gen3 hub, does this integration communicate with the hub and then the shades using the wired connection or is it only over bluetooth. Hoping to keep everything hardwired for more robustness.

Thanks

The integration talks to the gateway via TCP and the gateway passes the command to the shades via Bluetooth low energy.

So the direct communication via the hardwire using the powerview+ is limited only to the Hunter Douglas App?

Anyone know if the bond pro also work wirelessly? Bond Pro is listed as “officially” supported by Hunter Douglas.

Your link doesn’t describe any direct communication via the hardwire. It says that control is still handled by the gateway, just like it is with BLE connected shades. I wouldn’t expect the Home Assistant integration to know or care how the gateway is communicating with the individual shades.

“PowerView Gateway: Constantly Connected - The PowerView Gateway works with the PowerView+ Gen 3 Smart Power Supply to communicate with your PowerView+ shades.”

I didn’t know the “Gen 3 Smart Power Supply” existed until you linked it above, so this is just my interpretation of the marketing text, not direct experience.