Untitled
user_4577084
plain_text
a year ago
2.8 kB
38
Indexable
const fz = require("zigbee-herdsman-converters/converters/fromZigbee");
const tz = require("zigbee-herdsman-converters/converters/toZigbee");
const exposes = require("zigbee-herdsman-converters/lib/exposes");
const reporting = require("zigbee-herdsman-converters/lib/reporting");
const e = exposes.presets;
const fzLocal = {
action_source_name: {
cluster: "closuresDoorLock",
type: "raw",
convert: (model, msg, publish, options, meta) => {
const lookup = {
0: "password_unlock", //'unknown', // password 15/07
1: "unlock", //'lock', unlock system 15/07
2: "auto_lock", // 'unlock', // one touch lock and autolock 15/07
3: "RFID_unlock", //'lock_failure_invalid_pin_or_id', // card 15/07
4: "fingerprint_unlock", //'lock_failure_invalid_schedule', // fingerprint 15/07
5: "unlock_failure_invalid_pin_or_id",
6: "unlock_failure_invalid_schedule",
7: "one_touch_lock",
8: "key_lock",
9: "key_unlock",
10: "auto_lock",
11: "schedule_lock",
12: "schedule_unlock",
13: "manual_lock",
14: "manual_unlock",
15: "non_access_user_operational_event",
};
const value = lookup[msg.data[3]];
return { action_source_name: value };
},
},
action_source_user: {
cluster: "closuresDoorLock",
type: "raw",
convert: (model, msg, publish, options, meta) => {
return { action_source_user: msg.data[5] };
},
},
};
const deviceConfig = {
zigbeeModel: ["YMC 420 A"],
model: "YMC 420 A",
vendor: "Yale",
description: "YMC 420 A",
exposes: [
e.lock(),
e.lock_action(),
e.battery(),
e.pincode(),
],
zigbeeModel: ["YMC 420 D"],
model: "YMC 420 D",
vendor: "Yale",
description: "YMC 420 D",
exposes: [
e.lock(),
e.lock_action(),
e.battery(),
e.pincode(),
],
zigbeeModel: ["YMC 420"],
model: "YMC 420",
vendor: "Yale",
description: "YMC 420",
exposes: [
e.lock(),
e.lock_action(),
e.battery(),
e.pincode(),
],
fromZigbee: [
fzLocal.action_source_user,
fzLocal.action_source_name,
fz.lock,
fz.battery,
fz.lock_operation_event,
fz.lock_programming_event,
fz.lock_pin_code_response,
fz.lock_user_status_response,
],
toZigbee: [
tz.lock,
tz.pincode_lock,
tz.lock_userstatus,
],
meta: {
pinCodeCount: 250,
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, [
"closuresDoorLock",
"genPowerCfg",
]);
await reporting.lockState(endpoint);
await reporting.batteryPercentageRemaining(endpoint);
},
},
};
module.exports = [deviceConfig];
Editor is loading...
Leave a Comment