Untitled
user_4577084
plain_text
a year ago
2.8 kB
34
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