UNPKG

lavva.exalushome

Version:

Library implementing communication and abstraction layers for ExalusHome system

77 lines 2.96 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { Api } from "../Api"; import { DataFrame, Method, Status } from "../DataFrame"; import { ExalusConnectionService } from "./ExalusConnectionService"; export class HomeKitService { constructor() { this._connection = Api.Get(ExalusConnectionService.ServiceName); } GetServiceName() { return HomeKitService.ServiceName; } isHomeKitPairingStatusResponse(value) { return (typeof value === "object" && value !== null && "Paired" in value && typeof value.Paired === "boolean"); } GetPairingStatusAsync() { return __awaiter(this, void 0, void 0, function* () { const req = new GetPairingStatusFrame(); const result = yield this._connection.SendAndWaitForResponseAsync(req, 5000, false); if (result.Status !== Status.OK) { return result.Status; } const response = new HomeKitPairingStatusResponse(); if (this.isHomeKitPairingStatusResponse(result.Data)) { response.Paired = result.Data.Paired; } return response; }); } IsPairedAsync() { return __awaiter(this, void 0, void 0, function* () { const res = yield this.GetPairingStatusAsync(); if (this.isHomeKitPairingStatusResponse(res)) { return res.Paired; } return res; }); } ResetPairingAsync() { return __awaiter(this, void 0, void 0, function* () { const req = new ResetPairingFrame(); const result = yield this._connection.SendAndWaitForResponseAsync(req, 5000, false); return result.Status; }); } } HomeKitService.ServiceName = "HomeKitService"; export class HomeKitPairingStatusResponse { constructor() { this.Paired = false; } } class GetPairingStatusFrame extends DataFrame { constructor() { super(); this.Resource = "/homekit/pairing/status"; this.Method = Method.Get; } } class ResetPairingFrame extends DataFrame { constructor() { super(); this.Resource = "/homekit/pairing/reset"; this.Method = Method.Post; } } //# sourceMappingURL=HomeKitService.js.map