UNPKG

lavva.exalushome.portos

Version:

Library implementing communication and abstraction layers for Portos 433MHz API in ExalusHome system

135 lines 5.39 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 { IconType } from "lavva.exalushome/build/js/Services/Devices/IDevice"; import { DeviceTaskExecutionResult } from "lavva.exalushome/build/js/Services/Devices/TaskExecutionResult"; import { DataFrame, Method, Status } from "lavva.exalushome/build/js/DataFrame"; import { Api } from "lavva.exalushome"; import { ExalusConnectionService } from "lavva.exalushome/build/js/Services/ExalusConnectionService"; import { ControllerConfigurationService } from 'lavva.exalushome/build/js/Services/Controller/ControllerConfigurationService'; import { LoggerService } from "lavva.exalushome/build/js/Services/Logging/LoggerService"; export class ManuallyPairedDeviceService { constructor(extInfo) { this._protocolGuid = extInfo.ExtensionGuid; this._protocolExtGuid = extInfo.ExtensionGuid; this._connection = Api.Get(ExalusConnectionService.ServiceName); } get ProtocolExtensionGuid() { return this._protocolExtGuid; } get ProtocolGuid() { return this._protocolGuid; } GetServiceName() { return ManuallyPairedDeviceService.ServiceName; } GetDevicesForManualPairingAsync() { return __awaiter(this, void 0, void 0, function* () { var _a; const result = yield ((_a = this._connection) === null || _a === void 0 ? void 0 : _a.SendAndWaitForResponseAsync(new GetManualPairDevicesRequest(), 8000, false)); if (result == null || result.Data == null || result.Status != Status.OK) return []; return result.Data.map(rawDev => { const device = new ManualDevice(); device.Channels = rawDev.Channels; device.Description = rawDev.Description; device.Model = rawDev.Model; device.ModelGuid = rawDev.ModelGuid; device.ProtocolExtensionGuid = this._protocolExtGuid; device.IconType = rawDev.IconType; return device; }); }); } AddManuallyPairedDeviceAsync(device) { return __awaiter(this, void 0, void 0, function* () { var _a; const result = yield ((_a = this._connection) === null || _a === void 0 ? void 0 : _a.SendAndWaitForResponseAsync(new PairManualDeviceRequest(device.ModelGuid), 8000, false)); Api.Get(LoggerService.ServiceName).Error(ManuallyPairedDeviceService.ServiceName, `EXIT CONFIGURATION MODE WILL BE FIRED! AddManuallyPairedDeviceAsync()`); yield Api.Get(ControllerConfigurationService.ServiceName).ExitConfigurationModeAsync(); if (result == null || result.Status == null || result.Status != Status.OK) return DeviceTaskExecutionResult.Failed; if (result.Data == null) return DeviceTaskExecutionResult.Unknown; return DeviceTaskExecutionResult.Executed; }); } } ManuallyPairedDeviceService.ServiceName = "PortosManualDevicePairingService"; class ManualDeviceResult { constructor() { this.ModelGuid = ""; this.Model = ""; this.Description = ""; this.Channels = 0; this.IconType = IconType.Unknown; } } class ManualDevice { constructor() { this._modelGuid = ""; this._model = ""; this._description = ""; this._channels = 0; this._protocolExtGuid = ""; this._iconType = IconType.Unknown; } get IconType() { return this._iconType; } set IconType(value) { this._iconType = value; } get ModelGuid() { return this._modelGuid; } set ModelGuid(value) { this._modelGuid = value; } get Model() { return this._model; } set Model(value) { this._model = value; } get Description() { return this._description; } set Description(value) { this._description = value; } get Channels() { return this._channels; } set Channels(value) { this._channels = value; } set ProtocolExtensionGuid(value) { this._protocolExtGuid = value; } get ProtocolExtensionGuid() { return this._protocolExtGuid; } } class GetManualPairDevicesRequest extends DataFrame { constructor() { super(); this.Resource = "/portos/devices/manual/pair/available"; this.Method = Method.Get; } } class PairManualDeviceRequest extends DataFrame { constructor(modelGuid) { super(); this.Resource = "/portos/devices/device/create"; this.Method = Method.Put; this.Data = { DeviceModelGuid: modelGuid }; } } //# sourceMappingURL=ManuallyPairedDeviceService.js.map