Skip to content

Lock Spark

Der Lock Spark legt eine Sperrebene über ein Forge-Element oder über ein gezieltes Unterelement. Er kann je nach Benutzer, Adminstatus, PIN, Code oder Bestätigung entsperrt werden.

TIP

Der Spark schützt die Bedienung in der Oberfläche. Er ersetzt keine serverseitige Home-Assistant-Berechtigung.

Grundnutzung

yaml
type: custom:uix-forge
forge:
  mold: card
  sparks:
    - type: lock
      locks:
        - pin: 1234
          admins: true
element:
  type: tile
  entity: light.living_room

Ziel mit for wählen

Ohne for wird das ganze Forge-Element gesperrt. Mit for kann ein bestimmtes Element gesperrt werden, zum Beispiel nur das Tile-Icon.

yaml
type: custom:uix-forge
forge:
  mold: card
  sparks:
    - type: lock
      for: hui-tile-card $ ha-tile-icon
      locks:
        - pin: 1234
          admins: true
element:
  type: tile
  entity: light.living_room

WARNING

Nutze keine PINs für echte Sicherheitsgrenzen. UIX läuft im Browser und kann Bedienfehler vermeiden, aber keine Home-Assistant-Rechte erzwingen.

Matching-Logik

KonfigurationWen sie trifft
users-Liste vorhandenNutzer, deren Name in der Liste steht. Mit admins: true zusätzlich Admins.
Keine users-ListeAlle Nicht-Admins, die nicht in except stehen.
Keine users-Liste und admins: trueAlle Nutzer, Admins und Nicht-Admins, sofern sie nicht in except stehen.

Konfigurationsreferenz

Top-Level

SchlüsselTypStandardBeschreibung
typestring-Muss lock sein.
forstringelement, bei Blank Card uix-forge-blank-card $ div.contentUIX-Selektor für das Element, über das die Sperre gelegt wird.
actionstringtapGeste zum Entsperren: tap, hold oder double_tap.
durationnumber oder string3000Dauer bis zum erneuten Sperren nach erfolgreichem Entsperren. Zahlen sind Millisekunden, Strings z. B. 5s, 1m, 500ms.
icon_lockedstringmdi:lock-outlineIcon im gesperrten Zustand.
icon_unlockedstring-Icon im entsperrten Zustand. Ohne Wert blendet das Schloss aus.
icon_locked_colorstring--error-colorFarbe des gesperrten Icons.
icon_unlocked_colorstring--success-colorFarbe des entsperrten Icons.
icon_positionobjectje nach ZielPixel-Offsets des Icons. Erlaubt top oder bottom und left oder right.
icon_sizenumber oder string24px, bei ha-tile-icon 12pxIcongröße. --uix-lock-icon-size hat Vorrang.
permissivebooleanfalseBei true bleiben Elemente zugänglich, wenn kein Lock-Eintrag zum aktuellen Nutzer passt.
entitystring-Entity-ID für einfache HA-Aktionen in unlocked_action.
unlocked_actionobject-Aktion direkt nach erfolgreichem Entsperren.
lockslist[]Geordnete Liste von Lock-Einträgen.
code_dialogobject-Optionen für den Code- oder Passphrase-Dialog.

code_dialog

SchlüsselTypStandardBeschreibung
titlestringHA-StandardDialogtitel.
submit_textstringHA-StandardText des Bestätigungsbuttons.
cancel_textstringHA-StandardText des Abbrechen-Buttons.

unlocked_action

WertWirkung
action: element_tapLöst die tap_action des Zielelements aus.
action: element_holdLöst die hold_action des Zielelements aus.
action: element_double_tapLöst die double_tap_action des Zielelements aus.
Beliebige HA-AktionFührt diese Aktion gegen entity aus, z. B. action: toggle.

Lock-Einträge

SchlüsselTypStandardBeschreibung
activebooleantrueMit false wird für passende Nutzer explizit entsperrt.
codestring oder number-Einzugebender Code. Zahlen zeigen das HA-Nummernfeld, Text zeigt ein Passwortfeld.
pinstring oder number-Alias für code.
confirmationstring oder boolean-Bestätigungsdialog. true nutzt den HA-Standardtext, ein String nutzt eigenen Text.
usersListe von Strings-Nutzernamen, für die dieser Eintrag gilt.
adminsbooleanfalseAdditiv. Ohne users erfasst admins: true alle Nutzer. Mit users werden Admins zusätzlich erfasst.
exceptListe von Strings-Ausnahmen, wenn keine users-Liste gesetzt ist.
retry_delaynumber oder string-Wartezeit zwischen falschen Codeversuchen.
max_retriesnumber-Anzahl falscher Versuche vor der längeren Sperrzeit.
max_retries_delaynumber oder string30000Sperrzeit nach max_retries, z. B. 30s oder 5m.

Beispiele

Gleiche PIN für alle, inklusive Admins

yaml
forge:
  sparks:
    - type: lock
      locks:
        - pin: 1234
          admins: true

Keine Sperre für Admins und einen bestimmten Nutzer

yaml
forge:
  sparks:
    - type: lock
      locks:
        - pin: 1234
          except:
            - Max

Bestätigung für alle inklusive Admins

yaml
forge:
  sparks:
    - type: lock
      locks:
        - confirmation: true
          admins: true

PIN für alle, aber nicht für genannte Nutzer

yaml
forge:
  sparks:
    - type: lock
      locks:
        - pin: 1234
          admins: true
          except:
            - Wohnzimmer Tablet
            - Admin

Unterschiedliche PINs pro Nutzergruppe

yaml
forge:
  sparks:
    - type: lock
      locks:
        - pin: 1111
          users:
            - Kinderzimmer
        - pin: 2222
          users:
            - Wohnzimmer
        - active: false
          admins: true

Nur bestimmte Nutzer sperren

yaml
forge:
  sparks:
    - type: lock
      permissive: true
      locks:
        - pin: 1234
          users:
            - Gast

Nach Entsperren die Hold-Aktion der Tile Card ausführen

yaml
forge:
  sparks:
    - type: lock
      unlocked_action:
        action: element_hold
      locks:
        - pin: 1234
element:
  type: tile
  entity: light.living_room
  hold_action:
    action: more-info

Entity direkt nach Entsperren toggeln

yaml
forge:
  sparks:
    - type: lock
      entity: light.living_room
      unlocked_action:
        action: toggle
      locks:
        - pin: 1234
element:
  type: tile
  entity: light.living_room

Nur Tile-Icon sperren

yaml
forge:
  sparks:
    - type: lock
      for: hui-tile-card $ ha-tile-icon
      icon_position:
        top: 3
        left: 3
      locks:
        - pin: 1234
element:
  type: tile
  entity: light.living_room

Eigene Dialogtexte

yaml
forge:
  sparks:
    - type: lock
      code_dialog:
        title: Freigabe erforderlich
        submit_text: Entsperren
        cancel_text: Abbrechen
      locks:
        - pin: 1234

Overlay anpassen

CSS-VariableStandardBeschreibung
--uix-lock-z-index10Stapelreihenfolge des Overlays.
--uix-lock-displayblockCSS-Display des Overlays.
--uix-lock-opacity0.5Deckkraft von Icon und Hintergrund zusammen.
--uix-lock-backgroundtransparentHintergrundfarbe im gesperrten Zustand.
--uix-lock-background-unlockednoneHintergrundfarbe im entsperrten Zustand.
--uix-lock-background-blocked--uix-lock-backgroundHintergrund, wenn dauerhaft blockiert ist.
--uix-lock-border-radiusinheritRundung des Overlays.
--uix-lock-icon-size24px, bei ha-tile-icon 12pxGröße des Schlossicons.
--uix-lock-icon-backgroundnoneHintergrund des Iconelements.
--uix-lock-icon-border-radiusnone, bei ha-tile-icon 50%Rundung des Iconelements.
--uix-lock-icon-padding0, bei ha-tile-info 2pxInnenabstand um das Icon.
--uix-lock-icon-positionnoneCSS-translate, z. B. 30px 6px.
--uix-lock-icon-fade-duration2sDauer des Ausblendens, wenn kein icon_unlocked gesetzt ist.
--uix-lock-row-background--uix-lock-backgroundHintergrund bei row-Mold.
--uix-lock-row-border-radius--uix-lock-border-radiusRundung bei row-Mold.
--uix-lock-row-outlined-blockednoneOutline bei dauerhaft blockiertem Row-Mold.
--uix-lock-cursorpointerCursor im Overlay.
--uix-lock-cursor-locked--uix-lock-cursorCursor im gesperrten Zustand.
--uix-lock-cursor-unlocked--uix-lock-cursorCursor im entsperrten Zustand.
--uix-lock-cursor-blocked--uix-lock-cursorCursor bei dauerhaft blockiertem Zustand.

Styling-Beispiele

yaml
uix:
  style: |
    :host {
      --uix-lock-background: rgba(0, 0, 0, 0.35);
      --uix-lock-icon-background: var(--card-background-color);
      --uix-lock-icon-border-radius: 999px;
      --uix-lock-icon-padding: 4px;
    }
yaml
uix:
  style: |
    :host {
      --uix-lock-icon-size: 14px;
      --uix-lock-icon-position: 2px 2px;
    }

Templates

Lock-Werte können Templates nutzen, wenn du Regeln an Zustandswerte koppeln willst.

yaml
forge:
  sparks:
    - type: lock
      locks:
        - pin: "{{ states('input_text.dashboard_pin') }}"
          admins: true

TIP

Für robuste Dashboards ist es meist besser, PINs nicht aus frei sichtbaren Helpern zu lesen. Templates eignen sich eher für active, confirmation oder Benutzergruppenlogik.