lavva.exalushome.extalife
Version:
Library implementing communication and abstraction layers for ExtaLife API in ExalusHome system
2 lines • 7.5 kB
JavaScript
"use strict";(self.webpackChunklavva_exalushome_extalife=self.webpackChunklavva_exalushome_extalife||[]).push([[316],{7316:(e,t,n)=>{n.r(t),n.d(t,{SsrConfigService:()=>R});var r,a=n(5933);class o extends a.r{}!function(e){e[e.Automatic=0]="Automatic",e[e.Manual=1]="Manual"}(r||(r={}));var s=n(3826),i=n(6823),c=n(4756),u=n(7581),l=n(2734),d=n(6094),h=n(5443),f=n(8069),v=n(4824),y=function(e,t,n,r){return new(n||(n=Promise))((function(a,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function i(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,i)}c((r=r.apply(e,t||[])).next())}))};class C extends a.r{constructor(){super()}RunAutomaticCalibrationAsync(e,t){return y(this,void 0,void 0,(function*(){var n;try{if(!e.Channels.any((e=>e.Number===t)))return new i.ZR(a.L.InvalidChannelNumber,`Cannot calibrate blind - invalid channel number: ${t}`);const o=new u.Tz;if(o.Action=u.VP.Stop,(yield e.Channels.first((e=>e.Number==t)).ExecuteTaskAsync(o))!==l.T.Executed)return new i.ZR(a.L.DeviceNotResponding,"Cannot calibrate blind - device is not responding.");const d=yield null===(n=this._connection)||void 0===n?void 0:n.SendAndWaitForResponseAsync(new S(e.Guid),8e3,!1);if(null==d||null==d.Status)return new i.ZR(a.L.OtherError,"Cannot calibrate blind - calibration request failed for an unknown reason.");switch(d.Status){case c.nW.OK:var r=new s.f3;return r.CalibrationStatus=s.Py.AutoLernInProgress,r.Channel=t,r.StateReliability=s.QI.Confident,r;case c.nW.Error:return new i.ZR(a.L.CalibrationsIsCurrentlyRunning,"Cannot calibrate blind - calibration is currently running.");default:return new i.ZR(a.L.OtherError,`Cannot calibrate blind - calibration request failed - request status code: ${d.Status}`)}}catch(e){return new i.ZR(a.L.OtherError,`Cannot calibrate blind - fatal error: ${e}`)}}))}GetCorrectionStepAsync(e,t,n){const r=Object.create(null,{GetCorrectionStepAsync:{get:()=>super.GetCorrectionStepAsync}});return y(this,void 0,void 0,(function*(){try{const o=yield h.j.Get(v.OA.ServiceName).GetSoftwareRuntimeInfoAsync(),[s,c]=o.SoftwareVersion.split(".").map((e=>parseInt(e)));if(s>=7&&c>=45){const o=yield this.GetWorkLogAsyncRaw(e,t);return o instanceof i.ZR?o:o.ManualAutoConfigFlag&&"UPPER"===n?new i.ZR(a.L.NotAvailableInManualMode,"Cannot get correction step - not available in manual mode."):r.GetCorrectionStepAsync.call(this,e,t,n)}return r.GetCorrectionStepAsync.call(this,e,t,n)}catch(e){return new i.ZR(a.L.OtherError,`Cannot get correction step - fatal error: ${e}`)}}))}SetCorrectionStepAsync(e,t,n,r){const a=Object.create(null,{SetCorrectionStepAsync:{get:()=>super.SetCorrectionStepAsync}});return y(this,void 0,void 0,(function*(){try{const o=yield h.j.Get(v.OA.ServiceName).GetSoftwareRuntimeInfoAsync(),[s,u]=o.SoftwareVersion.split(".").map((e=>parseInt(e)));if(s>=7&&u>=45){const o=yield this.GetWorkLogAsyncRaw(e,t);return o instanceof i.ZR?(this._logger.Error(`Cannot set correction step - cannot get work log - ${o.Type} - ${o.Data}`),c.nW.Error):o.ManualAutoConfigFlag&&"UPPER"===r?(this._logger.Warning("Cannot set correction step - not available in manual mode."),c.nW.WrongData):yield a.SetCorrectionStepAsync.call(this,e,t,n,r)}return yield a.SetCorrectionStepAsync.call(this,e,t,n,r)}catch(e){return this._logger.Error(`Cannot set correction step - fatal error: ${e}`),c.nW.FatalError}}))}GetHeadSensorStatusAsync(e,t){return y(this,void 0,void 0,(function*(){var n;try{if(!e.Channels.any((e=>e.Number===t)))return new i.ZR(a.L.InvalidChannelNumber,`Cannot get head sensor status - invalid channel number: ${t}`);const r=yield null===(n=this._connection)||void 0===n?void 0:n.SendAndWaitForResponseAsync(new g(e.Guid,t),8e3,!1);return null==r||null==r.Status?new i.ZR(a.L.OtherError,"Cannot get head sensor status - request failed for an unknown reason."):r.Status!=c.nW.OK?new i.ZR(a.L.OtherError,`Cannot get head sensor status - request failed - request status code: ${r.Status}`):null==r.Data?new i.ZR(a.L.NoData,"Cannot get head sensor status - request failed - no data received."):r.Data}catch(e){return new i.ZR(a.L.OtherError,`Cannot get head sensor status - fatal error: ${e}`)}}))}SwitchHeadSensorStatusAsync(e,t,n){return y(this,void 0,void 0,(function*(){var r;try{if(!t.Channels.any((e=>e.Number===n)))return c.nW.WrongData;const a=yield null===(r=this._connection)||void 0===r?void 0:r.SendAndWaitForResponseAsync(new w(t.Guid,n,e),8e3,!1);return null==a||null==a.Status?c.nW.FatalError:a.Status}catch(e){return c.nW.FatalError}}))}ChangeMovementDirectionAsync(e,t){return y(this,void 0,void 0,(function*(){var n;try{if(!e.Channels.any((e=>e.Number===t)))return c.nW.WrongData;const r=yield null===(n=this._connection)||void 0===n?void 0:n.SendAndWaitForResponseAsync(new p(e.Guid,t),8e3,!1);return null==r||null==r.Status?c.nW.FatalError:r.Status}catch(e){return c.nW.FatalError}}))}GetWorkingModeAsync(e,t){return y(this,void 0,void 0,(function*(){const n=yield h.j.Get(v.OA.ServiceName).GetSoftwareRuntimeInfoAsync(),[a,o]=n.SoftwareVersion.split(".").map((e=>parseInt(e)));if(a>=7&&o>=45){const n=yield this.GetWorkLogAsyncRaw(e,t);return n instanceof i.ZR?n:n.ManualAutoConfigFlag?r.Manual:r.Automatic}return r.Automatic}))}GetWorkLogAsync(e,t){return y(this,void 0,void 0,(function*(){try{const n=yield h.j.Get(d.g.ServiceName).GetUserAsync();return null==n||n.AccessLevel<f.hx.Support?new i.ZR(a.L.InsufficientPermissions,"Cannot get head sensor status - current user has insufficient permissions."):yield this.GetWorkLogAsyncRaw(e,t)}catch(e){return new i.ZR(a.L.OtherError,`Cannot get work log - fatal error: ${e}`)}}))}GetWorkLogAsyncRaw(e,t){return y(this,void 0,void 0,(function*(){var n;try{if(!e.Channels.any((e=>e.Number===t)))return new i.ZR(a.L.InvalidChannelNumber,`Cannot get head sensor status - invalid channel number: ${t}`);const r=yield null===(n=this._connection)||void 0===n?void 0:n.SendAndWaitForResponseAsync(new A(e.Guid,t),8e3,!1);return null==r||null==r.Status?new i.ZR(a.L.OtherError,"Cannot get work log - request failed for an unknown reason."):r.Status!=c.nW.OK?new i.ZR(a.L.OtherError,`Cannot get work log - request failed - request status code: ${r.Status}`):null==r.Data?new i.ZR(a.L.NoData,"Cannot get work log - request failed - no data received."):r.Data}catch(e){return new i.ZR(a.L.OtherError,`Cannot get work log - fatal error: ${e}`)}}))}}class S extends c.CP{constructor(e){super(),this.Resource="/extafree2/blind/calibration/auto",this.Method=c.IT.Get,this.Data=e}}class g extends c.CP{constructor(e,t){super(),this.Resource="/extalife/device/blind/head/sensor/status",this.Method=c.IT.Get,this.Data={DeviceGuid:e,Channel:t}}}class w extends c.CP{constructor(e,t,n){super(),this.Resource="/extalife/device/blind/head/sensor/switch",this.Method=c.IT.Put,this.Data={DeviceGuid:e,Channel:t,Enable:n}}}class p extends c.CP{constructor(e,t){super(),this.Resource="/extalife/device/blind/direction/reverse",this.Method=c.IT.Post,this.Data={DeviceGuid:e,Channel:t}}}class A extends c.CP{constructor(e,t){super(),this.Resource="/extalife/device/blind/work/log",this.Method=c.IT.Get,this.Data={DeviceGuid:e,Channel:t}}}class R extends o{constructor(){super(),this._services={Ssr_4_0_0_0:new C}}GetServiceName(){return R.ServiceName}VersionedConfigurationOptions(){return{"^4.0.0.0":this._services.Ssr_4_0_0_0}}}R.ServiceName="SsrConfigService"}}]);
//# sourceMappingURL=316-exalushome-extalife.bundle.js.map