Poradnik - blokada PIN kart lub włączników

Na prośba jednego z kolegów poniżej przedstawiam możliwość blokady poszczególnych włączników (np. gość, alarm, itp.) lub całych kart w Lovelace.

  1. Musimy zainstalować dodatek z HACS->Frontend " Restriction Card". Po zainstalowaniu warto zrobić restart HA.
    Zrzut ekranu 2020-11-12 o 10.54.56
  2. Następnie konfigurujemy naszą konkretną katę lub przycisk, który chcemy zabezpieczyć pinem. Dla przykładu pokaże jak zabezpieczyć kartę oraz przełącznik. Więcej przykładów jest w dokumentacji dodatku. Opcji zabezpieczenia jest kilka, np. przez podanie PIN lub po prostu zabezpieczenie bez PINu przed przypadkowym uruchomieniem.
    Zabezpieczenie karty - ja zrobiłem zabezpieczenie, żeby nikt nie miał możliwości sprawdzania gdzie jestem (na mapie), więc jak ktoś kliknie na mapę to pojawi się okno do wpisania kodu PIN:
    Zrzut ekranu 2020-11-12 o 13.51.00
    Zrzut ekranu 2020-11-12 o 13.51.14
    Oczywiście kartę dodajemy nie standardową, przykładowy kod poniżej (do zmiany na własne potrzeby) - kod pin może mieć wiele znaków, natomiast nie może zaczynać się od “0” (zero) - mi to nie zadziałało:
restrictions:
  pin:
    code: 1234
card:
  card:
    type: entities
  entities:
    - entity: person.pawel
    - entity: sensor.iphone_pawel_battery_level
  type: glance
type: 'custom:restriction-card'

Tak ma to wyglądać:
Zrzut ekranu 2020-11-12 o 13.59.28

Ewentualnie dla zastosowania karty “horizontal stacs”
Zrzut ekranu 2020-11-12 o 13.54.11

Jeśli chcemy zastosować blokadę PIN tylko dla określonych użytkowników to pod “code” dopisujemy:

exemptions:
      - user: np. ID administratora
      - user: np. ID użytkownika X (żona)

Gdzie znaleźć ID użytkownika: wchodzimy w Konfiguracja->Użytkownicy, klikamy na tego który nas interesuje i otwiera nam się karta w której jest Identyfikator.

Jeśli chcemy użyć tylko blokady bez PIN (zabezpieczenie przed przypadkowym kliknięciem), po kliknięciu w taką kartę pojawi nam się okienko czy odblokować i klikamy OK. Konfiguracja jest prosta i analogiczna do poprzedniej, zamiast wpisu “pin” w kodzie wpisujemy:

block:
    exemptions:
      - user: ID użytkownika (tego nie musimy wpisywać jeśli wszystkim ma się pojawiać blokada)
      - user: ID użytkownika (jak wyżej)

Teraz drugi przykład, ten u mnie jest trochę bardziej skomplikowany, ponieważ standardowo kłódka pojawia się obok nazwy przycisku, natomiast ja ją zmodyfikowałem i może się pojawiać tak jak u mnie przy włączniku lub na włączniku, kolor standardowy kłódki jest inny niż mój i też możemy to zmieniać, oczywiście pokażę poniżej jak, zaczynamy od podstawowej karty z kłódką obok nazwy:

show_header_toggle: false
title: Tryby pracy
entities:
  - card:
      entity: input_boolean.tryb_goscia
    restrictions:
      pin:
        code: 1234
    type: 'custom:restriction-card'
    row: true
  - entity: input_boolean.cisza
type: entities

Prawie tak to wygląda (różnica jest w tym że kłódka u mnie jest w innym miejscu, niż wam się pokaże ponieważ nie chciało mi się zmieniać w kodzie motywu na potrzeby tego poradnika), u was będzie kłódka obok nazwy:
Zrzut ekranu 2020-11-12 o 14.21.09

Teraz zmiana kolorów i lokalizacji kłódki, finalnie tak to będzie wyglądać:
Zrzut ekranu 2020-11-12 o 14.26.40

Pierwsze musimy wejść w plik w którym jest zapisany “motyw” (czyli wygląd naszego interface HA).
Tutaj mam nadzieję, że wszyscy korzystają już z własnego (wgranego wcześniej) motywu, jeśli tak to edytujemy ten, który obecnie używamy. Jeśli chcemy sprawdzić jaki jest obecnie używany wchodzimy w nasz profil pod dzwoneczkiem:
Zrzut ekranu 2020-11-12 o 14.36.56
I sprawdzamy w okienku motyw jaki używamy:
Zrzut ekranu 2020-11-12 o 14.37.10
Następnie przechodzimy do pliku tego motywu, do edycji plików HA używam dodatku Visual Studio Code, po wejściu w folderze themes znajduje się mój plik z moim motywem:
Zrzut ekranu 2020-11-12 o 14.46.51
Po kliknięciu w plik motywu, pojawia nam się kod, dodajemy następujący wpis (nie ma większego znaczenia w którym miejscu on będzie, u mnie jest na początku:

  # Karta blokady - restriction card
  restriction-lock-row-margin-left: 80%
  restriction-blocked-lock-color: black
  restriction-regular-lock-color: black
  restriction-success-lock-color: green
  restriction-invalid--color: blue

Zrzut ekranu 2020-11-12 o 14.48.55
Teraz co za co odpowiada:

  • restriction-lock-row-margin-left: 80% - odpowiada za miejsce kłódki (jeśli zrobiłbym 85% to pewnie byłaby na przycisku) - pamiętajcie, że kłódka będzie się znajdować w różnych miejscach, bo zależy ile mamy kolumn w interface, itp. musicie % dostosować do siebie.
  • restriction-blocked-lock-color: black - tutaj kolor przy blokadzie pin (oczywiście to będziemy mogli zmieniać kodem w lovelace - do czego też dojdziemy,
  • restriction-regular-lock-color: black - tutaj kolor przy blokadzie zwykłej - kolor też możemy modyfikować z poziomu interface
  • restriction-success-lock-color: green - kolor przy poprawnym odblokowaniu
  • restriction-invalid–color: blue - kolor przy błędnym wpisanym kodzie PIN

Jak już wprowadziliśmy odpowiedni kod w waszym motywie, zapisujemy i robimy restart HA, sprawdzamy wcześniej !!! konfigurację !!!
Po uruchomieniu przyszedł czas na nową kartę, wybieramy niestandardową i wklejamy poniższy kod (oczywiście modyfikujemy go pod siebie):

show_header_toggle: false
title: Tryby pracy
entities:
  - card:
      entity: input_boolean.tryb_goscia
    restrictions:
      pin:
        code: 1234
    style: |
      :host {
        --restriction-regular-lock-color: red;
      }
    type: 'custom:restriction-card'
    row: true
  - card:
      entity: input_boolean.poza_domem
    restrictions:
      pin:
        code: 1234
    style: |
      :host {
        --restriction-regular-lock-color: red;
      }
    type: 'custom:restriction-card'
    row: true
  - card:
      entity: input_boolean.tryb_dzienny
    restrictions:
      pin:
        code: 1234
    style: |
      :host {
        --restriction-regular-lock-color: green;
      }
    type: 'custom:restriction-card'
    row: true
  - entity: input_boolean.cisza
  - card:
      entity: input_boolean.tryb_letni
    restrictions:
      pin:
        code: 1234
    style: |
      :host {
        --restriction-regular-lock-color: green;
      }
    type: 'custom:restriction-card'
    row: true
  - card:
      entity: input_boolean.wakacje
    restrictions:
      pin:
        code: 1234
    style: |
      :host {
        --restriction-regular-lock-color: red;
      }
    type: 'custom:restriction-card'
    row: true
  - entity: input_boolean.symulacja
type: entities

Oczywiście każdy przycisk może mieć inny Kod PIN, jeśli chcecie wymagać wpisania kodu poszczególnym użytkownikom, no to robimy tak samo jak przy poprzedniej karcie. Tutaj jeszcze pojawiła się sekcja “style” w niej, ja sobie wstawiłem inne kolory, niezależne od tego co wcześniej robiliśmy w pliku motyw.yaml.

Mam nadzieję, że jasno to opisałem, natomiast jeśli coś jest nie tak to dawajcie znać w komentarzach, będę wyjaśniał lub poprawiał.

6 Likes

Super! Wielkie dzięki! Bankowo skorzystam!

Ja osobiście dla danego użytkownika mam przypisaną odpowiednią kartę, w której ma dostęp jedynie do wybranych encji :slight_smile:
oczywiście poradnik z pewnością znajdzie jakieś zastosowanie w przyszłości :slight_smile: