iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 6.3 kB
JavaScript
export const __rspack_esm_id=18673;export const __rspack_esm_ids=[18673];export const __webpack_modules__={54706(s,t,e){e.d(t,{E:()=>n});e(74423),e(18111),e(13579);var i=e(62826),a=e(22441);const n=s=>{class t extends s{connectedCallback(){super.connectedCallback(),this._checkSubscribed()}disconnectedCallback(){if(super.disconnectedCallback(),this.__unsubs){for(;this.__unsubs.length;){const s=this.__unsubs.pop();s instanceof Promise?s.then(s=>s()):s()}this.__unsubs=void 0}}updated(s){if(super.updated(s),s.has("hass"))this._checkSubscribed();else if(this.hassSubscribeRequiredHostProps)for(const t of s.keys())if(this.hassSubscribeRequiredHostProps.includes(t))return void this._checkSubscribed()}hassSubscribe(){return[]}_checkSubscribed(){void 0===this.__unsubs&&this.isConnected&&void 0!==this.hass&&!this.hassSubscribeRequiredHostProps?.some(s=>void 0===this[s])&&(this.__unsubs=this.hassSubscribe())}}return(0,i.Cg)([(0,a.MZ)({attribute:!1})],t.prototype,"hass",void 0),t}},51687(s,t,e){e.a(s,async function(s,i){try{e.r(t),e.d(t,{HuiHomeSummaryCard:()=>D});e(18111),e(22489),e(61701);var a=e(62826),n=e(35932),o=e(73983),r=e(5124),h=e(22441),c=e(89784),u=e(22786),l=e(78870),m=e(91069),_=e(71727),d=e(4423),g=e(20058),y=(e(76776),e(22573),e(80933),e(32248),e(38114)),f=e(54706),p=e(22064),b=e(97176),v=e(8537),k=e(78030),S=e(51989),C=s([m,g,y,v]);[m,g,y,v]=C.then?(await C)():C;class D extends((0,f.E)(r.WF)){hassSubscribe(){if("energy"!==this._config?.summary)return[];const s=(0,y.tb)(this.hass,{key:"energy_home_dashboard"});return s.setPeriod((0,m.ol)(new Date,n.o,this.hass.locale,this.hass.config),(0,m.ol)(new Date,o.D,this.hass.locale,this.hass.config)),[s.subscribe(s=>{this._energyData=s})]}setConfig(s){this._config=s}getCardSize(){return this._config?.vertical?2:1}getGridOptions(){let s=6,t=1;return this._config?.vertical&&(t++,s=3),{columns:6,rows:t,min_columns:s,min_rows:t}}_handleAction(s){(0,p.$)(this,this.hass,this._config,s.detail.action)}get _hasCardAction(){return(0,b.h)(this._config?.tap_action)||(0,b.h)(this._config?.hold_action)||(0,b.h)(this._config?.double_tap_action)}_computeSummaryState(){if(!this._config||!this.hass)return"";const s=Object.keys(this.hass.states),t=Object.values(this.hass.areas);switch(this._config.summary){case"light":{const t=v.vV.light.map(s=>(0,d.r)(this.hass,s)),e=(0,d.B)(s,t).filter(s=>{const t=this.hass.states[s]?.state;return"on"===t});return e.length?this.hass.localize("ui.card.home-summary.count_lights_on",{count:e.length}):this.hass.localize("ui.card.home-summary.all_lights_off")}case"climate":{const s=t.map(s=>s.temperature_entity_id).filter(Boolean).map(s=>parseFloat(this.hass.states[s]?.state)||NaN).filter(s=>!isNaN(s));if(0===s.length)return"";const e=Math.min(...s),i=Math.max(...s);if(isNaN(e)||isNaN(i))return"";const a=(0,g.ZV)(e,this.hass?.locale,{minimumFractionDigits:1,maximumFractionDigits:1}),n=(0,g.ZV)(i,this.hass?.locale,{minimumFractionDigits:1,maximumFractionDigits:1});return a===n?`${a}°`:`${a} - ${n}°`}case"security":{const t=v.vV.security.map(s=>(0,d.r)(this.hass,s)),e=(0,d.B)(s,t),i=e.filter(s=>"lock"===(0,_.m)(s)),a=e.filter(s=>"alarm_control_panel"===(0,_.m)(s)),n=a.filter(s=>{const t=this.hass.states[s]?.state;return"disarmed"===t});if(!i.length&&!a.length)return"";const o=i.filter(s=>{const t=this.hass.states[s]?.state;return"unlocked"===t||"jammed"===t||"open"===t});return o.length?this.hass.localize("ui.card.home-summary.count_locks_unlocked",{count:o.length}):n.length?this.hass.localize("ui.card.home-summary.count_alarms_disarmed",{count:n.length}):this.hass.localize("ui.card.home-summary.all_secure")}case"media_players":{const t=v.vV.media_players.map(s=>(0,d.r)(this.hass,s)),e=(0,d.B)(s,t).filter(s=>{const t=this.hass.states[s]?.state;return"playing"===t});return e.length?this.hass.localize("ui.card.home-summary.count_media_playing",{count:e.length}):this.hass.localize("ui.card.home-summary.no_media_playing")}case"maintenance":{const t=v.vV.maintenance.map(s=>(0,d.r)(this.hass,s)),e=(0,d.B)(s,t),i=(0,k.filterLowBatteryEntities)(this.hass,e),a=(0,k.filterUnavailableBatteryEntities)(this.hass,e),n=i.length>0?this.hass.localize("ui.card.home-summary.count_maintenance_low_battery_issues",{count:i.length}):void 0,o=a.length>0?this.hass.localize("ui.card.home-summary.count_maintenance_issues_unavailable_battery_entities",{count:a.length}):void 0;return n&&o?`${n}, ${o}`:n||(o||this.hass.localize("ui.card.home-summary.all_maintenance_good"))}case"energy":{if(!this._energyData)return"";const{summedData:s}=(0,y.gv)(this._energyData),{consumption:t}=(0,y.DR)(s,void 0),e=t.total.used_total;return(0,y.n3)(this.hass,e,"kWh")}case"persons":{const t=v.vV.persons.map(s=>(0,d.r)(this.hass,s)),e=(0,d.B)(s,t).filter(s=>{const t=this.hass.states[s]?.state;return"home"===t});return e.length?this.hass.localize("ui.card.home-summary.count_persons_home",{count:e.length}):this.hass.localize("ui.card.home-summary.nobody_home")}}return""}render(){if(!this._config||!this.hass)return r.s6;const s={"--tile-color":(0,l.MP)(v.uN[this._config.summary])},t=this._computeSummaryState(),e=this._computeSecondaryLoading(this._config.summary,this._energyData),i=(0,v.rh)(this.hass.localize,this._config.summary),a=v.It[this._config.summary];return r.qy` <ha-card style="${(0,c.W)(s)}"> <ha-tile-container .vertical="${Boolean(this._config.vertical)}" .interactive="${this._hasCardAction}" .actionHandlerOptions="${{hasHold:(0,b.h)(this._config.hold_action),hasDoubleClick:(0,b.h)(this._config.double_tap_action)}}" ="${this._handleAction}"> <ha-tile-icon slot="icon" .icon="${a}"></ha-tile-icon> <ha-tile-info slot="info" .primary="${i}" .secondary="${t}" .secondaryLoading="${e}"></ha-tile-info> </ha-tile-container> </ha-card> `}constructor(...s){super(...s),this.hassSubscribeRequiredHostProps=["_config"],this._computeSecondaryLoading=(0,u.A)((s,t)=>"energy"===s&&!t)}}D.styles=[S.c,r.AH`:host{--tile-color:var(--state-inactive-color)}`],(0,a.Cg)([(0,h.MZ)({attribute:!1})],D.prototype,"hass",void 0),(0,a.Cg)([(0,h.wk)()],D.prototype,"_config",void 0),(0,a.Cg)([(0,h.wk)()],D.prototype,"_energyData",void 0),D=(0,a.Cg)([(0,h.EM)("hui-home-summary-card")],D),i()}catch(s){i(s)}})},56434(s,t,e){e.d(t,{e:()=>a});var i=e(81977);function a(s,t,e){return(0,i.P)(s,12*t,e)}}};