node-red-contrib-home-assistant-websocket
Version:
Node-RED integration with Home Assistant through websocket and REST API
2 lines (1 loc) • 1.59 kB
JavaScript
;var l=Object.create;var s=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var I=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var C=(e,t)=>{for(var o in t)s(e,o,{get:t[o],enumerable:!0})},p=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of w(t))!v.call(e,r)&&r!==o&&s(e,r,{get:()=>t[r],enumerable:!(n=S(t,r))||n.enumerable});return e};var i=(e,t,o)=>(o=e!=null?l(I(e)):{},p(t||!e||!e.__esModule?s(o,"default",{value:e,enumerable:!0}):o,e)),P=e=>p(s({},"__esModule",{value:!0}),e);var g={};C(g,{default:()=>h});module.exports=P(g);var u=i(require("../../common/controllers/InputOutputController")),a=i(require("../../common/errors/InputError")),c=i(require("../../common/errors/NoConnectionError")),d=require("../../common/integration/Integration"),m=require("../../common/services/InputService");class h extends u.default{async onInput({done:t,message:o,parsedMessage:n,send:r}){if(!this.integration?.isConnected)throw new c.default;if(!this.integration?.isIntegrationLoaded)throw new a.default("home-assistant.error.integration_not_loaded","home-assistant.status.error");const f=n.response.source===m.DataSource.Config?await this.typedInputService.getValue(n.response.value,n.responseType.value,{message:o}):n.response.value;this.status.setSending(),await this.homeAssistant.websocket.send({type:d.MessageType.SentenceResponse,response:f,response_id:n.responseId.value}),await this.setCustomOutputs(this.node.config.outputProperties,o,{config:this.node.config}),this.status.setSuccess(),r(o),t()}}