lavva.exalushome.extalife
Version:
Library implementing communication and abstraction layers for ExtaLife API in ExalusHome system
2 lines • 10.4 kB
JavaScript
"use strict";(self.webpackChunklavva_exalushome_extalife=self.webpackChunklavva_exalushome_extalife||[]).push([[975],{7171:(e,t,r)=>{r.d(t,{v:()=>n});class n{constructor(){this.DeviceGuid=""}}},6532:(e,t,r)=>{r.d(t,{W:()=>a,_:()=>n});class n{constructor(e){this.DeviceGuid="",this.DeviceGuid=e}}class a{constructor(e,t){this.DeviceGuid="",this.Channel=0,this.DeviceGuid=e,this.Channel=t}}},8975:(e,t,r)=>{r.r(t),r.d(t,{Rcm21ConfigService:()=>E});var n,a=r(6440),s=r(9897),i=r(624),o=r(8308),c=r(7171);class u extends c.v{constructor(){super(...arguments),this.Channel=n.Unknow,this.Threshold=0,this.Hysteresis=!1,this.IsHysteresisOptionAvailable=!1,this.IsOffsetOptionAvailable=!1}}class l extends c.v{constructor(){super(...arguments),this.Interval=0}}class d extends c.v{constructor(){super(...arguments),this.Channel=n.Unknow,this.Offset=0}}!function(e){e[e.Unknow=0]="Unknow",e[e.TemperatureChannel=1]="TemperatureChannel",e[e.HuminidityChannel=2]="HuminidityChannel",e[e.PressureChannel=3]="PressureChannel",e[e.BrightnessChannel=4]="BrightnessChannel"}(n||(n={}));var v=r(5046),h=r(6895),f=r(6532),p=function(e,t,r,n){return new(r||(r=Promise))((function(a,s){function i(e){try{c(n.next(e))}catch(e){s(e)}}function o(e){try{c(n.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,o)}c((n=n.apply(e,t||[])).next())}))};class m{constructor(){this._connection=null,this._connection=v.V.Get(h.c.ServiceName)}GetDetectionThresholdDataAsync(e,t){var r;return p(this,void 0,void 0,(function*(){const n=yield null===(r=this._connection)||void 0===r?void 0:r.SendAndWaitForResponseAsync(new b(e.Guid,t.valueOf()),35e3,!1);if(null==n)return new i.tp(o.v.UnknownError,"Failed to retrieve parameters - unknow error.");switch(n.Status){case a.qb.OK:if(null!=n.Data)return n.Data.Threshold=n.Data.Threshold/1e3,n.Data;break;case a.qb.ResourceIsNotAvailable:return new i.tp(o.v.ResourceIsNotAvailable,"Failed to retrieve parameters - cannot communicate with the device.")}return new i.tp(o.v.OtherError,`Failed to retrieve parameters, response error: ${n.Status} data: ${n.Data}`)}))}SetDetectionThresholdAsync(e,t,r){var i,o,c,l,d;return p(this,void 0,void 0,(function*(){try{switch(t){case n.PressureChannel:if(r<.3||r>30||r*Math.pow(10,1)%1!=0)return a.qb.WrongData;break;case n.HuminidityChannel:if(r<1||r>99||!Number.isInteger(r))return a.qb.WrongData;break;case n.PressureChannel:case n.BrightnessChannel:if(r<1||r>100||!Number.isInteger(r))return a.qb.WrongData;break;default:return a.qb.WrongData}const d=yield this.GetCurrentDetectionThresholdConfigAsync(e.Guid,t.valueOf()),v=new u;if(null===d)return null===(i=s.Q.Log)||void 0===i||i.Error(E.ServiceName,"Failed to change device parameters - cannot read current configuration of device"),a.qb.ResourceIsNotAvailable;v.DeviceGuid=e.Guid,v.Channel=t,v.Hysteresis=d.Hysteresis,v.Threshold=1e3*r;const h=yield null===(o=this._connection)||void 0===o?void 0:o.SendAndWaitForResponseAsync(new S(v),35e3,!1);return null==h||null==h.Status?(null===(c=s.Q.Log)||void 0===c||c.Error(E.ServiceName,"Failed to change device parameters - unknow error."),a.qb.FatalError):(h.Status!==a.qb.OK&&(null===(l=s.Q.Log)||void 0===l||l.Error(E.ServiceName,`Failed to change device parameters, response status: ${h.Status}`)),h.Status)}catch(e){return null===(d=s.Q.Log)||void 0===d||d.Error(E.ServiceName,`Cannot change device parameters. ${e}`),a.qb.FatalError}}))}GetFramesIntervalAsync(e,t){var r;return p(this,void 0,void 0,(function*(){const t=yield null===(r=this._connection)||void 0===r?void 0:r.SendAndWaitForResponseAsync(new w(e.Guid),35e3,!1);if(null==t)return new i.tp(o.v.UnknownError,"Failed to retrieve parameters - unknow error.");switch(t.Status){case a.qb.OK:if(null!=t.Data)return t.Data;break;case a.qb.ResourceIsNotAvailable:return new i.tp(o.v.ResourceIsNotAvailable,"Failed to retrieve parameters - cannot communicate with the device.")}return new i.tp(o.v.OtherError,`Failed to retrieve parameters, response error: ${t.Status} data: ${t.Data}`)}))}SetFramesIntervalAsync(e,t,r){var n,i,o,c;return p(this,void 0,void 0,(function*(){try{if(r<1||r>6480)return a.qb.WrongData;const t=new l;t.DeviceGuid=e.Guid,t.Interval=r;const c=yield null===(n=this._connection)||void 0===n?void 0:n.SendAndWaitForResponseAsync(new y(t),35e3,!1);return null==c||null==c.Status?(null===(i=s.Q.Log)||void 0===i||i.Error(E.ServiceName,"Failed to change device parameters - unknow error."),a.qb.FatalError):(c.Status!==a.qb.OK&&(null===(o=s.Q.Log)||void 0===o||o.Error(E.ServiceName,`Failed to change device parameters, response status: ${c.Status}`)),c.Status)}catch(e){return null===(c=s.Q.Log)||void 0===c||c.Error(E.ServiceName,`Cannot change device parameters. ${e}`),a.qb.FatalError}}))}GetCurrentDetectionThresholdConfigAsync(e,t){var r;return p(this,void 0,void 0,(function*(){const n=yield null===(r=this._connection)||void 0===r?void 0:r.SendAndWaitForResponseAsync(new b(e,t),35e3,!1);if(null==n)return null;switch(n.Status){case a.qb.OK:if(null!=n.Data)return n.Data;break;case a.qb.ResourceIsNotAvailable:return null}throw new Error("Failed to read current configuration of device!")}))}}class w extends a.NE{constructor(e){super(),this.Resource="/extalife/device/parameters/multisensor/interval",this.Method=a.n$.Get,this.Data=new f._(e)}}class b extends a.NE{constructor(e,t){super(),this.Resource="/extalife/device/parameters/multisensor/detectionthreshold",this.Method=a.n$.Get,this.Data=new f.W(e,t)}}class S extends a.NE{constructor(e){super(),this.Resource="/extalife/device/parameters/multisensor/detectionthreshold",this.Method=a.n$.Put,this.Data=e}}class y extends a.NE{constructor(e){super(),this.Resource="/extalife/device/parameters/multisensor/interval",this.Method=a.n$.Put,this.Data=e}}var g=function(e,t,r,n){return new(r||(r=Promise))((function(a,s){function i(e){try{c(n.next(e))}catch(e){s(e)}}function o(e){try{c(n.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,o)}c((n=n.apply(e,t||[])).next())}))};class D extends m{GetHysteresisAsync(e,t){var r;return g(this,void 0,void 0,(function*(){const n=yield null===(r=this._connection)||void 0===r?void 0:r.SendAndWaitForResponseAsync(new b(e.Guid,t.valueOf()),35e3,!1);if(null==n)return new i.tp(o.v.UnknownError,"Failed to retrieve parameters - unknow error.");switch(n.Status){case a.qb.OK:if(null!=n.Data)return n.Data.Hysteresis;break;case a.qb.ResourceIsNotAvailable:return new i.tp(o.v.ResourceIsNotAvailable,"Failed to retrieve parameters - cannot communicate with the device.")}return new i.tp(o.v.OtherError,`Failed to retrieve parameters, response error: ${n.Status} data: ${n.Data}`)}))}SetHysteresisAsync(e,t,r){var i,o,c,l,d;return g(this,void 0,void 0,(function*(){try{if(t==n.Unknow)return a.qb.WrongData;const d=yield this.GetCurrentDetectionThresholdConfigAsync(e.Guid,t);let v=new u;if(null===d)return null===(i=s.Q.Log)||void 0===i||i.Error(E.ServiceName,"Failed to change device parameters - cannot read current configuration of device"),a.qb.ResourceIsNotAvailable;v.DeviceGuid=e.Guid,v.Channel=t,v.Hysteresis=r,v.Threshold=d.Threshold;const h=yield null===(o=this._connection)||void 0===o?void 0:o.SendAndWaitForResponseAsync(new S(v),35e3,!1);return null==h||null==h.Status?(null===(c=s.Q.Log)||void 0===c||c.Error(E.ServiceName,"Failed to change device parameters - unknow error."),a.qb.FatalError):(h.Status!==a.qb.OK&&(null===(l=s.Q.Log)||void 0===l||l.Error(E.ServiceName,`Failed to change device parameters, response status: ${h.Status}`)),h.Status)}catch(e){return null===(d=s.Q.Log)||void 0===d||d.Error(E.ServiceName,`Cannot change device parameters. ${e}`),a.qb.FatalError}}))}}var F=function(e,t,r,n){return new(r||(r=Promise))((function(a,s){function i(e){try{c(n.next(e))}catch(e){s(e)}}function o(e){try{c(n.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,o)}c((n=n.apply(e,t||[])).next())}))};class A extends D{GetChannelOffsetAsync(e,t){var r;return F(this,void 0,void 0,(function*(){if(t!=n.TemperatureChannel)return new i.tp(o.v.InvalidChannelNumber,"Failed to retrieve parameters - function not available on selected channel");const s=yield null===(r=this._connection)||void 0===r?void 0:r.SendAndWaitForResponseAsync(new C(e.Guid,t.valueOf()),35e3,!1);if(null==s)return new i.tp(o.v.UnknownError,"Failed to retrieve parameters - unknow error.");switch(s.Status){case a.qb.OK:if(null!=s.Data)return s.Data.Offset=s.Data.Offset/10,s.Data;break;case a.qb.ResourceIsNotAvailable:return new i.tp(o.v.ResourceIsNotAvailable,"Failed to retrieve parameters - cannot communicate with the device.")}return new i.tp(o.v.OtherError,`Failed to retrieve parameters, response error: ${s.Status} data: ${s.Data}`)}))}SetChannelOffsetAsync(e,t,r){var i,o,c,u;return F(this,void 0,void 0,(function*(){try{if(t!==n.TemperatureChannel)return a.qb.WrongData;if(r<-5||r>5||r*Math.pow(10,1)%1!=0)return a.qb.WrongData;const u=new d;u.DeviceGuid=e.Guid,u.Channel=t,u.Offset=10*r;const l=yield null===(i=this._connection)||void 0===i?void 0:i.SendAndWaitForResponseAsync(new N(u),35e3,!1);return null==l||null==l.Status?(null===(o=s.Q.Log)||void 0===o||o.Error(E.ServiceName,"Failed to change device parameters - unknow error."),a.qb.FatalError):(l.Status!==a.qb.OK&&(null===(c=s.Q.Log)||void 0===c||c.Error(E.ServiceName,`Failed to change device parameters, response status: ${l.Status}`)),l.Status)}catch(e){return null===(u=s.Q.Log)||void 0===u||u.Error(E.ServiceName,`Cannot change device parameters. ${e}`),a.qb.FatalError}}))}}class C extends a.NE{constructor(e,t){super(),this.Resource="/extalife/device/parameters/multisensor/channeloffset",this.Method=a.n$.Get,this.Data=new f.W(e,t)}}class N extends a.NE{constructor(e){super(),this.Resource="/extalife/device/parameters/multisensor/channeloffset",this.Method=a.n$.Put,this.Data=e}}class E extends m{constructor(){super(...arguments),this._services={Rcm21v1_5_0_30:new D,Rcm21v1_6_0_34:new A}}GetServiceName(){return E.ServiceName}VersionedConfigurationOptions(){return{"^1.5.0.30":this._services.Rcm21v1_5_0_30,"^1.6.0.34":this._services.Rcm21v1_6_0_34}}}E.ServiceName="Rcm21ConfigService"}}]);
//# sourceMappingURL=975-exalushome-extalife.bundle.js.map