# Window coverings

A window coverings device should only be assigned the `window_coverings` device class if one of the following is not more applicable: `curtains`, `blinds`, `sunshade`.

There are a number of capabilities relevant for window coverings devices:

* `windowcoverings_state`
* `windowcoverings_tilt_up`
* `windowcoverings_tilt_down`
* `windowcoverings_tilt_set`
* `windowcoverings_closed`
* `windowcoverings_set`

In general there are two types of window coverings which should receive a subset of these capabilities:

**window coverings that can be controlled with up/down and stop commands**

This type should implement the `windowcoverings_state` capability and in case the device supports horizontal tilt of venetian blinds also the `windowcoverings_tilt_up` and `windowcoverings_tilt_down` capabilities.

**window coverings that can be controlled by sending a command with a precise open/close level**

This type should implement the `windowcoverings_set` capability and in case the device supports horizontal tilt of venetian blinds also the `windowcoverings_tilt_up` and `windowcoverings_tilt_down` capabilities.

**window coverings that can be controlled by sending a command with precise open/close level and up, down and stop commands**

This type should implement both `windowcoverings_state` and `windowcoverings_set`.
