UNPKG

nubli

Version:
54 lines (53 loc) 2.87 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 RequestConfigCommand extends SmartLockCommand_1.SmartLockCommand { constructor() { super(...arguments); this.requiresChallenge = true; } requestData(config) { return smartLock_1.SmartLock.prepareCommand(states_1.Command.REQUEST_CONFIG, this.challenge); } handleData(command, payload) { this._response.data.nukiId = payload.readUInt32LE(0); this._response.data.name = payload.slice(4, 36).toString('utf8').replace(/\0/g, ''); this._response.data.latitude = payload.readFloatLE(36); this._response.data.longitude = payload.readFloatLE(40); this._response.data.autoUnlatch = payload.readUInt8(44) == 1; this._response.data.pairingEnabled = payload.readUInt8(45) == 1; this._response.data.buttonEnabled = payload.readUInt8(46) == 1; this._response.data.ledEnabled = payload.readUInt8(47) == 1; this._response.data.ledBrightness = payload.readUInt8(48); let year = payload.readUInt16LE(49); let month = payload.readUInt8(51) - 1; let day = payload.readUInt8(52); let hour = payload.readUInt8(53); let minute = payload.readUInt8(54); let second = payload.readUInt8(55); let timeOffset = payload.readInt16LE(56); let date = new Date(Date.UTC(year, month, day, hour, minute, second) + timeOffset * 1000); this._response.data.currentTime = date; this._response.data.dstMode = payload.readUInt8(58); this._response.data.hasFob = payload.readUInt8(59) == 1; this._response.data.fobAction1 = payload.readUInt8(60); this._response.data.fobAction2 = payload.readUInt8(61); this._response.data.fobAction3 = payload.readUInt8(62); this._response.data.singleLock = payload.readUInt8(63) == 1; this._response.data.advertisingMode = payload.readUInt8(64); this._response.data.hasKeyPad = payload.readUInt8(65) == 1; let majorVersion = payload.readUInt8(66); let minorVersion = payload.readUInt8(67); let patchVersion = payload.readUInt8(68); this._response.data.firmwareVersion = majorVersion + "." + minorVersion + "." + patchVersion; let hardwareMajorVersion = payload.readUInt8(69); let hardwareMinorVersion = payload.readUInt8(70); this._response.data.hardwareRevision = hardwareMajorVersion + "." + hardwareMinorVersion; this._response.data.homeKitStatus = payload.readUInt8(71); this._response.data.timeZoneId = payload.readUInt16LE(72); this._complete = true; } } exports.RequestConfigCommand = RequestConfigCommand;