Awesome
🔒 Restriction Card
A card to provide restrictions on Lovelace cards defined within.
Disclaimer
This card is not to be used as a means to truly protect an instance. Someone with the means and knowledge will be able to bypass the restrictions presented by this card should they choose to.
Minimum Home Assistant Version
Home Assistant version 0.110.0 or higher is required as of release 1.2.0 of restriction-card
Support
Hey dude! Help me out for a couple of :beers: or a :coffee:!
Installation
resources:
url: /local/restriction-card.js
type: module
Options
Name | Type | Requirement | Description |
---|---|---|---|
type | string | Required | custom:restriction-card |
card | map | Required | Card to render within restriction-card . |
restrictions | map | Optional | Additional restrictions. See Restrictions Options. |
exemptions | list | Optional | List of exemption objects. See Exemption Options. |
condition | map | Optional | Conditional object to make lock active. See Condition Options. |
row | boolean | Optional | Set to true to give a default margin:left: 24px |
duration | number | Optional | Duration of unlock in seconds. Default is 5 |
action | string | Optional | Action type to trigger the unlock. Options are tap , double_tap , or hold . Default is tap |
locked_icon | string | Optional | Icon to show when locked. Default is mdi:lock-outline |
unlocked_icon | string | Optional | Icon to show when unlocked instead of fading the icon away |
Restrictions Options
Name | Type | Requirement | Description |
---|---|---|---|
confirm | map | Optional | Confirmation unlock restriction. See Confirm Options. |
pin | map | Optional | Pin code restriction. See Pin Options. |
block | map | Optional | Block interaction restriction. See Block Options. |
hide | map | Optional | Hide card restriction. See Hide Options.. |
Confirm Options
Name | Type | Requirement | Description |
---|---|---|---|
text | string | Optional | Text to display in confirmation dialog |
exemptions | list | Optional | List of exemption objects. See Exemption Options. |
condition | map | Optional | Conditional object to make restriction active. See Condition Options. |
Pin Options
Name | Type | Requirement | Description |
---|---|---|---|
code | string | Required | Pin code the user needs to enter to unlock |
text | string | Optional | Text to display in prompt dialog |
exemptions | list | Optional | List of exemption objects. See Exemption Options. |
condition | map | Optional | Conditional object to make restriction active. See Condition Options. |
retry_delay | number | Optional | Number of seconds that you want to delay next attempt to unlock. Default is 0 |
max_retries | number | Optional | Number of consecutive invalid retries allowed before blocking for the max_retries_delay seconds. Default is unlimited |
max_retries_delay | number | Optional | Number of seconds to block attempts to unlock after the max_retries has been reached |
Block Options
Name | Type | Requirement | Description |
---|---|---|---|
text | string | Optional | Text to display in alert |
exemptions | list | Optional | List of exemption objects. See Exemption Options. |
condition | map | Optional | Conditional object to make restriction active. See Condition Options. |
Hide Options
Name | Type | Requirement | Description |
---|---|---|---|
exemptions | list | Optional | List of exemption objects. See Exemption Options. |
condition | map | Optional | Conditional object to make restriction active. See Condition Options. |
Exemption Options
Name | Type | Requirement | Description |
---|---|---|---|
user | string | Required | User id to exempt. This is found in the user profile ID . |
Condition Options
Name | Type | Requirement | Description |
---|---|---|---|
value | string | Required | String representing the state. |
entity | string | Required | Entity to use condition and is what also causes the card to update |
attribute | string | Optional | Attribute of the entity to use instead of the state. |
operator | string | Optional | Operator to use in the comparison. Can be == ,<= ,< ,>= ,> ,!= , or regex . Default is == . |
Theme Variables
The following variables are available and can be set in your theme to change the appearance of the lock. Can be specified by color name, hexadecimal, rgb, rgba, hsl, hsla, basically anything supported by CSS.
name | Default | Description |
---|---|---|
restriction-regular-lock-color | primary-text-color | Lock color |
restriction-success-lock-color | primary-color | Lock color when unlocked |
restriction-blocked-lock-color | error-state-color | Lock color when card is blocked |
restriction-invalid--color | error-state-color | Lock color after an invalid attempt to unlock |
restriction-lock-margin-left | 0px | Manually bump the left margin of the lock icon |
restriction-lock-row-margin-left | 24px | Manually bump the left margin of the lock icon in rows |
restriction-lock-row-margin-top | 0px | Manually bump the top margin of the lock icon in rows |
restriction-lock-icon-size | 24px | Lock icon size |
restriction-lock-opacity | 0.5 | Lock icon opacity |
Example Configurations
Simple Lock example
type: custom:restriction-card
card:
type: thermostat
entity: climate.house
More complex example
type: custom:restriction-card
restrictions:
confirm:
exemptions:
- user: adminid
pin:
code: 1234
exemptions:
- user: wifeid
- user: adminid
block:
exemptions:
- user: guestid
- user: wifeid
- user: adminid
exemptions:
- user: ianid
card:
type: thermostat
entity: climate.house
Row example
type: 'custom:hui-entities-card'
entities:
- card:
entity: cover.garage_door
restrictions:
block: true
type: 'custom:restriction-card'
row: true
- entity: light.kitchen
Special Consideration for Input Selects: If you find that the restriction card is blocking something you don't want blocked like an input select, try adjusting the z-index using mod-card
card:
type: custom:mod-card
card_mod:
style: |
ha-card {
z-index: 7;
}
card:
type: custom:restriction-card