homebridge-bold
Version:
HomeKit support for the Bold Smart Locks.
33 lines (32 loc) • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LockAccessory = void 0;
const base_accessory_1 = require("./base-accessory");
var LockState;
(function (LockState) {
LockState[LockState["Unlocked"] = 0] = "Unlocked";
LockState[LockState["Locked"] = 1] = "Locked";
})(LockState || (LockState = {}));
class LockAccessory extends base_accessory_1.BaseAccessory {
constructor(platform, accessory, deviceConfig) {
super(platform, accessory, deviceConfig);
this.platform = platform;
this.accessory = accessory;
this.deviceConfig = deviceConfig;
let lockService = accessory.getService(this.platform.hap.Service.LockMechanism);
if (!lockService) {
lockService = accessory.addService(this.platform.hap.Service.LockMechanism);
}
let currentState = lockService.getCharacteristic(this.platform.hap.Characteristic.LockCurrentState);
let targetState = lockService.getCharacteristic(this.platform.hap.Characteristic.LockTargetState);
currentState.onGet(() => this.isActivated ? LockState.Unlocked : LockState.Locked);
targetState.onGet(() => this.isActivated ? LockState.Unlocked : LockState.Locked)
.onSet((newState) => this.setState(newState == LockState.Unlocked));
}
onStateChange(activated) {
let service = this.accessory.getService(this.platform.hap.Service.LockMechanism);
service === null || service === void 0 ? void 0 : service.getCharacteristic(this.platform.hap.Characteristic.LockCurrentState).updateValue(activated ? LockState.Unlocked : LockState.Locked);
service === null || service === void 0 ? void 0 : service.getCharacteristic(this.platform.hap.Characteristic.LockTargetState).updateValue(activated ? LockState.Unlocked : LockState.Locked);
}
}
exports.LockAccessory = LockAccessory;