Adding Tilt to the Hunter Douglas PowerView Cover integration (Luxaflex)

@Kingy444 it’s working both ways, however mapping’s sometimes off - close.cover for the BU sometimes actives the TD as well. Perhaps this all has to do with the aio_powerview_api.

Can you also share your fork of the shutter-card? I’m very curious if maybe that will solve some of my problems.

Nevertheless, great work you did here Todd!

Thanks Todd! Will give it a try later this week and report back how it went.

@Kingy444 thanks for sharing. Removed the core plugin and installed yours. It detects the right top and bottom screens. But controlling them seems to go wrong. When I change the position slider of the top, the bottom will move, or sometimes both will move. Also the direction errors on the entity card seem to wrong.

Will do some more testing when I have the time, but so far mixed results. Any suggestions?

Was working well before the recent change request was made (splitting the motors to their own class)

The problem is - the blind needs to send the position of both motors when it sends a move request or the position of the other motor is treated as 0 and moved as you described

The blind should update on the position of the opposite motor but isn’t instantaneous anymore (I need to work out why)
You can click attributes and see topMotor and bottomMotor position - atm whatever that value says is what is sent with the move request

Ideally I would prefer to have them as one entity that knows of both positions and not creating a seperate entity for each motor

Let me know if you still have issues after checking those attributes

The above explanation is very clear. With that in mind it no longer seems to work ‘random’. The only issue left is that the top of the screens works inverted to the bottom.

So 0 means all the way up and 100 all the way down while this is the other way around for the bottom or regular screens. This has the result that up and down arrows on the entity cards do not work as expected for the top part.

You’re right, and I actually fixed that but then I didn’t like the way it was all working aesthetically in the UI (looked weird with all closed and the arrows being in different spots)

I went the route of treating them as more of an ‘open’ ‘close’ button than a ‘up’ ‘down’ button

@bdraco could you give some architectural direction on how those buttons should be treated ?
Not sure if the arrows should be open/close or up/down

Logically I get what @carpaij is asking for, but made a call to align with the other entities at this stage

Has tilt been added to this yet? I tried the custom component but only had open and close available to me as far as I could tell.

As with others adding tilt is a little challenging having none of my own to test but the concept should be similar if you want to try it out

Can you post the result of this http://yourhubipaddress/api/shades

You can add /shadeid to the end if you know it just to cut down what is required here but I can filter out if you don’t

Thanks for your work on this, here are the results from the api call.

{"shadeIds":[15642,5097],"shadeData":[{"id":15642,"type":23,"capabilities":1,"batteryKind":2,"smartPowerSupply":{"status":0,"id":0,"port":0},"batteryStatus":3,"batteryStrength":175,"roomId":21092,"firmware":{"revision":2,"subRevision":1,"build":2690,"index":12},"name":"UmlnaHQgQmxpbmQ=","groupId":55227,"positions":{"posKind1":1,"position1":65505}},{"id":5097,"type":23,"capabilities":1,"batteryKind":2,"smartPowerSupply":{"status":0,"id":0,"port":0},"batteryStatus":3,"batteryStrength":175,"roomId":21092,"firmware":{"revision":2,"subRevision":1,"build":2690,"index":12},"name":"TGVmdCBCbGluZA==","groupId":55227,"positions":{"position1":27580,"posKind1":3}}]}

This was with one of the shades completely open (“posKind1”:1,“position1”:65505) and one blind closed with the veins tilted (“position1”:27580,“posKind1”:3).

When they tilt, do they just tilt 100% on and off or can you partially tilt ?

They can be partially tilted.

Just watched this video to get an idea how they work - Hunter Douglas Silhouette with PowerView Tutorial - YouTube

Are you comfortable submitting a post command to the blind if I send you one to test if we need to close the shade manually before sending a tilt command or whether the tilt command itself will work

If you’re on windows using Powershell is probably the easiest way

Sure, I’m willing to give it a try!

And yes, I’m on windows.

Open the shade normally (non tilted) and then run the below in powershell and let us know. Hoping that sending the command to tilt the shade will make the cover close first

Invoke-WebRequest -Method PUT -Uri http://powerviewip/api/shades/15642 -Body "{'shade': { 'positions': { 'posKind1': 3, 'position1': 15420 } } }" -ContentType "application/json" -UseBasicParsing

Hmmm, getting an unexpected token error.

Invoke-WebRequest : {"message":"Unexpected token '","error":{}}
At line:1 char:1
+ Invoke-WebRequest -Method PUT -Uri http://myhubip/api/shades/156 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebExc
   eption
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

Edit:
I just threw together a quick node-red flow (I was too lazy to work out the character escaping and what-not for powershell) with the json you posted, and indeed the blind fully closes then sets the veins to the specified tilt position.

Thanks - weird because I tested the call before posting (for standard shades but the cal is the same really)

That’s good news as there is already support for tilt in HA within the same entity so it doesn’t need the same workarounds that a tdbu does

I’ll try to find some time to wack something together and post an update

One question - could you set the vane to complete open and check the position

I’m a little confused looking at the API we use to send the commands to the hub

Silhouette shades (type 23) are an extension of the type 44 but looks to be because it has a different maximum open position (see the tilt_open commands)
Not a big issue just working out if I need another constant to store that in

Fully open tilt position is {“posKind1”:3,“position1”:32767}, so yeah it looks like the only difference is the tilt open position, 65535 for type 44 and 32767 for type 23.

Here is another one for type 51:

{
			"id": 42081,
			"type": 51,
			"capabilities": 2,
			"batteryKind": 1,
			"smartPowerSupply": {
				"status": 0,
				"id": 0,
				"port": 0
			},
			"batteryStatus": 4,
			"batteryStrength": 180,
			"roomId": 14640,
			"firmware": {
				"revision": 2,
				"subRevision": 5,
				"build": 287,
				"index": 280
			},
			"name": "<name>",
			"groupId": 52387,
			"positions": {
				"posKind2": 3,
				"position2": 65535,
				"posKind1": 1,
				"position1": 342
			},
			"signalStrength": 4
		}

This only closes from top to bottom, but has tilt.

does yours tilt anywhere or only when the blind is fully closed like type 23 ?

i mainly ask for the same reason i ask about the type 23 - to understand how they would behave if half open and asked to tilt - need to know if the device needs to send 1 command or multilpe

It tilts at all positions.