node-red-contrib-home-assistant-websocket
Version:
Node-RED integration with Home Assistant through websocket and REST API
2 lines (1 loc) • 1.57 kB
JavaScript
;var m=Object.create;var r=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var C=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var P=(o,t)=>{for(var n in t)r(o,n,{get:t[n],enumerable:!0})},p=(o,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of l(t))!h.call(o,e)&&e!==n&&r(o,e,{get:()=>t[e],enumerable:!(i=c(t,e))||i.enumerable});return o};var s=(o,t,n)=>(n=o!=null?m(C(o)):{},p(t||!o||!o.__esModule?r(n,"default",{value:o,enumerable:!0}):n,o)),U=o=>p(r({},"__esModule",{value:!0}),o);var I={};P(I,{default:()=>g});module.exports=U(I);var d=s(require("../../common/controllers/InputOutputController")),u=s(require("../../common/errors/InputError")),f=s(require("../../common/errors/NoConnectionError"));class g extends d.default{#t;constructor(t){super(t),this.#t=t.homeAssistant}async onInput({parsedMessage:t,message:n,send:i,done:e}){if(!this.integration?.isConnected)throw new f.default;if(!this.integration?.isIntegrationLoaded)throw new u.default("home-assistant.error.integration_not_loaded","home-assistant.error.error");const a={entity_picture:t.entityPicture.value,name:t.name.value,icon:t.icon.value,options:t.options.value};this.status.setSending(),await this.integration?.sendUpdateConfig(this.integration.getEntityConfigNode().config.server,t.id.value??this.node.id,a),this.integration.saveHaConfigToContext(a),this.status.setSuccess("home-assistant.status.updated"),await this.setCustomOutputs(this.node.config.outputProperties,n,{config:this.node.config}),i(n),e()}}