UNPKG

iobroker.lovelace

Version:

With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI

2 lines 14.4 kB
"use strict";(self.webpackChunkhome_assistant_frontend=self.webpackChunkhome_assistant_frontend||[]).push([["51062"],{17705:function(t,e,i){i.d(e,{Cj:()=>h,F7:()=>n,Hs:()=>$,Kd:()=>k,Kj:()=>g,Nw:()=>y,PA:()=>a,Py:()=>d,Qm:()=>E,Z0:()=>p,_Y:()=>l,_m:()=>r,dL:()=>c,dO:()=>S,hN:()=>_,h_:()=>u,j2:()=>b,q6:()=>f,uR:()=>o});i(19083),i(71695),i(9359),i(52924),i(61006),i(47021);var s=i(47194);let n=function(t){return t[t.NONE=0]="NONE",t[t.ARITHMETIC=1]="ARITHMETIC",t[t.CIRCULAR=2]="CIRCULAR",t}({});const a=99387==i.j?["entity_not_recorded","entity_no_longer_recorded","state_class_removed","units_changed","mean_type_changed","no_state"]:null,r=t=>t.sendMessagePromise({type:"recorder/info"}),o=(t,e)=>t.callWS({type:"recorder/list_statistic_ids",statistic_type:e}),d=(t,e)=>t.callWS({type:"recorder/get_statistics_metadata",statistic_ids:e}),c=(t,e,i,s,n="hour",a,r)=>t.callWS({type:"recorder/statistics_during_period",start_time:e.toISOString(),end_time:null==i?void 0:i.toISOString(),statistic_ids:s,period:n,units:a,types:r}),l=(t,e,i,s)=>t.callWS({type:"recorder/statistic_during_period",statistic_id:e,units:s,fixed_period:i.fixed_period?{start_time:i.fixed_period.start instanceof Date?i.fixed_period.start.toISOString():i.fixed_period.start,end_time:i.fixed_period.end instanceof Date?i.fixed_period.end.toISOString():i.fixed_period.end}:void 0,calendar:i.calendar,rolling_window:i.rolling_window}),u=t=>t.callWS({type:"recorder/validate_statistics"}),h=(t,e,i)=>t.callWS({type:"recorder/update_statistics_metadata",statistic_id:e,unit_of_measurement:i}),_=(t,e)=>t.callWS({type:"recorder/clear_statistics",statistic_ids:e}),g=t=>{let e=null;if(!t)return null;for(const i of t)null!==i.change&&void 0!==i.change&&(null===e?e=i.change:e+=i.change);return e},f=(t,e)=>{let i=null;for(const s of e){if(!(s in t))continue;const e=g(t[s]);null!==e&&(null===i?i=e:i+=e)}return i},y=(t,e)=>t.some((t=>void 0!==t[e]&&null!==t[e])),v=["mean","min","max"],m=["sum","state","change"],p=(t,e)=>!(!v.includes(e)||t.mean_type===n.NONE)||!(!m.includes(e)||!t.has_sum),b=(t,e,i,s,n)=>{const a=new Date(i).toISOString();return t.callWS({type:"recorder/adjust_sum_statistics",statistic_id:e,start_time:a,adjustment:s,adjustment_unit_of_measurement:n})},k=(t,e,i)=>{const n=t.states[e];return n?(0,s.C)(n):(null==i?void 0:i.name)||e},S=(t,e,i)=>{let s;var n;e&&(s=null===(n=t.states[e])||void 0===n?void 0:n.attributes.unit_of_measurement);return void 0===s?null==i?void 0:i.statistics_unit_of_measurement:s},$=t=>t.includes(":"),E=t=>t.callWS({type:"recorder/update_statistics_issues"})},53259:function(t,e,i){i.a(t,(async function(t,s){try{i.d(e,{J:()=>k,MC:()=>p,Zx:()=>$,b4:()=>b,kT:()=>E});i(28457),i(71695),i(92745),i(61893),i(5509),i(9359),i(56475),i(31526),i(70104),i(19423),i(92519),i(42179),i(89256),i(24931),i(88463),i(57449),i(19814),i(88044),i(47021);var n=i(21893),a=i(13809),r=i(38836),o=i(84775),d=i(80951),c=i(13730),l=i(6542),u=i(83204),h=i(23459),_=i(23711),g=i(50602),f=i(46467),y=i(33570),v=t([f,y,g]);function p(t,e){let i=new Date(e);return t>2&&0===i.getHours()&&(i=(0,n.b)(i,1)),i.setMinutes(0,0,0),t>35&&i.setDate(1),t>2&&i.setHours(0),i.getTime()}function b(t){return t>35?"month":t>2?"day":"hour"}function k(t,e,i,s,n,r,o,d){const c=(0,a.j)(e,t),l=void 0!==r&&void 0!==o;return{xAxis:{type:"time",min:t,max:p(c,e)},yAxis:{type:"value",name:n,nameGap:2,nameTextStyle:{align:"left"},axisLabel:{formatter:t=>(0,g.uf)(Math.abs(t),i)},splitLine:{show:!0}},grid:{top:15,bottom:0,left:1,right:1,containLabel:!0},tooltip:{trigger:"axis",formatter:t=>{if(Array.isArray(t)){const e=[],a=[];return t.forEach((t=>{var i;null!==(i=t.seriesId)&&void 0!==i&&i.startsWith("compare-")?a.push(t):e.push(t)})),[e,a].map((t=>S(t,i,s,c,l,n,d))).filter(Boolean).join("<br><br>")}return S([t],i,s,c,l,n,d)}}}}function S(t,e,i,s,n,a,o){var d,c,l,u;if(null===(d=t[0])||void 0===d||!d.value)return"";const h=new Date(null!==(c=null===(l=t[0].value)||void 0===l?void 0:l[2])&&void 0!==c?c:null===(u=t[0].value)||void 0===u?void 0:u[0]);let _;_=s>89?`${(0,f.NC)(h,e,i)}`:s>0?`${(0,f.ud)(h,e,i)}`:`${n?`${(0,f.ud)(h,e,i)}: `:""}${(0,y.mr)(h,e,i)} – ${(0,y.mr)((0,r.T)(h,1),e,i)}`;const v=`<h4 style="text-align: center; margin: 0;">${_}</h4>`;let m=0,p=0,b=0,k=0;const S=t.map((t=>{var i;const s=null===(i=t.value)||void 0===i?void 0:i[1],n=(0,g.uf)(s,e);return"0"!==n&&("bar"===t.componentSubType&&(s>0?(m+=s,p++):(b+=s,k++)),`${t.marker} ${t.seriesName}: ${n} ${a}`)})).filter(Boolean);let $="";return 0!==m&&p>1&&o&&($+=`<br><b>${o(m)}</b>`),0!==b&&k>1&&o&&($+=`<br><b>${o(b)}</b>`),S.length>0?`${v}${S.join("<br>")}${$}`:""}function $(t){Array.from(new Set(t.map((t=>t.data.map((t=>Number(t[0]))))).flat())).sort(((t,e)=>t-e)).forEach(((e,i)=>{const s={},n={};for(let u=t.length-1;u>=0;u--){var a,r,o,d,c;const h=t[u].data[i],_=h&&"object"==typeof h&&"value"in h?h:{value:h},g=null===(a=_.value)||void 0===a?void 0:a[0],f=null!==(r=t[u].stack)&&void 0!==r?r:"";var l;if(void 0!==g)if(Number(g)!==e)null===(l=t[u].data)||void 0===l||l.splice(i,0,{value:[e,0],itemStyle:{borderWidth:0}});else 0===(null===(o=_.value)||void 0===o?void 0:o[1])?t[u].data[i]=Object.assign(Object.assign({},_),{},{itemStyle:Object.assign(Object.assign({},_.itemStyle),{},{borderWidth:0})}):!s[f]&&(null===(d=_.value)||void 0===d?void 0:d[1])>0?(t[u].data[i]=Object.assign(Object.assign({},_),{},{itemStyle:Object.assign(Object.assign({},_.itemStyle),{},{borderRadius:[4,4,0,0]})}),s[f]=!0):!n[f]&&(null===(c=_.value)||void 0===c?void 0:c[1])<0&&(t[u].data[i]=Object.assign(Object.assign({},_),{},{itemStyle:Object.assign(Object.assign({},_.itemStyle),{},{borderRadius:[0,0,4,4]})}),n[f]=!0)}}))}function E(t,e){if(!e)return t=>t;const i=(0,o.o)(t,e);if(0!==i&&t.getTime()===(0,d.e)(t).getTime())return t=>(0,c.B)(t,i);const s=(0,l.d)(t,e);if(0!==s&&t.getTime()===(0,u.N)(t).getTime())return t=>(0,h.z)(t,s);const n=t.getTime()-e.getTime();return t=>(0,_.n)(t,n)}[f,y,g]=v.then?(await v)():v,s()}catch(m){s(m)}}))},56615:function(t,e,i){i.a(t,(async function(t,s){try{i.r(e),i.d(e,{DEFAULT_DAYS_TO_SHOW:()=>S,HuiStatisticsGraphCard:()=>$});var n=i(61701),a=i(72621),r=(i(52247),i(71695),i(92745),i(9359),i(1331),i(31526),i(40251),i(47021),i(13809)),o=i(21893),d=i(57243),c=i(50778),l=i(35359),u=(i(54977),i(1118)),h=i(53259),_=i(17705),g=i(69223),f=i(93331),y=i(29401),v=t([u,h]);[u,h]=v.then?(await v)():v;let m,p,b,k=t=>t;const S=30;let $=(0,n.Z)([(0,c.Mo)("hui-statistics-graph-card")],(function(t,e){class s extends e{constructor(...e){super(...e),t(this)}}return{F:s,d:[{kind:"method",static:!0,key:"getConfigElement",value:async function(){return await Promise.all([i.e("46379"),i.e("24199"),i.e("78943"),i.e("27090"),i.e("87593"),i.e("19551"),i.e("47457")]).then(i.bind(i,23656)),document.createElement("hui-statistics-graph-card-editor")}},{kind:"method",static:!0,key:"getStubConfig",value:function(t,e,i){const s=(0,g.j)(t,1,e,i,["sensor"],(t=>"state_class"in t.attributes));return{type:"statistics-graph",entities:s.length?[s[0]]:[]}}},{kind:"field",decorators:[(0,c.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,c.SB)()],key:"_config",value:void 0},{kind:"field",decorators:[(0,c.SB)()],key:"_statistics",value:void 0},{kind:"field",decorators:[(0,c.SB)()],key:"_metadata",value:void 0},{kind:"field",decorators:[(0,c.SB)()],key:"_unit",value:void 0},{kind:"field",key:"_entities",value(){return[]}},{kind:"field",key:"_names",value(){return{}}},{kind:"field",key:"_interval",value:void 0},{kind:"field",key:"_statTypes",value:void 0},{kind:"field",key:"_energySub",value:void 0},{kind:"field",decorators:[(0,c.SB)()],key:"_energyStart",value:void 0},{kind:"field",decorators:[(0,c.SB)()],key:"_energyEnd",value:void 0},{kind:"method",key:"disconnectedCallback",value:function(){(0,a.Z)(s,"disconnectedCallback",this,3)([]),this._unsubscribeEnergy(),this._interval&&(clearInterval(this._interval),this._interval=void 0)}},{kind:"method",key:"connectedCallback",value:function(){var t;(0,a.Z)(s,"connectedCallback",this,3)([]),this.hasUpdated&&(null!==(t=this._config)&&void 0!==t&&t.energy_date_selection?this._subscribeEnergy():this._setFetchStatisticsTimer())}},{kind:"method",key:"_subscribeEnergy",value:function(){var t;this._energySub||(this._energySub=(0,u.UB)(this.hass,{key:null===(t=this._config)||void 0===t?void 0:t.collection_key}).subscribe((t=>{this._energyStart=t.start,this._energyEnd=t.end,this._getStatistics()})))}},{kind:"method",key:"_unsubscribeEnergy",value:function(){this._energySub&&(this._energySub(),this._energySub=void 0),this._energyStart=void 0,this._energyEnd=void 0}},{kind:"method",key:"getCardSize",value:function(){var t,e,i;return 5+(null!==(t=this._config)&&void 0!==t&&t.title?2:0)+(null!==(e=this._config)&&void 0!==e&&e.hide_legend?0:(null===(i=this._entities)||void 0===i?void 0:i.length)||0)}},{kind:"method",key:"getGridOptions",value:function(){return{columns:12,min_columns:6,min_rows:3}}},{kind:"method",key:"setConfig",value:function(t){if(!t.entities||!Array.isArray(t.entities))throw new Error("Entities need to be an array");if(!t.entities.length)throw new Error("You must include at least one entity");const e=t.entities?(0,y.A)(t.entities,!1):[];this._entities=[],e.forEach((t=>{this._entities.push(t.entity),t.name&&(this._names[t.entity]=t.name)})),"string"==typeof t.stat_types?this._statTypes=[t.stat_types]:t.stat_types?this._statTypes=t.stat_types:this._statTypes=["change","state","sum","min","max","mean"],this._config=t}},{kind:"method",key:"shouldUpdate",value:function(t){return(0,f.Wh)(this,t)||t.size>1||!t.has("hass")}},{kind:"method",key:"willUpdate",value:function(t){if((0,a.Z)(s,"willUpdate",this,3)([t]),!this._config||!t.has("_config"))return;const e=t.get("_config");if(this.hass){if(this._config.energy_date_selection&&!this._energySub)return void this._subscribeEnergy();if(!this._config.energy_date_selection&&this._energySub)return this._unsubscribeEnergy(),void this._setFetchStatisticsTimer();this._config.energy_date_selection&&this._energySub&&t.has("_config")&&(null==e?void 0:e.collection_key)!==this._config.collection_key&&(this._unsubscribeEnergy(),this._subscribeEnergy())}t.has("_config")&&(null==e?void 0:e.entities)!==this._config.entities?this._getStatisticsMetaData(this._entities).then((()=>{this._setFetchStatisticsTimer()})):!t.has("_config")||(null==e?void 0:e.stat_types)===this._config.stat_types&&(null==e?void 0:e.days_to_show)===this._config.days_to_show&&(null==e?void 0:e.period)===this._config.period&&(null==e?void 0:e.unit)===this._config.unit||this._setFetchStatisticsTimer()}},{kind:"method",key:"_setFetchStatisticsTimer",value:function(){var t;this._getStatistics(),clearInterval(this._interval),null!==(t=this._config)&&void 0!==t&&t.energy_date_selection||(this._interval=window.setInterval((()=>this._getStatistics()),this._intervalTimeout))}},{kind:"get",key:"_period",value:function(){var t,e;return null!==(t=null===(e=this._config)||void 0===e?void 0:e.period)&&void 0!==t?t:this._energyStart&&this._energyEnd?(0,h.b4)((0,r.j)(this._energyEnd,this._energyStart)):void 0}},{kind:"method",key:"render",value:function(){var t;if(!this.hass||!this._config)return d.Ld;const e="number"==typeof(null===(t=this._config.grid_options)||void 0===t?void 0:t.rows);return(0,d.dy)(m||(m=k` <ha-card> ${0} <div class="content ${0}"> <statistics-chart .hass="${0}" .isLoadingData="${0}" .statisticsData="${0}" .metadata="${0}" .period="${0}" .chartType="${0}" .statTypes="${0}" .names="${0}" .unit="${0}" .minYAxis="${0}" .maxYAxis="${0}" .startTime="${0}" .endTime="${0}" .fitYData="${0}" .hideLegend="${0}" .logarithmicScale="${0}" .daysToShow="${0}" .height="${0}" .expandLegend="${0}"></statistics-chart> </div> </ha-card> `),this._config.title?(0,d.dy)(p||(p=k`<h1 class="card-header">${0}</h1>`),this._config.title):d.Ld,(0,l.$)({"has-header":!!this._config.title}),this.hass,!this._statistics,this._statistics,this._metadata,this._period,this._config.chart_type||"line",this._statTypes,this._names,this._unit,this._config.min_y_axis,this._config.max_y_axis,this._energyStart,this._energyEnd&&this._energyStart?(0,h.MC)((0,r.j)(this._energyEnd,this._energyStart),this._energyEnd):void 0,this._config.fit_y_data||!1,this._config.hide_legend||!1,this._config.logarithmic_scale||!1,this._energyStart&&this._energyEnd?(0,r.j)(this._energyEnd,this._energyStart):this._config.days_to_show||S,e?"100%":void 0,this._config.expand_legend)}},{kind:"get",key:"_intervalTimeout",value:function(){var t;return 1e3*("5minute"===(null===(t=this._config)||void 0===t?void 0:t.period)?5:60)*60}},{kind:"method",key:"_getStatisticsMetaData",value:async function(t){const e=await(0,_.Py)(this.hass,t),i={};e.forEach((t=>{i[t.statistic_id]=t})),this._metadata=i}},{kind:"method",key:"_getStatistics",value:async function(){var t;const e=null!==(t=this._energyStart)&&void 0!==t?t:(0,o.b)(new Date,24*(this._config.days_to_show||S)+1),i=this._energyEnd;try{let t;if(this._config.unit&&this._metadata){const e=Object.values(this._metadata).find((t=>(0,_.dO)(this.hass,null==t?void 0:t.statistic_id,t)===this._config.unit));e&&(t=e.unit_class,this._unit=this._config.unit)}if(!t&&this._metadata){const e=this._metadata[this._entities[0]];t=null==e?void 0:e.unit_class,this._unit=t&&(0,_.dO)(this.hass,e.statistic_id,e)||void 0}const s=t?{[t]:this._unit}:void 0,n=await(0,_.dL)(this.hass,e,i,this._entities,this._period,s,this._statTypes);this._statistics={},this._entities.forEach((t=>{t in n&&(this._statistics[t]=n[t])}))}catch(s){this._statistics=void 0}}},{kind:"field",static:!0,key:"styles",value(){return(0,d.iv)(b||(b=k`ha-card{display:flex;flex-direction:column;height:100%}.card-header{padding-bottom:0}.content{padding:16px;flex:1}.has-header{padding-top:0}statistics-chart{height:100%}`))}}]}}),d.oi);s()}catch(m){s(m)}}))},13730:function(t,e,i){i.d(e,{B:()=>n});var s=i(23459);function n(t,e,i){return(0,s.z)(t,12*e,i)}},84775:function(t,e,i){i.d(e,{o:()=>r});i(71695),i(47021);var s=i(18492),n=i(2425);function a(t,e,i){const[n,a]=(0,s.d)(null==i?void 0:i.in,t,e);return n.getFullYear()-a.getFullYear()}function r(t,e,i){const[r,o]=(0,s.d)(null==i?void 0:i.in,t,e),d=(0,n.U)(r,o),c=Math.abs(a(r,o));r.setFullYear(1584),o.setFullYear(1584);const l=d*(c-+((0,n.U)(r,o)===-d));return 0===l?0:l}}}]); //# sourceMappingURL=51062.0d3e6808105f8f5f.js.map