Extend cover platform with additional usecases/devicetypes #979
Replies: 17 comments 19 replies
-
Awnings over patios. Inverted logic in a sense. Closed would be fully retracted, 0% retracted. |
Beta Was this translation helpful? Give feedback.
-
There are also "top-down bottom-up" shades which are the classic single curtain, but a vertical orientation. |
Beta Was this translation helpful? Give feedback.
-
Are the door-type "covers" out of scope of this discussion? |
Beta Was this translation helpful? Give feedback.
-
Also there are blinds (Shangri-la) that I have.
Essentially they operate as normal roller blinds and are partially transparent; but when you go from 95% to 100% closed they will become much more transparent by tilting.
https://www.alibaba.com/product-detail/Deyi-Smart-interior-decoration-light-filtering_1600625135476.html?spm=a2700.shop_plgr.41413.3.af9618ddTq81Ic
We could potentially solve this by supporting a configurable "Favorite" position; so then I can set the favorite to 95%. Then people can choose to click on close or favorite.
|
Beta Was this translation helpful? Give feedback.
-
I just want to point out that there are parts of the world where it is considered more intuitive to refer to a closed cover as 100% and an open cover as 0% - in contrast to current HA specification. It would for sure be widely appreciated if this would be user / integration configurable. |
Beta Was this translation helpful? Give feedback.
-
Just note that for some device type. Closed/Open will be the result of a combination of two more technical components. For Venetian blind. If the blind is all the way down, then tilting the blades will "open it" based on your definition. From 0% to 100% If the blind is half way down. Then tilting the blades will change its "opening position" from 50% to 100%. We will never reach 0% since only half of the window is covered in the first place. And finally if the blind is fully up, then tilting is pointless and does not change its "opening". What I want to say is that if we want to offer a "opening position" and a service to "set" the opening position, it many be complex for Venetian blind because an large number of configuration leads to the same result. Or to put differently: |
Beta Was this translation helpful? Give feedback.
-
We're missing a type of awning. Unfortunately I only know the name in French (Pergola Bioclimatique à lames orientables) It looks like this |
Beta Was this translation helpful? Give feedback.
-
I am not sure it's important but coming back to the fact that we want to represent the "light throughput" as "opening position" I have some blinds with interlocking blades. Like that: That results in a non linear light throughput based on the cover position. |
Beta Was this translation helpful? Give feedback.
-
Smart motorized double roller blinds also exist: https://motionblinds.com/en/products/double-roller-blinds/ These are a sort of cross bread between a venetian and roller blind. |
Beta Was this translation helpful? Give feedback.
-
Velux has a list of device (actuator) types which are supported by io-homecontrol protocol (also used by Somfy). So in order to fill your list you should take a look at page 104 and 105 of the linked document: https://github.com/pawlizio/pyvlx/blob/master/spec/technical%20specification%20for%20klf%20200%20api-ver3-18.pdf Moreover here also the logic of 100% and 0% open/close is inverted, in io-homecontrol 100% is fully closed. |
Beta Was this translation helpful? Give feedback.
-
It's mentioned about tilt that:
It has been discussed before to have the neutral tilt as 0, and then tilt in two directions, either +/- degrees or +/- 100 |
Beta Was this translation helpful? Give feedback.
-
I don't agree, even it can be counter intuitive, it's a pretty common use-case in the smart home environnement to use open percentage instead of closed percentage. Google smart home is using About tilting, Homekit is using degree instead of percentage (https://developer.apple.com/documentation/homekit/hmcharacteristictypecurrenttilt). IMO, it makes sense. 0° is fully open and -90°/90° fully closed. |
Beta Was this translation helpful? Give feedback.
-
As the platform is named "cover" and not "window cover", I'd like to add the pool cover as option. I now have the cover modeled as a |
Beta Was this translation helpful? Give feedback.
-
I think the overview of the cover types in the OP should get an additional bullet item: "Supported feedback" besides the "Required/optional controls". This would indicate whether the cover can supply open/closed/opening/closing/idle/etc... states. For correct representation of controls in the frontend this information is necessary. See home-assistant/frontend#18889 for an example. |
Beta Was this translation helpful? Give feedback.
-
Covers can also behave differently after being stopped. See home-assistant/frontend#17945 for a longer description. |
Beta Was this translation helpful? Give feedback.
-
I would like to add my cover types: Projector screen, projector lift and tv lift. In all these cases open is in a pulled out state and closed a retracted state, opposite to the default cover behaviour. |
Beta Was this translation helpful? Give feedback.
-
Another cover type rhat would be useful is Desk. For standing desks. |
Beta Was this translation helpful? Give feedback.
-
Intro
While working on Z-Wave and Matter devices I stumbled on the fact that we currently do not have a very good user experience for some of the window coverings, such as ones that can tilt in multiple directions. A quick talk about that with some people learned that this is actually only the tip of the iceberg and more integrations run into the fact they can not fully support the cover device or need some workarounds.
Just like with many other platforms in HA, the cover platform was originally created for a single purpose, a window covering that would open and close. Later extended with some more features such as optionally tilting and the latest addition a "tilt only" covering. The code organically grew, just like what we saw with the climate platform. It makes it hard to display the correct presentation/controls for the device in the frontend as well as the right service calls in the backend. A good example is a cover with a dynamic tilt position where halfway could be considered as open on one integration/device, while it is something else on another.
Time maybe to just stand back and see what the world of "window/door coverings" looks like in 2023 and see if we have proper support of all these device types / scenarios.
Solution proposal
My proposal is to gather specifications and information we already know and make a full list of "window cover device types and scenarios", listed below. Feel free to comment if you have another devicetype/scenario and/or you see some errors in the list.
Next step would be determining a solution(direction), for example if our current "one-platform-for-all" is still a good fit or another platform is needed. A first gut feeling is that a single cover platform is still valid but we need a way to have some sort of agreement of the devicetype and the features it supports. The deviceclass could help with that, as well as maybe a new CoverFeature Enum? Just thinking out loud here. Let's first start with listing all window covering scenarios and work from there.
Terminology and generics
I took the liberty of using the Z-Wave specification as a starting point as it has a pretty extended list of supported features and description and I figure that other technologies have more or less the same situations.
A window covering device may be closed or open. The term closed represents the lowest light through- put, while open represents the highest light throughput.
In some parts of the world it is considered more intuitive to refer to a closed cover as 100% and an open cover as 0% - in contrast to current HA specification. We should consider this as a global or device specific setting perhaps ?
Device types / scenarios
Classic "roll down" cover
Description: Window/door covering (also known as roller blinds or screens) that covers the window (or door) from the top to the bottom.
Required controls: open/close (also referred to as up/down)
Optional controls: stop movement, get current open/close status, get current position, set current position
Most common controls: move open/close, stop, get/set current position
Current support status in HA:: Fully supported
Common?: Yes, very common
Classic "roll up" cover
Description: Variant of the classic covering but instead of moving from top to bottom to close, it moves from bottom to top.
Required controls: open/close (also referred to as up/down)
Optional controls: stop movement, get current open/close status, get current position, set current position
Most common controls: move open/close, stop, get/set current position
Current support status in HA:: Technically supported (like the regular top to bottom cover) but not visualized correctly (the cover would move the wrong direction in the UI).
Common?: No, exception
Roll up and down window cover
Description: A combination of the roll up and roll down cover where the "open" position would be the center of the window and closing it would roll/slide to the top and/or bottom. The most common usecase would probably be that both sides roll up and down at the same time and no individual control is possible.
Required controls: open/close
Optional controls: stop movement, get current open/close status, get current position, set current position, set roll direction?
Most common controls: open/close, stop, get/set current position
Current support status in HA:: Technically supported in theory but the frontend would probably not match reality.
Common?: No, exception - do these even exist in the wild as smart appliance?
Classic (single) curtain
Description: A classic window curtain that (slides) open by moving from left to right or from right to left.
Required controls: open/close (also referred to as up/down)
Optional controls: stop movement, get current open/close status, get current position, set current position
Most common controls: move open/close, stop, get/set current position
Current support status in HA:: Fully supported
Common?: Yes, very common
Notes: The Z-Wave specification mentions a possibility for a single curtain that can open/close in both directions, like some sort of freeform but not sure if there are actual devices that can do that ? Is it a very rare exception maybe ?
Classic (double) curtain
Description: A classic double window curtain setup which opens from the middle to the sides. The left curtain would move from left to right to close, the right curtain would move from right to left to close.
Required controls: open/close (also referred to as up/down)
Optional controls: stop movement, get current open/close status, get current position, set current position
Most common controls: move open/close, stop, get/set current position
Current support status in HA:: Fully supported
Common?: Yes, very common
Notes: The curtains will always be controlled as a set and the position would be the result of the average/calibrated position where calibration/dividing of individual curtains happens outside the scope of Home Assistant.
Horizontal Window blinds
Description: Window covering (also known as blinds) that covers the window fully or partially and is semi-transparent by default. Closing happend by tilting the blinds up and/or down. Usually the middle tilt position is considered open. Optionally these window blinds can also be moved up/down.
Required controls: open/close (which will tilt in one direction)
Optional controls: stop movement, get current open/close status, get current position, set current position, tilt direction, up/down control, up/down position
Most common controls: open/close, stop, get/set current (tilt) position
Current support status in HA:: Partially supported
Common?:Yes, becoming more common.
Vertical Window blinds
Description: Window covering (also known as blinds) that covers the window fully or partially and is semi-transparent by default. Closing happens by tilting the blinds left and/or right. Usually the middle tilt position is considered open. Optionally these window blinds can also be moved to the left/right.
Required controls: open/close (which will tilt in one direction)
Optional controls: stop movement, get current open/close status, get current position, set current position, tilt direction, left/right control, left/right position
Most common controls: open/close, stop, get/set current (tilt) position
Current support status in HA:: Unknown
Common?:Unknown
Awnings (over patios)
Description: Rolled up next to the wall, the rolls out to cover a a patio. Inverted logic in a sense. Closed would be fully retracted, 0% retracted. See retracted awning on: https://en.wikipedia.org/wiki/Awning
Required controls: open/close (where closed means fully retracted)
Optional controls: stop movement, get current open/close status, get current position, set current position
Most common controls: open/close, stop, get/set current position
Current support status in HA:: Technically supported, not sure about the visualization in the frontend
Common?:Yes, very common
Notes: The most common awning is the large patio one which covers a large horizontal area (patio) where you can also have the window awnings which are smaller and meant for covering the window (feature wise the same as the traditional roller cover but optical not the same)
Beta Was this translation helpful? Give feedback.
All reactions