nubli
Version:
Nuki Bluetooth Library
40 lines (39 loc) • 1.91 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const SmartLockCommand_1 = require("./SmartLockCommand");
const states_1 = require("../states");
const smartLock_1 = require("../smartLock");
class KeyTurnerStatesCommand extends SmartLockCommand_1.SmartLockCommand {
constructor() {
super(...arguments);
this.requiresChallenge = false;
}
requestData(config) {
let identifier = new Buffer(2);
identifier.writeUInt16LE(states_1.Command.KEYTURNER_STATES, 0);
return smartLock_1.SmartLock.prepareCommand(states_1.Command.REQUEST_DATA, identifier);
}
handleData(command, payload) {
this._response.data.nukiState = payload.readUInt8(0);
this._response.data.lockState = payload.readUInt8(1);
this._response.data.trigger = payload.readUInt8(2);
let year = payload.readUInt16LE(3);
let month = payload.readUInt8(5) - 1;
let day = payload.readUInt8(6);
let hour = payload.readUInt8(7);
let minute = payload.readUInt8(8);
let second = payload.readUInt8(9);
let timeOffset = payload.readInt16LE(10);
let date = new Date(Date.UTC(year, month, day, hour, minute, second) + timeOffset * 1000);
this._response.data.currentTime = date;
this._response.data.battery_critical = payload.readUInt8(12) != 0;
this._response.data.configUpdateCount = payload.readUInt8(13);
this._response.data.lockNGoTimer = payload.readUInt8(14);
this._response.data.lastLockAction = payload.readUInt8(15);
this._response.data.lastLockActionTrigger = payload.readUInt8(16);
this._response.data.lastLockActionCompletionStatus = payload.readUInt8(17);
this._response.data.doorSensorState = payload.readUInt8(18);
this._complete = true;
}
}
exports.KeyTurnerStatesCommand = KeyTurnerStatesCommand;