node-red-contrib-home-assistant-websocket
Version:
Node-RED integration with Home Assistant through websocket and REST API
2 lines (1 loc) • 2.12 kB
JavaScript
;var w=Object.create;var s=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,U=Object.prototype.hasOwnProperty;var b=(t,e)=>{for(var o in e)s(t,o,{get:e[o],enumerable:!0})},g=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of O(e))!U.call(t,r)&&r!==o&&s(t,r,{get:()=>e[r],enumerable:!(i=B(e,r))||i.enumerable});return t};var n=(t,e,o)=>(o=t!=null?w(R(t)):{},g(e||!t||!t.__esModule?s(o,"default",{value:t,enumerable:!0}):o,t)),D=t=>g(s({},"__esModule",{value:!0}),t);var _={};b(_,{default:()=>I});module.exports=D(_);var u=require("../../common/controllers/helpers"),S=n(require("../../common/errors/ConfigError")),y=n(require("../../common/events/ClientEvents")),h=n(require("../../common/services/ComparatorService")),N=n(require("../../common/status/EventStatus")),a=require("../../common/status/Status"),T=n(require("../../common/TransformState")),C=require("../../globals"),v=require("../../helpers/migrate"),p=require("../../helpers/node"),x=require("../../homeAssistant"),P=require("./events"),E=n(require("./PollStateController"));function I(t){if(C.RED.nodes.createNode(this,t),this.config=(0,v.migrate)(t),!this.config?.entityId){const c=new S.default("poll-state.error.entity_id_required");throw this.status({fill:a.StatusColor.Red,shape:a.StatusShape.Ring,text:c.statusMessage}),c}const e=(0,p.getServerConfigNode)(this.config.server),o=(0,x.getHomeAssistant)(e),i=(0,p.getExposeAsConfigNode)(this.config.exposeAsEntityConfig),r=new y.default({node:this,emitter:o.eventBus}),f=new N.default({clientEvents:r,config:e.config,exposeAsEntityConfigNode:i,node:this});r.setStatus(f);const m=(0,u.createControllerDependencies)(this,o),d=new T.default(e.config.ha_boolean),A=new h.default({nodeRedContextService:m.nodeRedContextService,homeAssistant:o,jsonataService:m.jsonataService,transformState:d}),l=new E.default({comparatorService:A,node:this,status:f,transformState:d,...m});l.setExposeAsConfigNode(i),(0,P.startListeners)({clientEvents:r,config:this.config,controller:l,homeAssistant:o,node:this,status:f})}