UNPKG

node-red-contrib-home-assistant-websocket

Version:
55 lines (54 loc) 2.79 kB
"use strict"; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; var _DeviceIntegration_instances, _DeviceIntegration_getTriggerData, _DeviceIntegration_getCapabilitiesValue; Object.defineProperty(exports, "__esModule", { value: true }); const ConfigError_1 = __importDefault(require("../../common/errors/ConfigError")); const BidrectionalIntegration_1 = __importDefault(require("../../common/integration/BidrectionalIntegration")); const Integration_1 = require("../../common/integration/Integration"); const const_1 = require("../../const"); class DeviceIntegration extends BidrectionalIntegration_1.default { constructor() { super(...arguments); _DeviceIntegration_instances.add(this); } getDiscoveryPayload() { return { type: Integration_1.MessageType.DeviceTrigger, node_id: this.node.id, device_trigger: __classPrivateFieldGet(this, _DeviceIntegration_instances, "m", _DeviceIntegration_getTriggerData).call(this), }; } } _DeviceIntegration_instances = new WeakSet(), _DeviceIntegration_getTriggerData = function _DeviceIntegration_getTriggerData() { var _a; if (!this.node.config.event) { throw new ConfigError_1.default('ha-device.error.invalid_device_config'); } const trigger = { ...this.node.config.event }; if ((_a = this.node.config.capabilities) === null || _a === void 0 ? void 0 : _a.length) { this.node.config.capabilities.forEach((cap) => { trigger[cap.name] = __classPrivateFieldGet(this, _DeviceIntegration_instances, "m", _DeviceIntegration_getCapabilitiesValue).call(this, cap); }); } return trigger; }, _DeviceIntegration_getCapabilitiesValue = function _DeviceIntegration_getCapabilitiesValue(cap) { switch (cap.type) { case const_1.DeviceCapabilityType.PositiveTimePeriod: { const unit = cap.unit || const_1.TimeUnit.Seconds; return { [unit]: cap.value }; } case const_1.DeviceCapabilityType.Float: return Number(cap.value); case const_1.DeviceCapabilityType.String: default: return cap.value; } }; exports.default = DeviceIntegration;