You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: source/_integrations/matter.markdown
+221Lines changed: 221 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -365,6 +365,13 @@ The Home Assistant Matter updates currently do not work for Thread devices on a
365
365
The Matter integration has the following actions:
366
366
367
367
-`matter.water_heater_boost`
368
+
-`matter.set_lock_user`
369
+
-`matter.clear_lock_user`
370
+
-`matter.get_lock_info`
371
+
-`matter.get_lock_users`
372
+
-`matter.set_lock_credential`
373
+
-`matter.clear_lock_credential`
374
+
-`matter.get_lock_credential_status`
368
375
369
376
### Action: Water heater boost
370
377
@@ -376,6 +383,220 @@ The `matter.water_heater_boost` action enables water heater boost for a specific
376
383
|`emergency_boost`| Yes | Whether to enable emergency boost mode |
377
384
|`temporary_setpoint`| Yes | Temporary setpoint temperature in Celsius during the boost period |
378
385
386
+
### Lock user and credential management
387
+
388
+
The following actions let you manage users and credentials (such as PIN codes and RFID tags) on Matter-compatible locks. Your lock must support the Matter Door Lock cluster user and credential management features for these actions to work.
389
+
390
+
{% note %}
391
+
Not all Matter locks support user and credential management. Use the `matter.get_lock_info` action to check what your lock supports before attempting to manage users or credentials.
392
+
{% endnote %}
393
+
394
+
### Action: Set lock user
395
+
396
+
The `matter.set_lock_user` action creates or updates a user on the lock. If you omit the `user_index`, the lock automatically assigns the next available slot.
397
+
398
+
-**Data attribute**: `user_index`
399
+
-**Description**: The user slot index (1-based). Leave empty to let the lock automatically find an available slot.
400
+
-**Required**: No
401
+
402
+
-**Data attribute**: `user_name`
403
+
-**Description**: A name for the user.
404
+
-**Required**: No
405
+
406
+
-**Data attribute**: `user_type`
407
+
-**Description**: The type of user to create.
408
+
-**Required**: No
409
+
-**Options**:
410
+
-`unrestricted_user`: A regular user with no access restrictions.
411
+
-`year_day_schedule_user`: Access is limited to specific date ranges.
412
+
-`week_day_schedule_user`: Access is limited to specific days and times each week.
413
+
-`programming_user`: A user who can manage other users and credentials on the lock.
414
+
-`non_access_user`: A user record that exists on the lock but cannot unlock it.
415
+
-`forced_user`: A user whose access triggers a special alarm or notification, for example a duress code.
416
+
-`disposable_user`: A user whose credential is automatically revoked after a single use.
417
+
-`expiring_user`: A user whose access expires after a set period.
418
+
-`schedule_restricted_user`: A user restricted by both week-day and year-day schedules.
419
+
-`remote_only_user`: A user who can only operate the lock remotely, not from the physical keypad.
420
+
421
+
-**Data attribute**: `credential_rule`
422
+
-**Description**: The credential rule for the user. Determines how many credentials must be presented to unlock.
423
+
-**Required**: No
424
+
-**Options**:
425
+
-`single`: One credential is required to unlock (for example, just a PIN).
426
+
-`dual`: Two different credentials are required to unlock (for example, a PIN and an RFID tag).
427
+
-`tri`: Three different credentials are required to unlock.
428
+
429
+
```yaml
430
+
action: matter.set_lock_user
431
+
target:
432
+
entity_id: lock.front_door
433
+
data:
434
+
user_name: "Jane"
435
+
user_type: unrestricted_user
436
+
credential_rule: single
437
+
```
438
+
439
+
### Action: Clear lock user
440
+
441
+
The `matter.clear_lock_user` action deletes a user and all their associated credentials from the lock. To clear all users at once, use index `65534`. This is a special value defined by the Matter specification (hex `0xFFFE`) that tells the lock to remove every user.
442
+
443
+
- **Data attribute**: `user_index`
444
+
- **Description**: The user slot index (1-based) to clear. Use `65534` to clear all users at once.
445
+
- **Required**: Yes
446
+
447
+
```yaml
448
+
# Remove a single user
449
+
action: matter.clear_lock_user
450
+
target:
451
+
entity_id: lock.front_door
452
+
data:
453
+
user_index: 3
454
+
```
455
+
456
+
```yaml
457
+
# Remove all users
458
+
action: matter.clear_lock_user
459
+
target:
460
+
entity_id: lock.front_door
461
+
data:
462
+
user_index: 65534
463
+
```
464
+
465
+
### Action: Get lock info
466
+
467
+
The `matter.get_lock_info` action returns the lock's capabilities, including supported credential types, maximum number of users, and PIN length constraints. This action returns a response and does not require any additional data attributes.
468
+
469
+
```yaml
470
+
action: matter.get_lock_info
471
+
target:
472
+
entity_id: lock.front_door
473
+
response_variable: lock_info
474
+
```
475
+
476
+
### Action: Get lock users
477
+
478
+
The `matter.get_lock_users` action returns all users configured on the lock along with their associated credentials. This action returns a response and does not require any additional data attributes.
479
+
480
+
```yaml
481
+
action: matter.get_lock_users
482
+
target:
483
+
entity_id: lock.front_door
484
+
response_variable: lock_users
485
+
```
486
+
487
+
### Action: Set lock credential
488
+
489
+
The `matter.set_lock_credential` action adds or updates a credential on the lock. If you omit the `credential_index`, the lock automatically assigns the next available slot. If you omit the `user_index`, a new user is created for the credential. This action returns a response containing the assigned credential and user indices.
490
+
491
+
- **Data attribute**: `credential_type`
492
+
- **Description**: The type of credential to set.
493
+
- **Required**: Yes
494
+
- **Options**:
495
+
- `pin`: A numeric PIN code entered on the lock's keypad.
496
+
- `rfid`: An RFID tag or card tapped against the lock's reader.
497
+
- `fingerprint`: A fingerprint registered on the lock's biometric sensor.
498
+
- `finger_vein`: A finger-vein pattern registered on the lock's biometric sensor.
499
+
- `face`: A facial recognition profile registered on the lock.
500
+
501
+
- **Data attribute**: `credential_data`
502
+
- **Description**: The credential data to store. For `pin` credentials, use digits only (for example, `1234`). For `rfid` credentials, use a hexadecimal string representing the tag ID (for example, `AABBCCDD`).
503
+
- **Required**: Yes
504
+
505
+
- **Data attribute**: `credential_index`
506
+
- **Description**: The credential slot index (0-based). Leave empty to let the lock automatically find an available slot.
507
+
- **Required**: No
508
+
509
+
- **Data attribute**: `user_index`
510
+
- **Description**: The user index (1-based) to associate the credential with. Leave empty to have the lock automatically create a new user.
511
+
- **Required**: No
512
+
513
+
- **Data attribute**: `user_status`
514
+
- **Description**: The user status to set when creating a new user for this credential.
515
+
- **Required**: No
516
+
- **Options**:
517
+
- `occupied_enabled`: The user is active and can use their credentials to unlock.
518
+
- `occupied_disabled`: The user exists but their credentials are temporarily disabled.
519
+
520
+
- **Data attribute**: `user_type`
521
+
- **Description**: The user type to set when creating a new user for this credential. See the `matter.set_lock_user` action for a description of each user type.
522
+
- **Required**: No
523
+
524
+
```yaml
525
+
# Add a PIN to an existing user
526
+
action: matter.set_lock_credential
527
+
target:
528
+
entity_id: lock.front_door
529
+
data:
530
+
credential_type: pin
531
+
credential_data: "1234"
532
+
user_index: 1
533
+
response_variable: result
534
+
```
535
+
536
+
```yaml
537
+
# Add an RFID tag and let the lock create a new user
538
+
action: matter.set_lock_credential
539
+
target:
540
+
entity_id: lock.front_door
541
+
data:
542
+
credential_type: rfid
543
+
credential_data: "AABBCCDD"
544
+
response_variable: result
545
+
```
546
+
547
+
### Action: Clear lock credential
548
+
549
+
The `matter.clear_lock_credential` action removes a credential from the lock.
550
+
551
+
- **Data attribute**: `credential_type`
552
+
- **Description**: The type of credential to remove. See the `matter.set_lock_credential` action for a description of each credential type.
553
+
- **Required**: Yes
554
+
555
+
- **Data attribute**: `credential_index`
556
+
- **Description**: The credential slot index (0-based) to clear.
557
+
- **Required**: Yes
558
+
559
+
```yaml
560
+
action: matter.clear_lock_credential
561
+
target:
562
+
entity_id: lock.front_door
563
+
data:
564
+
credential_type: pin
565
+
credential_index: 1
566
+
```
567
+
568
+
### Action: Get lock credential status
569
+
570
+
The `matter.get_lock_credential_status` action returns the status of a specific credential slot on the lock, including whether the slot is occupied and which user it belongs to. This action returns a response.
571
+
572
+
- **Data attribute**: `credential_type`
573
+
- **Description**: The type of credential to query.
574
+
- **Required**: Yes
575
+
- **Options**:
576
+
- `programming_pin`: A special administrative PIN used to manage the lock at the keypad.
577
+
- `pin`: A numeric PIN code entered on the lock's keypad.
578
+
- `rfid`: An RFID tag or card tapped against the lock's reader.
579
+
- `fingerprint`: A fingerprint registered on the lock's biometric sensor.
580
+
- `finger_vein`: A finger-vein pattern registered on the lock's biometric sensor.
581
+
- `face`: A facial recognition profile registered on the lock.
582
+
- `aliro_credential_issuer_key`: An Aliro credential issuer key (used by Aliro-compatible locks for NFC-based access).
583
+
- `aliro_evictable_endpoint_key`: An Aliro endpoint key that the lock can remove when it runs out of space.
584
+
- `aliro_non_evictable_endpoint_key`: An Aliro endpoint key that the lock must keep and cannot automatically remove.
585
+
586
+
- **Data attribute**: `credential_index`
587
+
- **Description**: The credential slot index (0-based) to query.
588
+
- **Required**: Yes
589
+
590
+
```yaml
591
+
action: matter.get_lock_credential_status
592
+
target:
593
+
entity_id: lock.front_door
594
+
data:
595
+
credential_type: pin
596
+
credential_index: 1
597
+
response_variable: credential_status
598
+
```
599
+
379
600
## Automate on a button press
380
601
381
602
You have a device that takes button presses as inputs (such as a Tuo Smart Button, VTM31SN dimmer by Inovelli, or the Matter Pushbutton Module by Innovation Matters) and now want to trigger an automation based on that button press. To learn how to create an automation triggered by a button press, refer to this [tutorial](/integrations/event/#automating-on-a-button-press).
0 commit comments