Skip to content
πŸ”’ Apply restrictions to Lovelace cards
TypeScript JavaScript
Branch: master
Clone or download
Latest commit 83be6ab Nov 18, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.devcontainer fix rendering bug Nov 8, 2019
.github
.vscode update extensions Nov 7, 2019
src fix touch events on iOS 13 Nov 18, 2019
.eslintrc.js add devcontainer and fix eslint build Nov 6, 2019
.gitignore remove /dist Nov 11, 2019
.prettierrc.js add devcontainer and fix eslint build Nov 6, 2019
LICENSE housekeeping Nov 3, 2019
README.md
hacs.json housekeeping Nov 3, 2019
lock.gif initial Oct 16, 2019
package.json fix touch events on iOS 13 Nov 18, 2019
pin.gif initial Oct 16, 2019
rollup.config.dev.js add devcontainer and fix eslint build Nov 6, 2019
rollup.config.js
row.png add row example Oct 17, 2019
tsconfig.json
yarn.lock add devcontainer and fix eslint build Nov 6, 2019

README.md

πŸ”’ 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.

GitHub Release License hacs_badge

Project Maintenance GitHub Activity

Discord Community Forum

Support

Hey dude! Help me out for a couple of 🍻 or a β˜•οΈ!

coffee

Installation

Use HACS or follow this guide

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

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
pin 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.

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-icon-height 24px Lock icon height
restriction-lock-icon-width 24px Lock icon width

Example Configurations

Simple Lock example

lock

type: custom:restriction-card
card:
  type: thermostat
  entity: climate.house

More complex example

complex

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

row

type: "custom:hui-entities-card"
entities:
  - card:
      entity: cover.garage_door
    restrictions:
      block: true
    type: "custom:restriction-card"
    row: true
  - entity: light.kitchen

Troubleshooting

You can’t perform that action at this time.