UNPKG

nubli

Version:
40 lines (39 loc) 1.91 kB
"use strict"; 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;