Use this button:
...and download the card, or use HACS, search for
Enhanced Shutter Card.
The resources will automatically be configured with the needed files.
When this all is done, you can find the card in Home Assistant in custom cards under the By Card tab in the list of available cards when building a Dashboard:
(When unfortunately both options above don't work, you need to add this repository as a Custom Repository.
See for installing Custom Repositories this hacs-custom-repositories page.
Enter repository-url: https://github.com/marcelhoogantink/enhanced-shutter-card.git and choose type: Dashboard.)
When you're done, you can...
Star ⭐ Enhanced Shutter Card on GitHub
... and ...
Thank you !
-
For the
battery_entityandsignal_entitysettings, a new added optionautois available. When this is set toauto, the Card tries to find a battery or signal entity in the device of the cover-entity and displays its icon and status.Examples:
battery_entity: autosignal_entity: autoOf course, you can still enter the name of these sub-entities.
-
With the new setting
stacked(defaultvertical), you can create a horizontal stacked Card by settingstacked: horizontal. This setting has automatic horizontal scroll-bars when the cover does not fit in the section. This is aglobalCard-setting. -
When displaying a cover-group, it is now possible to display the group-members in stead of the group-cover itself. Use the new
show_group_memberssetting and set ittruelikeshow_group_members: true. When you also use theautosetting for the sub-entitties (see above), the Card wil search for these entities for each group-member separately -
New option to put the battery and signal icons on top or bottom of the card:
icons_position(defaulttop). Set toicons_position: bottomto move the icons to the bottom of the card. -
When using grouped covers and
show_group_memebers: true, Adding an@to the definednamewil put a number at the@in the name of the group-member. -
Force format values to prevent unneeded decimals.(solves #131)
-
When there is little room, eq. on your mobile, you can hide the main-window-image by
show_window: false(defaulttrue) and use a slidershow_open_close_slider: true(defaultfalse). You can use both settings independently of each other.This solves also #154 and expands the options to hide/view parts of the card.
-
For the tilt-section (when the cover can tilt), the setting
show_tilt_slideris introduced. Together withshow_tilt_buttonsyou can set the tilt options the way you like. This also solves #153 -
To make the enabling/disalbling of element of the Card more straightforward, all these setting are now aligned to
show_XXXXbeing true or false:new name old name (deprecated) comment show_name name_disabled reversed setting ( true<>false)show_opening opening_disabled reversed setting ( true<>false)show_tilt_button tilt_slider_only reversed setting ( true<>false)show_tilt_slider show_tilt same setting show_standard_buttons disable_standard_buttons reversed setting ( true<>false)show_partial_open_buttons disable_partial_open_buttons reversed setting ( true<>false)show_window - new show_open_close_slider - new -
A new
preset_shutter-option is now available:compactfor little displays like a mobile-phone, displaying a tiny card without the (big) main window, but instead with a slider for opening/closing (seeshow_windowandshow_open_close_slideroptions). -
-
#51 How to do a Horizonal Stack?
-
#131 Battery percentage - display precision
-
#132 Multiple Shade Row Card
-
#153 (bug) Tilt options!
-
#154 Configuration variable to hide the central graphical window (Minimalist UI)
-
#159 Percentage precision
-
#160 Show Dividers between Group Row entities
-
#161 [FR] modify Entity names in Stack, they are messy :)
-
#163 [Bug] beta3 completely broke everything - stacked and not stacked
-
#156 (bug) Curtain buttons do not show left and right, but up and down
-
#157 (bug) unreachable code after return statement
-
For previous release-changes go to Previous-release changes
This card allows besides opening, closing or setting a shutter to the opening rate you want, also many options to design your shutter by combining the sizes and images you want.
Ths shutter can close in down-, left- of right-direction.
It is a follow-up of Deejayfool/Shuttercard, a nice Card for Shutters. I started with a simple change for the motion of the shutters, but soon it became a huge update. Due to the inactivity of the Shutter Card, I decided to add this one as 'Enhanced Shutter Card' to HACS.
It supports all options of the original Card, but also graphical options like different backgrounds, windows an shutters. Also the sizes of every shutter can be altered:
(find below the yaml for this example.)
By default (preset_shutter = roller-shutter) the card has 3 colored windows and shutter images, ands two background views in the package for verical shutters:
| color | window-image | shutter-slat image | shutter-bottom-bar image | default |
|---|---|---|---|---|
| grey | esc-window.png | esc-shutter-slat.png | esc-shutter-bottom.png | yes |
| brown | esc-window2.png | esc-shutter-slat2.png | esc-shutter-bottom2.png | no |
| green | esc-window3.png | esc-shutter-slat3.png | esc-shutter-bottom3.png | no |
For horizontal shutter (preset_shutter = curtain) there is one image:
| color | window-image | shutter-slat image | shutter-bottom-bar image | default |
|---|---|---|---|---|
| red | [see above] | esc-curtain.png | [none] | yes |
For awnings (preset_shutter = awning) there is one set of images:
| color | window-image | shutter-slat image | shutter-bottom-bar image | default |
|---|---|---|---|---|
| red/white | [see above] | esc-awning.png | esc-awning-bottom.png | yes |
These are the avialable background views:
| view filename | default |
|---|---|
| esc-view.png | yes |
| esc-view2.png | no |
These images can be combined like in the example above. For (optinal) defintion of the location of the images, a setting 'image_map" does exits.
The default map-setting can be found in the Configuration-info below.
It is also possible to enter a full path in the imagename itself. When a '/' is found in the image-name, the image-name is considerd to include a full path.
And last but not least, the view_image and shutter_slat_image-settings also accept HTML-color definitions like red, green, '#AAFFEE' or rgb(255,255,0) in stead of an image-filename. (The # input needs quotes around it in YAML)
In the table below all the possible settings are listed.
The columns Global and Local show whether the setting can be used in the card header or in the entities section in the - entity sections.
The settings are defined in the follwing logic:
- first Global:
- The program defaults are taken. (See foe these defaults in the
Defaultcolumn below) - These settings are overruled with the settings of the
shutter_presetsetting in the global section. (seeShutter Presets) - Then all other entered settings in the global section are taken into account.
- The program defaults are taken. (See foe these defaults in the
- then per
- entity:- These settings are now overruled with the defined settings of the
shutter_presetsetting for this entity. - Then, at last, all other settings under this entity section are taken into account.
- These settings are now overruled with the defined settings of the
| Name | Type | Required | Default | Global | Local | Description | Remarks |
|---|---|---|---|---|---|---|---|
| type | string | Yes | - | Yes | No | Must be "custom:enhanced-shutter-card" | |
| title | string | no | - | Yes | No | Title of the card | |
| stacked | string | no | vertical | Yes | No | Set the stacked direction when using multiple covers in one Card. | |
| name | string | No | Friendly name of the entity | No | Yes | Name to display for the shutter. When using show_group_members: true for grouped covers, A @ can be used to put a number in the name of each member. |
|
| shutter_preset | string | no | roller-shutter | Yes | Yes | Several preset-shutters-setting-groups, which creates a good start-setting for a specific type of cover. See the table below for possible definitions and the settings of them | |
| battery_entity | string | No | null |
Yes | Yes | EntityId of the sensor represenating the battery-level of the shutter (as a number), or auto for automatic search. For global setting just use auto for automatic search |
|
| signal_entity | string | No | null |
Yes | Yes | EntityId of the sensor represenating the Wireless signal-level of the shutter (as a number), or auto for automatic search. For global setting just use auto for automatic search |
|
| show_group_members | boolean | No | false |
Yes | Yes | When using a grouped-cover in the Card, set to 'true'to display the member covers in stead of the group-cover. | |
| passive_mode | boolean | no | false |
Yes | Yes | Interface works normal, but no action is sent to the shutters. A lock-icon is shown after the shutter-name. | |
| image_map | string | No | /local/community/enhanced-shutter-card/images | Yes | Yes | map of the images. Change thsi when using own images. | |
| window_image | string | No | esc-window.png | Yes | Yes | image of the window shutter. | |
| view_image | string | No | esc-back-view.png | Yes | Yes | background-image through the window, or a HTML color. | |
| shutter_slat_image | string | No | esc-shutter-slat.png | Yes | Yes | Image of one slat of the shutter. | |
| shutter_bottom_image | string | No | esc-shutter-bottom.png | Yes | Yes | the bottom bar of the shutter. | |
| rotate_slat_image | boolean | No | true |
Yes | Yes | defines whether the shutter_slat_image wil rotate with the closing_direction (true) or not (false) |
|
| stretch_bottom_image | boolean | No | true |
Yes | Yes | defines whether the shutter_bottom_image wil be stretched to the windows-size (true) or not (false). (Only perpendicular to the closing_direction) |
|
| base_height_px | int | No | 150 | Yes | Yes | height of image in pixels. | |
| base_width_px | int | No | 150 | Yes | Yes | witdh of image in pixels. | |
| resize_height_pct | int | No | 100 | Yes | Yes | resize of the base height in percent. (limited between 20% and 500%) | |
| resize_width_pct | int | No | 100 | Yes | Yes | resize of the base width in percent. (limited between 20% and 500%) | |
| top_offset_pct | int | No | 0 | Yes | Yes | space between top image/window and top shutter. | |
| bottom_offset_pct | int | No | 0 | Yes | Yes | space between bottom image/window and bottom shutter. | |
| closing_direction | string | No | down |
Yes | Yes | Set the closing direction: down, left or right. |
|
| buttons_position | string | No | left |
Yes | Yes | Set buttons on left, right, top or bottom of the shutter. For automatic placement on Landscape or Portrait-format of the visible Dashboard, you can also use the auto-top-left (or auto), auto-top-right, auto-bottom-left or auto-bottom-right options. |
|
| scale_texts | boolean/float | No | false |
Yes | Yes | Scale the texts according to the window-size (true) or scale it with a factor (0.5 - 2.0) |
|
| scale_buttons | boolean/float | No | false |
Yes | Yes | Scale the buttons when the windows-image gets smaller then 150px in the direction of the button-placement (true), or scale it with a factor (0.5 - 2.0). |
|
| scale_icons | boolean/float | No | true |
Yes | Yes | Scale the icon for battery and signal icons windows-image gets smaller then 150px in the horizonal direction (true), or scale it with a factor (0.5 - 2.0). |
|
| name_position | string | No | top |
Yes | Yes | Set title/name shutter on top or on bottom of the shutter image. |
|
| opening_position | string | No | name_position -setting | Yes | Yes | set position info of shutter on top or bottom of the shutter image. |
|
| inline_header | boolean | No | false |
Yes | Yes | place the shutter-header (name and position) in one line. | |
| invert_percentage_ui | boolean | No | false |
Yes | Yes | Inverts the percentage on UI-level when set to true. Will not change the cover behavior. |
|
| invert_percentage_cover | boolean | No | false |
Yes | Yes | Inverts the precentage on device-level when set to true. Possibly changes to cover behavior. |
|
| invert_open_close_ui | boolean | No | false |
Yes | Yes | Inverts the open-close texts on UI-level when set to true. Will not change the cover behavior. |
|
| invert_open_close_cover | boolean | No | false |
Yes | Yes | Inverts the opec-close commands on device-level when set to true. Possibly changes to cover behavior. |
|
| invert_percentage_tilt_ui | boolean | No | false |
Yes | Yes | Inverts the tilt-percentage on UI-level when set to true. Will not change the cover-tilt behavior. |
|
| invert_percentage_tilt_cover | boolean | No | false |
Yes | Yes | Inverts the tilt-percentage on device-level when set to true. Possibly changes to cover-tilt behavior. |
|
| tilt_angle_max | int | No | 180 | Yes | Yes | Maximum angle for visualiation of the tilt-function. This is representation for the 100% value of the tilt-value. | |
| tilt_angle_min | int | No | 0 | Yes | Yes | Minimum angle for visualiation of the tilt-function. This is representation for the 0% value of the tilt-value. | |
| partial_close_percentage | int | No | 0 | Yes | Yes | Set it to a percentage (0-100) if you want to be able to quickly go to this "partially closed" state using a button. | |
| offset_closed_percentage | int | No | 0 | Yes | Yes | Set it to a percentage (0-100) of travel that will still be considered a "closed" state in the visualization. | |
| always_percentage | boolean | No | false |
Yes | Yes | If set to true, the end states (opened/closed) will be also as numbers (0 / 100 % ) instead of a text |
|
| disable_end_buttons | boolean | No | false |
Yes | Yes | If set to true, the end states (opened/closed) will also deactivate the buttons for that direction (i.e. the "up" button |
|
| button_up_hide_states | string list | No | empty list | Yes | Yes | Entered state strings (opening, open, closed, closing or partial_open) added will hide the up button when the cover is in any of the listed states. This can be combined with other *_hide_states options. |
|
| button_stop_hide_states | string list | No | empty list | Yes | Yes | Entered state strings (opening, open, closed, closing or partial_open) added will hide the stop button when the cover is in any of the listed states. This can be combined with other *_hide_states options. |
|
| button_down_hide_states | string list | No | empty list | Yes | Yes | Entered state strings (opening, open, closed, closing or partial_open) added will hide the down button when the cover is in any of the listed states. This can be combined with other *_hide_states options. |
|
| show_window | boolean | No | true |
Yes | Yes | Show main window (or not) | |
| show_name | boolean | No | true |
Yes | Yes | Show the cover name (or not) | |
| show_opening | boolean | No | true |
Yes | Yes | Show the cover position (and tilt) (or not) | |
| show_standard_buttons | boolean | No | true |
Yes | Yes | Show the standard button block (or not) | |
| show_open_close_slider | boolean | No | false |
Yes | Yes | Show Show the slider for open and close (or not) | |
| show_tilt_buttons | boolean | No | true |
Yes | Yes | Show tilt button block (or not) (only active when cover supprts tilt) | |
| show_tilt_slider | boolean | No | true |
Yes | Yes | Show tilt slider (or not) (only active when cover supprts tilt) | |
| show_partial_open_buttons | boolean | No | true |
Yes | Yes | Show partail open button-block (or not) | |
| deprecated | Yes | Yes | Show main window (or not) | ||||
| name_disabled | boolean | No | false |
Yes | Yes | hide title/name of shutter | deprecated |
| opening_disabled | boolean | No | false |
Yes | Yes | hide position info of shutter | deprecated |
| show_tilt | boolean | No | true |
Yes | Yes | Show the tilt options and buttons, only active when the shutter supports tilt |
deprecated |
| tilt_slider_only | boolean | No | false |
Yes | Yes | Display only the tilt-silder, not the buttons and visualisation. Only active when the cover supportstilt and show_tilt equals true |
deprecated |
| disable_standard_buttons | boolean | No | false |
Yes | Yes | Show or hide the default up, down and stop buttons | deprecated |
| disable_partial_open_buttons | boolean | No | true |
Yes | Yes | Show or hide the partial open buttons. | deprecated |
Remark: you can also just give the entity ID (without to specify entity:) if you don't need to specify the other configurations.
The following shutter_preset settings are available:
| Preset Name | Setting | Value |
|---|---|---|
| roller-shutter | rotate_slat_image |
true |
name |
Roller Shutter | |
| awning | invert_open_close_ui |
true |
invert_percentage_ui |
true |
|
shutter_slat_image |
esc-awning.png | |
shutter_bottom_image |
esc-awning-bottom.png | |
bottom_offset_pct |
50 | |
stretch_bottom_image |
false |
|
closing_direction |
down |
|
name |
Awning | |
| curtain | closing_direction |
right |
shutter_slat_image |
esc-curtain.png | |
shutter_bottom_image |
'' | |
rotate_slat_image |
false |
|
closing_direction |
down |
|
name |
Curtain | |
| shade | shutter_slat_image |
'#00000080' |
closing_direction |
down |
|
name |
Shade | |
| blind | closing_direction |
right |
shutter_slat_image |
esc-awning.png | |
rotate_slat_image |
false |
|
windows_image |
esc-windows2.png | |
shutter_bottom_image |
'' | |
name |
Blind |
|
| compact | show_window |
false |
show_name |
true |
|
show_opening |
true |
|
show_standard_buttons |
true |
|
show_open_close_slider |
true |
|
show_tilt_buttons |
true |
|
show_tilt_slider |
true |
|
show_partial_open_buttons |
false |
|
name |
Compact |
The samples below are the settings of the example image above.
type: custom:enhanced-shutter-card
title: Shutter Samples
name_position: top
entities:
- entity: cover.demo1
name: Variable Hidden Standard Buttons
view_image: esc-view2.png
passive_mode: false
name_position: top
base_height_px: 180
button_up_hide_states:
- open
- opening
- closing
button_down_hide_states:
- closed
- opening
- closing
button_stop_hide_states:
- open
- closed
- partial_open
- entity: cover.demo2
name: Passive Mode
passive_mode: true
partial_close_percentage: 85
name_position: top
base_height_px: 100
base_width_px: 160
shutter_slat_image: esc-shutter-slat2.png
window_image: esc-window3.png
disable_partial_open_buttons: true
always_percentage: true
invert_percentage_ui: false
invert_percentage_cover: false
- entity: cover.demo3
name: Include Partial Open Buttons
disable_end_buttons: true
window_image: esc-window2.png
resize_width_pct: 70
name_position: top
disable_partial_open_buttons: falseImproved Tilt (3d-tilt) and tilt slat visible at 90 degrees.
-
#151 Does not work anymore without internet access
Now, fully tilt capacities are included:
Also a new preset setting-option is added: shutter_preset: blind. This one is used in the example above.
-
(boolean) Invert/alter the setting for tilt-percentage on user-interface level. (default
false) -
(boolean) Invert/alter the setting for tilt-percentage on device level. (default
false) -
(boolean) Display only the tilt-silder, not the buttons and visualisation (default
false) Only active when the cover has a tilt option andshow_tiltequalstrue -
(int) Set the maximum tilt-level (in degrees) values between [0] and [180] and less then
tilt_angle_max(default 0) This value is for tilt-visualisation, the value send to the cover are always from 100 (fortilt_angle_max) to 0 (fortilt_angle_min) -
(int) Set the minimum tilt-level (in degrees) values between [0] and [180] and greater then
tilt_angle_min(default 180) This value is for tilt-visualisation, the value send to the cover are always from 100 (fortilt_angle_max) to 0 (fortilt_angle_min)
This a interim release for (hopefully) repairing all the problems and issues that this card had with variuos cover-types. With this changes and new settings all different behavior should be possible to handle. It is possible that your cover changes its hehavior with this release. As I do just have one type of cover, I cannot check types I do not have. If your cover changed its behavior with this release, you need to play with the four settings below to get te wanted behavior.
Typically start with setting all four options to false, and then alter the invert_percentage_cover and invert_open_close_cover to change the behavior of the cover. When that works OK, alter the visual settings (invert_percentage_ui and invert_open_close_ui) to your wishes
When you do not get it done, please raise an issue for it on Github.
-
-
(from deprecated setting
invert_percentage) Invert/alter the setting for percentage on device level. -
(new definiton) Invert/alter the setting for open-close on device level.
-
(new definiton) Invert/alter the setting for percentage on user-interface level.
-
(from deprecated setting
invert_open_close) Invert/alter the setting for open-close on user-interface level. Often used for awnings.
See for default and possible settings in this table. With these four options all differnent behavior the different coevr-types should be possible to handle
-
-
When an image entered in the Card is not found, the default image for the image-type wil be used, and a warning is sent to the console.
-
The wrong open/closed/opening/closing texts for awnings are corrected.
-
When is shutter is (temporary) unavailable the buttons are now still active, so it may trigger the cover to activate.
-
If the battery percentage > 100%, the icon will still be displayed.
-
-
In version 1.2.3, the card automaticly chooses for
esc-curtain.pngfor displaying a curtain instead of a cover, when settingclosing-directiontoleftorright. This stops in version 1.3.0 due to the new preset-optionshutter_preset. Solving this breaking-change starts with adding the settingshutter_preset = curtainin your Card-YAML-code. For more inforamtion on this, see this new option below and in the Configuration chapter - The automatic scaling of the card was not very stable and created unpredictable results sometimes. So this is changed. Because of this change cards, might have some size changes, and there is a risc that not all cards still fit in your dashboard unchanged.
-
In version 1.2.3, the card automaticly chooses for
-
This version introduces the option
shutter_preset. Setting this to a type, predefines the Card to display a correct setting of that type. Current types are:shutter,shade,curtainandawning. The pre-settings of these shutter_presets can be overridden by or supplemented with other settings. See also the Configuration chapter. -
All images settings (except
window_image) now accept colors and colorcodes besides image-filenames, likeredor'#aaf1bb'likeview_imagealready did. -
For awnings, a new options is introduced:
invert_open_close(true/false) for making the card more logic for this kind of covering. Usetruefor awnings. (This setting is also activated by using a new optionshutter_preset:shutter_preset = awning) -
Extending
scale_buttonsandscale_iconswithposibiility to define a scalefactor besidesfalseortrue. Likescale_buttons: 1.5 -
new option
scale_textsfor scaling tests, options are:true,falseor a factor like1.5or0.7 -
new option
rotate_slat_imagedefines whether theshutter_slat_imagerotates with the setclosing_direction(true) or stays fixed (false) -
new option
stretch_bottom_imagedefines whether theshutter_bottom_imagewil be stretched to the shutter-width (true) or will be repeated using fixed image-size (false). this streching is only perpendicular to the closing direction. -
- #52 [Bug] Icons not scaling, too small to see
- #60 Title font size
- #88 Question only
- #91 Add transparent white Horizontal moving shutters
- #95 [FEATURE REQUEST] Invert arrow functionality
- #97 Shutter image horizontal shrink when command buttons are on the left or on the right
- #98 Invert open/close
- #99 [Code Share] Really difficult way to get this card to have a control page
- #101 Awning Buttons & Transparency
- #103 [Feature Request] Add shade support #103
- #104 Card as “custom_fields” in a button-card.
- #108 How disable "partially close" button
- #109 Dashboard not updating properly. Intermittent incomplete dashboards
- #111 invert_percentage: true causes appearance of "partial close" button
- #113 View layout with error: Unknown keyword: [view_layout], check your input!
-
The Card now reads the supported-features attributesof the cover, and acts on it. Therefore the
can_tiltoption is changed intoshow_tilt -
Horizontal moving shutters are now possible. Add
closing_directionto your settings, and give it the valueleft,rightordown. Settingdownis default.For horizontal moving shutters (curtains), a new image is added:
esc_curtain.png -
To help you with defining your settings, unknown/deprecated/removed messaged are shown when defing your card in YAML.
-
can_tiltoption is replace byshow_tilt, due to the Card is now reading and acting onsupported-features-attribute of the shutter. -
calculated grid-space for the card (in rows and colums) is displayed while editing the card in yaml.
For more control on the size of the Card, the needed Gridsize (rows, columsn) are shown while editing the Card in Yaml. For more information on the Gridsize, see: https://developers.home-assistant.io/docs/frontend/custom-ui/custom-card/#sizing-in-sections-view.
-
after some time
deprecatedthis setting is nowremoved,usename_position. -
- #59 Size and Toggle.
- #57 Stop-button not showing up.
- #56 Current position of shutter not updated in card with MQTT cover
- #54 Movement arrow display bug when shutter is in movement
- #49 Full path option for images
- #48 6 buttons on right works inversed and ‘invert_percentage’ true or false has no effect as sliding shutter
- #44 Vertical space larger than required
- #43 rotate shutter 90°
-
New settings
battery_entityandsignal_entityfor displaying battery and signal icon with level-information. New settingsscale_iconsfor activating scaling of the icons when the image is made smaller. -
The card inludes now the lit-libary, no internet-connection needed after downloading.
-
Solved Error#46 (Custom element does not exist) solved.
This error is found and removed.
-
New settings
battery_entityandsignal_entityfor displaying battery and signal icon with level-information. New settingsscale_iconsfor activating scaling of the icons when the image is made smaller.
-
Solved Error#46 (Custom element does not exist)
This bug is found and removed.
-
The sizing of the card is further improved. (This can result in little differences in size with previous versions)
-
New automatic placement of the buttons according to Landscape or Portrait format of the visible part of the dashboard. Using the new settings
auto-top-left(orauto),auto-top-right,auto-bottom-leftorauto-bottom-rightfor the optional optionbuttons_position, the card wil change the button positions to top or botton on Portrait and Left or Right in Landscape, automaticly. -
New setting (
trueoffalse). When set totrue, the card wil place the Name and Position information in one line, as long as possible. In this mode, only theopening_positionoption will be used for thebottom/topplacement of the full shutter header, theopening_positionwil be discarded. -
New setting (
trueoffalse). When set totruethe buttons will be rescaled (smaller) when the windows-image is getting smaller then 150px. The width is taken into account when the resulting button_position isleftorright, the heieght is used whenbuttons_positionistoporbottom. This will work also with the newauto*options. - The responsiveness of the card is further improved.





