node-red-contrib-home-assistant-websocket
Version:
Node-RED integration with Home Assistant through websocket and REST API
93 lines (92 loc) • 5.08 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const IssueService_1 = __importDefault(require("./common/services/IssueService"));
const utils_1 = require("./common/services/IssueService/utils");
const StorageService_1 = __importDefault(require("./common/services/StorageService"));
const const_1 = require("./const");
const globals_1 = require("./globals");
const exposed_settings_1 = require("./helpers/exposed-settings");
const action_1 = __importDefault(require("./nodes/action"));
const api_1 = __importDefault(require("./nodes/api"));
const binary_sensor_1 = __importDefault(require("./nodes/binary-sensor"));
const button_1 = __importDefault(require("./nodes/button"));
const config_server_1 = __importDefault(require("./nodes/config-server"));
const current_state_1 = __importDefault(require("./nodes/current-state"));
const device_1 = __importDefault(require("./nodes/device"));
const device_config_1 = __importDefault(require("./nodes/device-config"));
const entity_1 = __importDefault(require("./nodes/entity"));
const entity_config_1 = __importDefault(require("./nodes/entity-config"));
const events_all_1 = __importDefault(require("./nodes/events-all"));
const events_calendar_1 = __importDefault(require("./nodes/events-calendar"));
const events_state_1 = __importDefault(require("./nodes/events-state"));
const fire_event_1 = __importDefault(require("./nodes/fire-event"));
const get_entities_1 = __importDefault(require("./nodes/get-entities"));
const get_history_1 = __importDefault(require("./nodes/get-history"));
const number_1 = __importDefault(require("./nodes/number"));
const poll_state_1 = __importDefault(require("./nodes/poll-state"));
const render_template_1 = __importDefault(require("./nodes/render-template"));
const select_1 = __importDefault(require("./nodes/select"));
const sensor_1 = __importDefault(require("./nodes/sensor"));
const sentence_1 = __importDefault(require("./nodes/sentence"));
const switch_1 = __importDefault(require("./nodes/switch"));
const tag_1 = __importDefault(require("./nodes/tag"));
const text_1 = __importDefault(require("./nodes/text"));
const time_1 = __importDefault(require("./nodes/time"));
const time_entity_1 = __importDefault(require("./nodes/time-entity"));
const trigger_state_1 = __importDefault(require("./nodes/trigger-state"));
const update_config_1 = __importDefault(require("./nodes/update-config"));
const wait_until_1 = __importDefault(require("./nodes/wait-until"));
const webhook_1 = __importDefault(require("./nodes/webhook"));
const zone_1 = __importDefault(require("./nodes/zone"));
const routes_1 = require("./routes");
const version_1 = __importDefault(require("./version"));
const nodes = {
[const_1.NodeType.API]: api_1.default,
[const_1.NodeType.Action]: action_1.default,
[const_1.NodeType.CurrentState]: current_state_1.default,
[const_1.NodeType.Device]: device_1.default,
[const_1.NodeType.Entity]: entity_1.default,
[const_1.NodeType.EventsAll]: events_all_1.default,
[const_1.NodeType.EventsCalendar]: events_calendar_1.default,
[const_1.NodeType.EventsState]: events_state_1.default,
[const_1.NodeType.FireEvent]: fire_event_1.default,
[const_1.NodeType.GetEntities]: get_entities_1.default,
[const_1.NodeType.GetHistory]: get_history_1.default,
[const_1.NodeType.PollState]: poll_state_1.default,
[const_1.NodeType.RenderTemplate]: render_template_1.default,
[const_1.NodeType.Sentence]: sentence_1.default,
[const_1.NodeType.TriggerState]: trigger_state_1.default,
[const_1.NodeType.Tag]: tag_1.default,
[const_1.NodeType.Time]: time_1.default,
[const_1.NodeType.WaitUntil]: wait_until_1.default,
[const_1.NodeType.Webhook]: webhook_1.default,
[const_1.NodeType.Zone]: zone_1.default,
// Config nodes
[const_1.NodeType.Server]: config_server_1.default,
[const_1.NodeType.DeviceConfig]: device_config_1.default,
[const_1.NodeType.EntityConfig]: entity_config_1.default,
// Entities
[const_1.NodeType.BinarySensor]: binary_sensor_1.default,
[const_1.NodeType.Button]: button_1.default,
[const_1.NodeType.Number]: number_1.default,
[const_1.NodeType.Select]: select_1.default,
[const_1.NodeType.Sensor]: sensor_1.default,
[const_1.NodeType.Switch]: switch_1.default,
[const_1.NodeType.Text]: text_1.default,
[const_1.NodeType.TimeEntity]: time_entity_1.default,
[const_1.NodeType.UpdateConfig]: update_config_1.default,
};
exports.default = async (RED) => {
(0, globals_1.setRED)(RED);
await StorageService_1.default.init();
IssueService_1.default.init(utils_1.publishIssueUpdate);
(0, routes_1.createRoutes)();
let type;
for (type in nodes) {
RED.nodes.registerType(type, nodes[type], (0, exposed_settings_1.getExposedSettings)(type));
}
RED.log.info(`node-red-contrib-home-assistant-websocket v${version_1.default} nodes initialized`);
};