From ff78b71acc94e04b3606a373bb72ee1b27f9e51d Mon Sep 17 00:00:00 2001 From: Andrew Onyshchuk Date: Tue, 2 Jul 2024 11:37:05 -0700 Subject: [PATCH 1/2] feat(config): add Yale Assure 2 Biometric Deadbolt --- .../0x0129/templates/yale_template.json | 5 +- .../config/devices/0x0129/yrd4x0-f-zw3.json | 108 ++++++++++++++++++ 2 files changed, 111 insertions(+), 2 deletions(-) create mode 100644 packages/config/config/devices/0x0129/yrd4x0-f-zw3.json diff --git a/packages/config/config/devices/0x0129/templates/yale_template.json b/packages/config/config/devices/0x0129/templates/yale_template.json index 662308c51c20..9c4797d78463 100644 --- a/packages/config/config/devices/0x0129/templates/yale_template.json +++ b/packages/config/config/devices/0x0129/templates/yale_template.json @@ -333,14 +333,15 @@ "$import": "~/templates/master_template.json#base_0-127_nounit", "label": "Door Propped Time Limit", "unit": "10 seconds", - "minValue": 10, + "minValue": 0, "defaultValue": 0 }, "door_propped_timer_255": { "$import": "~/templates/master_template.json#base_0-255_nounit", "label": "Door Propped Time Limit", "unit": "10 seconds", - "minValue": 10, + "minValue": 0, + "maxValue": 254, "defaultValue": 0 }, "dps_alarm": { diff --git a/packages/config/config/devices/0x0129/yrd4x0-f-zw3.json b/packages/config/config/devices/0x0129/yrd4x0-f-zw3.json new file mode 100644 index 000000000000..d2fcbc6f6bfa --- /dev/null +++ b/packages/config/config/devices/0x0129/yrd4x0-f-zw3.json @@ -0,0 +1,108 @@ +{ + "manufacturer": "Yale", + "manufacturerId": "0x0129", + "label": [ + { + "$if": "productId === 0x49d1", + "value": "YRD410-F-ZW3" + }, + { + "$if": "productId === 0x49d2", + "value": "YRD420-F-ZW3" + }, + { + "$if": "productId === 0x49d3", + "value": "YRD430-F-ZW3" + }, + { + "$if": "productId === 0x49d5", + "value": "YRD450-F-ZW3" + }, + "YRD4X0-F-ZW3" + ], + "description": "Assure 2 Biometric Deadbolt", + "devices": [ + // YRD410-F-ZW3 (Keyed Push Button) + { + "productType": "0x8107", + "productId": "0x49d1", + "zwaveAllianceId": 4936 + }, + // YRD420-F-ZW3 (Keyed Touch Screen) + { + "productType": "0x8107", + "productId": "0x49d2", + "zwaveAllianceId": 4929 + }, + // YRD430-F-ZW3 (Keyless Push Button) + { + "productType": "0x8107", + "productId": "0x49d3", + "zwaveAllianceId": 4934 + }, + // YRD450-F-ZW3 (Keyless Touch Screen) + { + "productType": "0x8107", + "productId": "0x49d5", + "zwaveAllianceId": 4913 + } + ], + "firmwareVersion": { + "min": "0.0", + "max": "255.255" + }, + "paramInformation": [ + { + "#": "1", + "$import": "templates/yale_template.json#volume", + "defaultValue": 1 + }, + { + "#": "2", + "$import": "templates/yale_template.json#auto_relock" + }, + { + "#": "3", + "$import": "templates/yale_template.json#auto_relock_time_180" + }, + { + "#": "4", + "$import": "templates/yale_template.json#wrong_code_limit_3_to_10", + "defaultValue": 3 + }, + { + "#": "7", + "$import": "templates/yale_template.json#wrong_code_lockout_10_to_132" + }, + { + "#": "8", + "$import": "templates/yale_template.json#operating_mode_normal_privacy_passage" + }, + { + "#": "11", + "$import": "templates/yale_template.json#one_touch", + "defaultValue": 255 + }, + { + "#": "13", + "$import": "templates/yale_template.json#lock_status_led" + }, + { + "#": "18", + "$import": "templates/yale_template.json#door_propped_timer_255" + }, + { + "#": "19", + "$import": "templates/yale_template.json#dps_alarm", + "defaultValue": 255 + }, + { + "#": "28", + "$import": "templates/yale_template.json#expiring_pin_lifetime" + } + ], + "metadata": { + "$import": "templates/yale_template.json#assure2_zw3_metadata", + "reset": "Please use this procedure only when the network primary controller is missing or otherwise inoperable.\n1. Remove the inside lever with the lever removal tool.\n2. Remove battery cover using hex wrench provided with lock.\n3. Remove four (4) AA batteries.\n4. Remove the 10-32 x 3/4\" pan head screw from the center of the battery housing into the barrel nut of the outside assembly.\n5. Remove inside escutcheon. Cables may stay connected.\n6. Reinstall batteries \n7. On the back of the PC board, push and hold the Reset Button with the lever removal tool for 3 seconds.\n8. While continuing the press the reset button, temporarily remove one AA battery.\n9. Reinstall the battery\n10. Release reset button and wait 15 seconds. Speaker will announce \"Welcome to Yale\"\n11. Reassemble escutcheon" + } +} From 0f5d561d15a3fd9325377d48cc97cbc325e6f5f3 Mon Sep 17 00:00:00 2001 From: Dominic Griesel Date: Wed, 10 Jul 2024 08:53:05 +0200 Subject: [PATCH 2/2] fix: inline nested template, add option, rename incorrect template --- .../config/devices/0x0129/ntb612-zw2.json | 2 +- .../config/devices/0x0129/ntb622-zw2.json | 2 +- .../config/devices/0x0129/ntb632-zw2.json | 2 +- .../config/devices/0x0129/ntb642-zw2.json | 2 +- .../config/devices/0x0129/ntm612-zw2.json | 2 +- .../config/devices/0x0129/ntm617-zw2.json | 2 +- .../config/devices/0x0129/ntm622-zw2.json | 2 +- .../config/devices/0x0129/ntm627-zw2.json | 2 +- .../config/devices/0x0129/ntm632-zw2.json | 2 +- .../config/devices/0x0129/ntm637-zw2.json | 2 +- .../config/devices/0x0129/ntm642-zw2.json | 2 +- .../config/devices/0x0129/ntm647-zw2.json | 2 +- .../config/config/devices/0x0129/ntt610.json | 3 +-- .../config/devices/0x0129/ntt612-zw2.json | 2 +- .../config/devices/0x0129/ntt622-zw2.json | 2 +- .../0x0129/templates/yale_template.json | 24 +++++++++++++++---- .../config/devices/0x0129/yrd4x0-f-zw3.json | 5 ++-- 17 files changed, 37 insertions(+), 23 deletions(-) diff --git a/packages/config/config/devices/0x0129/ntb612-zw2.json b/packages/config/config/devices/0x0129/ntb612-zw2.json index 86d81c44eb0d..18f37e7d4f39 100644 --- a/packages/config/config/devices/0x0129/ntb612-zw2.json +++ b/packages/config/config/devices/0x0129/ntb612-zw2.json @@ -44,7 +44,7 @@ }, { "#": "18", - "$import": "templates/yale_template.json#door_propped_timer_255" + "$import": "templates/yale_template.json#door_propped_timer_254" }, { "#": "19", diff --git a/packages/config/config/devices/0x0129/ntb622-zw2.json b/packages/config/config/devices/0x0129/ntb622-zw2.json index c8993bd58544..e3411295e85a 100644 --- a/packages/config/config/devices/0x0129/ntb622-zw2.json +++ b/packages/config/config/devices/0x0129/ntb622-zw2.json @@ -44,7 +44,7 @@ }, { "#": "18", - "$import": "templates/yale_template.json#door_propped_timer_255" + "$import": "templates/yale_template.json#door_propped_timer_254" }, { "#": "19", diff --git a/packages/config/config/devices/0x0129/ntb632-zw2.json b/packages/config/config/devices/0x0129/ntb632-zw2.json index 9178af02aebc..eefa137a75dc 100644 --- a/packages/config/config/devices/0x0129/ntb632-zw2.json +++ b/packages/config/config/devices/0x0129/ntb632-zw2.json @@ -44,7 +44,7 @@ }, { "#": "18", - "$import": "templates/yale_template.json#door_propped_timer_255" + "$import": "templates/yale_template.json#door_propped_timer_254" }, { "#": "19", diff --git a/packages/config/config/devices/0x0129/ntb642-zw2.json b/packages/config/config/devices/0x0129/ntb642-zw2.json index d0f35a1fb858..37d02c9b1246 100644 --- a/packages/config/config/devices/0x0129/ntb642-zw2.json +++ b/packages/config/config/devices/0x0129/ntb642-zw2.json @@ -44,7 +44,7 @@ }, { "#": "18", - "$import": "templates/yale_template.json#door_propped_timer_255" + "$import": "templates/yale_template.json#door_propped_timer_254" }, { "#": "19", diff --git a/packages/config/config/devices/0x0129/ntm612-zw2.json b/packages/config/config/devices/0x0129/ntm612-zw2.json index 03346c545230..b900ad067ec4 100644 --- a/packages/config/config/devices/0x0129/ntm612-zw2.json +++ b/packages/config/config/devices/0x0129/ntm612-zw2.json @@ -68,7 +68,7 @@ }, { "#": "18", - "$import": "templates/yale_template.json#door_propped_timer_255" + "$import": "templates/yale_template.json#door_propped_timer_254" }, { "#": "20", diff --git a/packages/config/config/devices/0x0129/ntm617-zw2.json b/packages/config/config/devices/0x0129/ntm617-zw2.json index 890621c1d1bd..768d10abdb78 100644 --- a/packages/config/config/devices/0x0129/ntm617-zw2.json +++ b/packages/config/config/devices/0x0129/ntm617-zw2.json @@ -68,7 +68,7 @@ }, { "#": "18", - "$import": "templates/yale_template.json#door_propped_timer_255" + "$import": "templates/yale_template.json#door_propped_timer_254" }, { "#": "20", diff --git a/packages/config/config/devices/0x0129/ntm622-zw2.json b/packages/config/config/devices/0x0129/ntm622-zw2.json index ea37b013f5a8..4f4a4b375648 100644 --- a/packages/config/config/devices/0x0129/ntm622-zw2.json +++ b/packages/config/config/devices/0x0129/ntm622-zw2.json @@ -68,7 +68,7 @@ }, { "#": "18", - "$import": "templates/yale_template.json#door_propped_timer_255" + "$import": "templates/yale_template.json#door_propped_timer_254" }, { "#": "20", diff --git a/packages/config/config/devices/0x0129/ntm627-zw2.json b/packages/config/config/devices/0x0129/ntm627-zw2.json index c3ab1df40176..37f221de254b 100644 --- a/packages/config/config/devices/0x0129/ntm627-zw2.json +++ b/packages/config/config/devices/0x0129/ntm627-zw2.json @@ -68,7 +68,7 @@ }, { "#": "18", - "$import": "templates/yale_template.json#door_propped_timer_255" + "$import": "templates/yale_template.json#door_propped_timer_254" }, { "#": "20", diff --git a/packages/config/config/devices/0x0129/ntm632-zw2.json b/packages/config/config/devices/0x0129/ntm632-zw2.json index b807a30eb127..6fa38b3301d8 100644 --- a/packages/config/config/devices/0x0129/ntm632-zw2.json +++ b/packages/config/config/devices/0x0129/ntm632-zw2.json @@ -68,7 +68,7 @@ }, { "#": "18", - "$import": "templates/yale_template.json#door_propped_timer_255" + "$import": "templates/yale_template.json#door_propped_timer_254" }, { "#": "20", diff --git a/packages/config/config/devices/0x0129/ntm637-zw2.json b/packages/config/config/devices/0x0129/ntm637-zw2.json index 27ae2ba11601..3f4b61c7be68 100644 --- a/packages/config/config/devices/0x0129/ntm637-zw2.json +++ b/packages/config/config/devices/0x0129/ntm637-zw2.json @@ -68,7 +68,7 @@ }, { "#": "18", - "$import": "templates/yale_template.json#door_propped_timer_255" + "$import": "templates/yale_template.json#door_propped_timer_254" }, { "#": "20", diff --git a/packages/config/config/devices/0x0129/ntm642-zw2.json b/packages/config/config/devices/0x0129/ntm642-zw2.json index 7494dcbc0f2b..75c1746907e3 100644 --- a/packages/config/config/devices/0x0129/ntm642-zw2.json +++ b/packages/config/config/devices/0x0129/ntm642-zw2.json @@ -68,7 +68,7 @@ }, { "#": "18", - "$import": "templates/yale_template.json#door_propped_timer_255" + "$import": "templates/yale_template.json#door_propped_timer_254" }, { "#": "20", diff --git a/packages/config/config/devices/0x0129/ntm647-zw2.json b/packages/config/config/devices/0x0129/ntm647-zw2.json index 0aecfa6c2980..21e83d77c300 100644 --- a/packages/config/config/devices/0x0129/ntm647-zw2.json +++ b/packages/config/config/devices/0x0129/ntm647-zw2.json @@ -68,7 +68,7 @@ }, { "#": "18", - "$import": "templates/yale_template.json#door_propped_timer_255" + "$import": "templates/yale_template.json#door_propped_timer_254" }, { "#": "20", diff --git a/packages/config/config/devices/0x0129/ntt610.json b/packages/config/config/devices/0x0129/ntt610.json index 12dbedea6891..10b0185a1dff 100644 --- a/packages/config/config/devices/0x0129/ntt610.json +++ b/packages/config/config/devices/0x0129/ntt610.json @@ -61,8 +61,7 @@ }, { "#": "18", - "$import": "templates/yale_template.json#door_propped_timer", - "minValue": 10 + "$import": "templates/yale_template.json#door_propped_timer" }, { "#": "19", diff --git a/packages/config/config/devices/0x0129/ntt612-zw2.json b/packages/config/config/devices/0x0129/ntt612-zw2.json index 51d569a068f3..e2c91f544f2d 100644 --- a/packages/config/config/devices/0x0129/ntt612-zw2.json +++ b/packages/config/config/devices/0x0129/ntt612-zw2.json @@ -64,7 +64,7 @@ }, { "#": "18", - "$import": "templates/yale_template.json#door_propped_timer_255" + "$import": "templates/yale_template.json#door_propped_timer_254" }, { "#": "19", diff --git a/packages/config/config/devices/0x0129/ntt622-zw2.json b/packages/config/config/devices/0x0129/ntt622-zw2.json index 6b3e90dbeb0f..a29603d387c8 100644 --- a/packages/config/config/devices/0x0129/ntt622-zw2.json +++ b/packages/config/config/devices/0x0129/ntt622-zw2.json @@ -64,7 +64,7 @@ }, { "#": "18", - "$import": "templates/yale_template.json#door_propped_timer_255" + "$import": "templates/yale_template.json#door_propped_timer_254" }, { "#": "19", diff --git a/packages/config/config/devices/0x0129/templates/yale_template.json b/packages/config/config/devices/0x0129/templates/yale_template.json index 9c4797d78463..f3df2fe8cdb5 100644 --- a/packages/config/config/devices/0x0129/templates/yale_template.json +++ b/packages/config/config/devices/0x0129/templates/yale_template.json @@ -330,19 +330,33 @@ ] }, "door_propped_timer": { - "$import": "~/templates/master_template.json#base_0-127_nounit", "label": "Door Propped Time Limit", "unit": "10 seconds", + "valueSize": 1, "minValue": 0, - "defaultValue": 0 + "maxValue": 127, + "defaultValue": 0, + "options": [ + { + "label": "Disable", + "value": 0 + } + ] }, - "door_propped_timer_255": { - "$import": "~/templates/master_template.json#base_0-255_nounit", + "door_propped_timer_254": { "label": "Door Propped Time Limit", "unit": "10 seconds", + "valueSize": 1, "minValue": 0, "maxValue": 254, - "defaultValue": 0 + "defaultValue": 0, + "unsigned": true, + "options": [ + { + "label": "Disable", + "value": 0 + } + ] }, "dps_alarm": { "$import": "~/templates/master_template.json#base_enable_disable_255", diff --git a/packages/config/config/devices/0x0129/yrd4x0-f-zw3.json b/packages/config/config/devices/0x0129/yrd4x0-f-zw3.json index d2fcbc6f6bfa..4dd07c87b319 100644 --- a/packages/config/config/devices/0x0129/yrd4x0-f-zw3.json +++ b/packages/config/config/devices/0x0129/yrd4x0-f-zw3.json @@ -89,7 +89,7 @@ }, { "#": "18", - "$import": "templates/yale_template.json#door_propped_timer_255" + "$import": "templates/yale_template.json#door_propped_timer_254" }, { "#": "19", @@ -103,6 +103,7 @@ ], "metadata": { "$import": "templates/yale_template.json#assure2_zw3_metadata", - "reset": "Please use this procedure only when the network primary controller is missing or otherwise inoperable.\n1. Remove the inside lever with the lever removal tool.\n2. Remove battery cover using hex wrench provided with lock.\n3. Remove four (4) AA batteries.\n4. Remove the 10-32 x 3/4\" pan head screw from the center of the battery housing into the barrel nut of the outside assembly.\n5. Remove inside escutcheon. Cables may stay connected.\n6. Reinstall batteries \n7. On the back of the PC board, push and hold the Reset Button with the lever removal tool for 3 seconds.\n8. While continuing the press the reset button, temporarily remove one AA battery.\n9. Reinstall the battery\n10. Release reset button and wait 15 seconds. Speaker will announce \"Welcome to Yale\"\n11. Reassemble escutcheon" + "reset": "Please use this procedure only when the network primary controller is missing or otherwise inoperable.\n1. Remove the inside lever with the lever removal tool.\n2. Remove battery cover using hex wrench provided with lock.\n3. Remove four (4) AA batteries.\n4. Remove the 10-32 x 3/4\" pan head screw from the center of the battery housing into the barrel nut of the outside assembly.\n5. Remove inside escutcheon. Cables may stay connected.\n6. Reinstall batteries \n7. On the back of the PC board, push and hold the Reset Button with the lever removal tool for 3 seconds.\n8. While continuing the press the reset button, temporarily remove one AA battery.\n9. Reinstall the battery\n10. Release reset button and wait 15 seconds. Speaker will announce \"Welcome to Yale\"\n11. Reassemble escutcheon", + "manual": "https://products.z-wavealliance.org/ProductManual/File?folder=&filename=cert_portal/certs/859/YRD420_F_ZW3_MNL_1.pdf" } }