node-red-contrib-home-assistant-websocket
Version:
Node-RED integration with Home Assistant through websocket and REST API
2 lines (1 loc) • 1.43 kB
JavaScript
;var v=Object.create;var s=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,I=Object.prototype.hasOwnProperty;var N=(t,e)=>{for(var o in e)s(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of w(e))!I.call(t,i)&&i!==o&&s(t,i,{get:()=>e[i],enumerable:!(n=l(e,i))||n.enumerable});return t};var r=(t,e,o)=>(o=t!=null?v(D(t)):{},d(e||!t||!t.__esModule?s(o,"default",{value:t,enumerable:!0}):o,t)),y=t=>d(s({},"__esModule",{value:!0}),t);var A={};N(A,{default:()=>g});module.exports=y(A);var u=r(require("../../common/controllers/InputOutputController")),h=r(require("../../common/errors/NoConnectionError")),f=r(require("../../common/errors/NoIntegrationError")),m=require("../../common/integration/Integration");class g extends u.default{async onInput({message:e,send:o,done:n}){if(!this.homeAssistant?.isConnected)throw new h.default;if(!this.homeAssistant.isIntegrationLoaded)throw new f.default;const i=this.node.config.capabilities?.reduce((a,p)=>(a[p.name]=p.value,a),{}),c={type:m.MessageType.DeviceAction,action:{...this.node.config.event,...i}};await this.homeAssistant.websocket.send(c),await this.setCustomOutputs(this.node.config.outputProperties,e,{config:this.node.config,data:c}),this.status.setSuccess(`${this.node.config.event?.domain}.${this.node.config.event?.type}`),o(e),n()}}