iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 22.2 kB
JavaScript
export const __rspack_esm_id=46239;export const __rspack_esm_ids=[46239];export const __webpack_modules__={96986(t,e,a){a.d(e,{LR:()=>o,m9:()=>n});const r={10:"mdi:battery-10",20:"mdi:battery-20",30:"mdi:battery-30",40:"mdi:battery-40",50:"mdi:battery-50",60:"mdi:battery-60",70:"mdi:battery-70",80:"mdi:battery-80",90:"mdi:battery-90",100:"mdi:battery"},i={10:"M16,18H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",20:"M16,17H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",30:"M16,15H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",40:"M16,14H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",50:"M16,13H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",60:"M16,12H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",70:"M16,10H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",80:"M16,9H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",90:"M16,8H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",100:"M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z"},s={10:"mdi:battery-charging-10",20:"mdi:battery-charging-20",30:"mdi:battery-charging-30",40:"mdi:battery-charging-40",50:"mdi:battery-charging-50",60:"mdi:battery-charging-60",70:"mdi:battery-charging-70",80:"mdi:battery-charging-80",90:"mdi:battery-charging-90",100:"mdi:battery-charging"},o=(t,e)=>{const a=Number(t);if(isNaN(a))return"off"===t?"mdi:battery":"on"===t?"mdi:battery-alert":"mdi:battery-unknown";const i=10*Math.round(a/10);return e&&a>=10?s[i]:e?"mdi:battery-charging-outline":a<=5?"mdi:battery-alert-variant-outline":r[i]},n=t=>{const e=Number(t);if(isNaN(e))return"M15.07,12.25L14.17,13.17C13.63,13.71 13.25,14.18 13.09,15H11.05C11.16,14.1 11.56,13.28 12.17,12.67L13.41,11.41C13.78,11.05 14,10.55 14,10C14,8.89 13.1,8 12,8A2,2 0 0,0 10,10H8A4,4 0 0,1 12,6A4,4 0 0,1 16,10C16,10.88 15.64,11.68 15.07,12.25M13,19H11V17H13M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.66C6,21.4 6.6,22 7.33,22H16.67C17.4,22 18,21.4 18,20.66V5.33C18,4.59 17.4,4 16.67,4Z";if(e<=5)return"M14 20H6V6H14M14.67 4H13V2H7V4H5.33C4.6 4 4 4.6 4 5.33V20.67C4 21.4 4.6 22 5.33 22H14.67C15.4 22 16 21.4 16 20.67V5.33C16 4.6 15.4 4 14.67 4M21 7H19V13H21V8M21 15H19V17H21V15Z";const a=10*Math.round(e/10);return i[a]}},54706(t,e,a){a.d(e,{E:()=>s});a(74423),a(18111),a(13579);var r=a(62826),i=a(22441);const s=t=>{class e extends t{connectedCallback(){super.connectedCallback(),this._checkSubscribed()}disconnectedCallback(){if(super.disconnectedCallback(),this.__unsubs){for(;this.__unsubs.length;){const t=this.__unsubs.pop();t instanceof Promise?t.then(t=>t()):t()}this.__unsubs=void 0}}updated(t){if(super.updated(t),t.has("hass"))this._checkSubscribed();else if(this.hassSubscribeRequiredHostProps)for(const e of t.keys())if(this.hassSubscribeRequiredHostProps.includes(e))return void this._checkSubscribed()}hassSubscribe(){return[]}_checkSubscribed(){void 0===this.__unsubs&&this.isConnected&&void 0!==this.hass&&!this.hassSubscribeRequiredHostProps?.some(t=>void 0===this[t])&&(this.__unsubs=this.hassSubscribe())}}return(0,r.Cg)([(0,i.MZ)({attribute:!1})],e.prototype,"hass",void 0),e}},30961(t,e,a){a.a(t,async function(t,r){try{a.r(e);a(18111),a(22489),a(61701),a(18237),a(13579),a(14603),a(47566),a(98721);var i=a(62826),s=a(5124),o=a(22441),n=a(6412),c=a(96986),l=a(18350),d=(a(76776),a(67094),a(38114)),h=a(23528),g=a(54706),p=a(784),y=a(20058),v=t([l,y,d]);[l,y,d]=v.then?(await v)():v;const u="M11,4H13V16L18.5,10.5L19.92,11.92L12,19.84L4.08,11.92L5.5,10.5L11,16V4Z",b="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z",m="M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z",f="M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z",H="M16 20H8V6H16M16.67 4H15V2H9V4H7.33C6.6 4 6 4.6 6 5.33V20.67C6 21.4 6.6 22 7.33 22H16.67C17.41 22 18 21.41 18 20.67V5.33C18 4.6 17.4 4 16.67 4M15 16H9V19H15V16M15 7H9V10H15V7M15 11.5H9V14.5H15V11.5Z",_="M17.66 11.2C17.43 10.9 17.15 10.64 16.89 10.38C16.22 9.78 15.46 9.35 14.82 8.72C13.33 7.26 13 4.85 13.95 3C13 3.23 12.17 3.75 11.46 4.32C8.87 6.4 7.85 10.07 9.07 13.22C9.11 13.32 9.15 13.42 9.15 13.55C9.15 13.77 9 13.97 8.8 14.05C8.57 14.15 8.33 14.09 8.14 13.93C8.08 13.88 8.04 13.83 8 13.76C6.87 12.33 6.69 10.28 7.45 8.64C5.78 10 4.87 12.3 5 14.47C5.06 14.97 5.12 15.47 5.29 15.97C5.43 16.57 5.7 17.17 6 17.7C7.08 19.43 8.95 20.67 10.96 20.92C13.1 21.19 15.39 20.8 17.03 19.32C18.86 17.66 19.5 15 18.56 12.72L18.43 12.46C18.22 12 17.66 11.2 17.66 11.2M14.5 17.5C14.22 17.74 13.76 18 13.4 18.1C12.28 18.5 11.16 17.94 10.5 17.28C11.69 17 12.4 16.12 12.61 15.23C12.78 14.43 12.46 13.77 12.33 13C12.21 12.26 12.23 11.63 12.5 10.94C12.69 11.32 12.89 11.7 13.13 12C13.9 13 15.11 13.44 15.37 14.8C15.41 14.94 15.43 15.08 15.43 15.23C15.46 16.05 15.1 16.95 14.5 17.5H14.5Z",C="M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z",M="M17,8C8,10 5.9,16.17 3.82,21.34L5.71,22L6.66,19.7C7.14,19.87 7.64,20 8,20C19,20 22,3 22,3C21,5 14,5.25 9,6.25C4,7.25 2,11.5 2,13.5C2,15.5 3.75,17.25 3.75,17.25C7,8 17,8 17,8Z",$="M11.45,2V5.55L15,3.77L11.45,2M10.45,8L8,10.46L11.75,11.71L10.45,8M2,11.45L3.77,15L5.55,11.45H2M10,2H2V10C2.57,10.17 3.17,10.25 3.77,10.25C7.35,10.26 10.26,7.35 10.27,3.75C10.26,3.16 10.17,2.57 10,2M17,22V16H14L19,7V13H22L17,22Z",k="M8.28,5.45L6.5,4.55L7.76,2H16.23L17.5,4.55L15.72,5.44L15,4H9L8.28,5.45M18.62,8H14.09L13.3,5H10.7L9.91,8H5.38L4.1,10.55L5.89,11.44L6.62,10H17.38L18.1,11.45L19.89,10.56L18.62,8M17.77,22H15.7L15.46,21.1L12,15.9L8.53,21.1L8.3,22H6.23L9.12,11H11.19L10.83,12.35L12,14.1L13.16,12.35L12.81,11H14.88L17.77,22M11.4,15L10.5,13.65L9.32,18.13L11.4,15M14.68,18.12L13.5,13.64L12.6,15L14.68,18.12Z",V="M12,20A6,6 0 0,1 6,14C6,10 12,3.25 12,3.25C12,3.25 18,10 18,14A6,6 0 0,1 12,20Z",x=238.76104,w=t=>!t.end||t.end.getTime()>=Date.now();class L extends((0,g.E)(s.WF)){static async getConfigElement(){return await a.e(79062).then(a.bind(a,54197)),document.createElement("hui-energy-graph-card-editor")}static getStubConfig(t,e,a){return{type:"energy-distribution"}}setConfig(t){t.collection_key&&(0,d.s8)(t.collection_key),this._config=t}hassSubscribe(){return[(0,d.tb)(this.hass,{key:this._config?.collection_key}).subscribe(t=>{this._data=t})]}get _energyDashboardHref(){const t=new URLSearchParams({historyBack:"1"}),e=window.location.pathname;return e&&t.append("backPath",e),`/energy?${t.toString()}`}getCardSize(){return 3}shouldUpdate(t){if((0,p.xP)(this,t)||t.size>1||!t.has("hass"))return!0;const e=t.get("hass").states;if(this._data?.co2SignalEntity&&this.hass.states[this._data.co2SignalEntity]!==e[this._data.co2SignalEntity])return!0;if(this._data&&w(this._data)){const t=(0,d.E$)(this._data.prefs).battery;if(t?.some(t=>t.stat_soc&&this.hass.states[t.stat_soc]!==e[t.stat_soc]))return!0}return!1}willUpdate(){!this.hasUpdated&&matchMedia("(prefers-reduced-motion)").matches&&(this._animate=!1)}render(){if(!this._config)return s.s6;if(!this._data)return s.qy`${this.hass.localize("ui.panel.lovelace.cards.energy.loading")}`;const t=this._data.prefs,e=(0,d.E$)(t),a=!(!e.grid?.[0]||!e.grid[0].stat_energy_from&&!e.grid[0].stat_energy_to),r=void 0!==e.solar,i=void 0!==e.battery,o=void 0!==e.gas,l=void 0!==e.water,g=e.grid?.some(t=>!!t.stat_energy_to)??!1,{summedData:p,compareSummedData:v}=(0,d.gv)(this._data),{consumption:L,compareConsumption:W}=(0,d.DR)(p,void 0),A=p.total.from_grid??0;let q=null;l&&(q=(0,h.gF)(this._data.stats,e.water.map(t=>t.stat_energy_from))??0);let Z=null;o&&(Z=(0,h.gF)(this._data.stats,e.gas.map(t=>t.stat_energy_from))??0);let z=null;r&&(z=p.total.solar??0);let S=null,J=null,E=H,P=null;if(i&&(S=p.total.to_battery??0,J=p.total.from_battery??0,w(this._data))){const t=e.battery.map(t=>t.stat_soc?Number(this.hass.states[t.stat_soc]?.state):NaN).filter(t=>Number.isFinite(t));t.length&&(P=t.reduce((t,e)=>t+e,0)/t.length,E=(0,c.m9)(P))}let N=null;g&&(N=p.total.to_grid??0);let R=null;r&&(R=L.total.used_solar);let D=null,U=null;i&&a&&(U=L.total.battery_to_grid,D=L.total.grid_to_battery);let j=null,F=null;r&&a&&(F=L.total.solar_to_grid),r&&i&&(j=L.total.solar_to_battery);let B=null;i&&(B=Math.max(L.total.used_battery,0));const T=a?Math.max(L.total.used_grid,0):0,O=Math.max(0,L.total.used_total);let Y,G,I,K,Q;r&&(Y=x*(R/O)),B&&(G=x*(B/O));let X="https://app.electricitymaps.com";if(a&&this._data.co2SignalEntity&&this._data.fossilEnergyConsumption){const t=Object.values(this._data.fossilEnergyConsumption).reduce((t,e)=>t+e,0),e=this.hass.states[this._data.co2SignalEntity];if(e?.attributes.country_code&&(X+=`/zone/${e.attributes.country_code}`),null!==t){let e;I=A-t,e=T!==A?t*(T/A):t,Q=x*(e/O),K=x-(Y||0)-(G||0)-Q}}const tt=T+(R||0)+(F||0)+(j||0)+(B||0)+(D||0)+(U||0),et=Math.max(I||0,z||0,N||0,A||0,O,S||0,J||0),at=(0,d.n3)(this.hass,et,"kWh").split(" ").pop();return s.qy` <ha-card .header="${this._config.title}"> <div class="card-content"> ${void 0!==I||r||o||l?s.qy`<div class="row"> ${void 0===I?s.qy`<div class="spacer"></div>`:s.qy`<div class="circle-container low-carbon"> <span class="label">${this.hass.localize("ui.panel.lovelace.cards.energy.energy_distribution.low_carbon")}</span> <a class="circle" href="${X}" target="_blank" rel="noopener noreferrer"> <ha-svg-icon .path="${M}"></ha-svg-icon> ${(0,d.n3)(this.hass,I,"kWh",at)} </a> <svg width="80" height="30"> <line x1="40" y1="0" x2="40" y2="30"></line> </svg> </div>`} ${r?s.qy`<div class="circle-container solar"> <span class="label">${this.hass.localize("ui.panel.lovelace.cards.energy.energy_distribution.solar")}</span> <div class="circle"> <ha-svg-icon .path="${$}"></ha-svg-icon> ${(0,d.n3)(this.hass,z,"kWh",at)} </div> </div>`:o||l?s.qy`<div class="spacer"></div>`:""} ${o?s.qy`<div class="circle-container gas"> <span class="label">${this.hass.localize("ui.panel.lovelace.cards.energy.energy_distribution.gas")}</span> <div class="circle"> <ha-svg-icon .path="${_}"></ha-svg-icon> ${(0,d.n3)(this.hass,Z,this._data.gasUnit)} </div> <svg width="80" height="30"> <path d="M40 0 v30" id="gas"/> ${Z&&this._animate?s.JW`<circle r="1" class="gas" vector-effect="non-scaling-stroke"> <animateMotion dur="2s" repeatCount="indefinite" calcMode="linear"> <mpath xlink:href="#gas"/> </animateMotion> </circle>`:""} </svg> </div>`:l?s.qy`<div class="circle-container water"> <span class="label">${this.hass.localize("ui.panel.lovelace.cards.energy.energy_distribution.water")}</span> <div class="circle"> <ha-svg-icon .path="${V}"></ha-svg-icon> ${(0,d.n3)(this.hass,q,this._data.waterUnit)} </div> <svg width="80" height="30"> <path d="M40 0 v30" id="water"/> ${q&&this._animate?s.JW`<circle r="1" class="water" vector-effect="non-scaling-stroke"> <animateMotion dur="2s" repeatCount="indefinite" calcMode="linear"> <mpath xlink:href="#water"/> </animateMotion> </circle>`:""} </svg> </div>`:s.qy`<div class="spacer"></div>`} </div>`:""} <div class="row"> ${a?s.qy`<div class="circle-container grid"> <div class="circle"> <ha-svg-icon .path="${k}"></ha-svg-icon> ${null!==N?s.qy`<span class="return"> <ha-svg-icon class="small" .path="${b}"></ha-svg-icon>${(0,d.n3)(this.hass,N,"kWh",at)} </span>`:""} <span class="consumption"> ${g?s.qy`<ha-svg-icon class="small" .path="${m}"></ha-svg-icon>`:""}${(0,d.n3)(this.hass,A,"kWh",at)} </span> </div> <span class="label">${this.hass.localize("ui.panel.lovelace.cards.energy.energy_distribution.grid")}</span> </div> `:s.qy`<div class="grid-spacer"></div>`} <div class="circle-container home"> <div class="circle ${(0,n.H)({border:void 0===Y&&void 0===K})}"> <ha-svg-icon .path="${C}"></ha-svg-icon> ${(0,d.n3)(this.hass,O,"kWh",at)} ${void 0!==Y||void 0!==K?s.qy`<svg> ${void 0!==Y?s.JW`<circle class="solar" cx="40" cy="40" r="38" stroke-dasharray="${Y} ${x-Y}" shape-rendering="geometricPrecision" stroke-dashoffset="-${x-Y}"/>`:""} ${G?s.JW`<circle class="battery" cx="40" cy="40" r="38" stroke-dasharray="${G} ${x-G}" stroke-dashoffset="-${x-G-(Y||0)}" shape-rendering="geometricPrecision"/>`:""} ${K?s.JW`<circle class="low-carbon" cx="40" cy="40" r="38" stroke-dasharray="${K} ${x-K}" stroke-dashoffset="-${x-K-(G||0)-(Y||0)}" shape-rendering="geometricPrecision"/>`:""} ${a?s.JW`<circle class="grid" cx="40" cy="40" r="38" stroke-dasharray="${Q??x-Y-(G||0)} ${void 0!==Q?x-Q:Y+(G||0)}" stroke-dashoffset="0" shape-rendering="geometricPrecision"/>`:s.s6} </svg>`:""} </div> ${o&&l?"":s.qy`<span class="label">${this.hass.config.location_name}</span>`} </div> </div> ${i||o&&l?s.qy`<div class="row"> <div class="spacer"></div> ${i?s.qy` <div class="circle-container battery"> <div class="circle"> <div class="battery-soc"> <ha-svg-icon .path="${E}"></ha-svg-icon> ${null!==P?s.qy`<span>${(0,y.ZV)(P,this.hass.locale,{maximumFractionDigits:0})} %</span>`:s.s6} </div> <span class="battery-in"> <ha-svg-icon class="small" .path="${u}"></ha-svg-icon>${(0,d.n3)(this.hass,S,"kWh",at)} </span> <span class="battery-out"> <ha-svg-icon class="small" .path="${f}"></ha-svg-icon>${(0,d.n3)(this.hass,J,"kWh",at)} </span> </div> <span class="label">${this.hass.localize("ui.panel.lovelace.cards.energy.energy_distribution.battery")}</span> </div>`:s.qy`<div class="spacer"></div>`} ${o&&l?s.qy`<div class="circle-container water bottom"> <svg width="80" height="30"> <path d="M40 30 v-30" id="water"/> ${q&&this._animate?s.JW`<circle r="1" class="water" vector-effect="non-scaling-stroke"> <animateMotion dur="2s" repeatCount="indefinite" calcMode="linear"> <mpath xlink:href="#water"/> </animateMotion> </circle>`:""} </svg> <div class="circle"> <ha-svg-icon .path="${V}"></ha-svg-icon> ${(0,d.n3)(this.hass,q,this._data.waterUnit)} </div> <span class="label">${this.hass.localize("ui.panel.lovelace.cards.energy.energy_distribution.water")}</span> </div>`:s.qy`<div class="spacer"></div>`} </div>`:""} <div class="lines ${(0,n.H)({high:i||o&&l})}"> <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice"> ${g&&r?s.JW`<path id="return" class="return" d="M${i?45:47},0 v15 c0,${i?"35 -10,30 -30,30":"40 -10,35 -30,35"} h-20" vector-effect="non-scaling-stroke"></path> `:""} ${r?s.JW`<path id="solar" class="solar" d="M${i?55:53},0 v15 c0,${i?"35 10,30 30,30":"40 10,35 30,35"} h20" vector-effect="non-scaling-stroke"></path>`:""} ${i?s.JW`<path id="battery-house" class="battery-house" d="M55,100 v-15 c0,-35 10,-30 30,-30 h20" vector-effect="non-scaling-stroke"></path> ${a?s.JW`<path id="battery-grid" class="${(0,n.H)({"battery-from-grid":Boolean(D),"battery-to-grid":Boolean(U)})}" d="M45,100 v-15 c0,-35 -10,-30 -30,-30 h-20" vector-effect="non-scaling-stroke"></path>`:s.s6} `:""} ${i&&r?s.JW`<path id="battery-solar" class="battery-solar" d="M50,0 V100" vector-effect="non-scaling-stroke"></path>`:""} ${a?s.JW`<path class="grid" id="grid" d="M0,${i?50:r?56:53} H100" vector-effect="non-scaling-stroke"></path>`:s.s6} ${F&&this._animate?s.JW`<circle r="1" class="return" vector-effect="non-scaling-stroke"> <animateMotion dur="${6-F/tt*6}s" repeatCount="indefinite" calcMode="linear"> <mpath xlink:href="#return"/> </animateMotion> </circle>`:""} ${R&&this._animate?s.JW`<circle r="1" class="solar" vector-effect="non-scaling-stroke"> <animateMotion dur="${6-R/tt*5}s" repeatCount="indefinite" calcMode="linear"> <mpath xlink:href="#solar"/> </animateMotion> </circle>`:""} ${T&&this._animate?s.JW`<circle r="1" class="grid" vector-effect="non-scaling-stroke"> <animateMotion dur="${6-T/tt*5}s" repeatCount="indefinite" calcMode="linear"> <mpath xlink:href="#grid"/> </animateMotion> </circle>`:""} ${j&&this._animate?s.JW`<circle r="1" class="battery-solar" vector-effect="non-scaling-stroke"> <animateMotion dur="${6-j/tt*5}s" repeatCount="indefinite" calcMode="linear"> <mpath xlink:href="#battery-solar"/> </animateMotion> </circle>`:""} ${B&&this._animate?s.JW`<circle r="1" class="battery-house" vector-effect="non-scaling-stroke"> <animateMotion dur="${6-B/tt*5}s" repeatCount="indefinite" calcMode="linear"> <mpath xlink:href="#battery-house"/> </animateMotion> </circle>`:""} ${D&&this._animate?s.JW`<circle r="1" class="battery-from-grid" vector-effect="non-scaling-stroke"> <animateMotion dur="${6-D/tt*5}s" repeatCount="indefinite" keyPoints="1;0" keyTimes="0;1" calcMode="linear"> <mpath xlink:href="#battery-grid"/> </animateMotion> </circle>`:""} ${U&&this._animate?s.JW`<circle r="1" class="battery-to-grid" vector-effect="non-scaling-stroke"> <animateMotion dur="${6-U/tt*5}s" repeatCount="indefinite" calcMode="linear"> <mpath xlink:href="#battery-grid"/> </animateMotion> </circle>`:""} </svg> </div> </div> ${this._config.link_dashboard&&this.hass.panels.energy?s.qy` <div class="card-actions"> <ha-button appearance="plain" size="small" href="${this._energyDashboardHref}"> ${this.hass.localize("ui.panel.lovelace.cards.energy.energy_distribution.go_to_energy_dashboard")} </ha-button> </div> `:""} </ha-card> `}constructor(...t){super(...t),this._animate=!0,this.hassSubscribeRequiredHostProps=["_config"]}}L.styles=s.AH`:host{--mdc-icon-size:24px}ha-card{min-width:210px}.card-content{position:relative;direction:ltr}.lines{position:absolute;bottom:0;left:0;width:100%;height:146px;display:flex;justify-content:center;padding:0 16px 16px;box-sizing:border-box}.lines.high{bottom:100px;height:156px}.lines svg{width:calc(100% - 160px);height:100%;max-width:340px}.row{display:flex;justify-content:space-between;max-width:500px;margin:0 auto}.circle-container{display:flex;flex-direction:column;align-items:center}.circle-container.low-carbon{margin-right:4px}.circle-container.solar{margin:0 4px;height:130px}.circle-container.gas{margin-left:4px;height:130px}.circle-container.water{margin-left:4px;height:130px}.circle-container.water.bottom{position:relative;top:-20px;margin-bottom:-20px}.circle-container.battery{height:110px;justify-content:flex-end}.battery-soc{display:inline-flex;align-items:center;justify-content:center;font-size:var(--ha-font-size-s);line-height:1.2}.spacer{width:84px}.grid-spacer{width:84px;height:100px}.circle{width:80px;height:80px;border-radius:var(--ha-border-radius-circle);box-sizing:border-box;border:2px solid;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-size:var(--ha-font-size-s);line-height:12px;position:relative;text-decoration:none;color:var(--primary-text-color)}ha-svg-icon{padding-bottom:2px}ha-svg-icon.small{--mdc-icon-size:12px}.label{color:var(--secondary-text-color);font-size:var(--ha-font-size-s);opacity:1;height:20px;overflow:hidden;text-overflow:ellipsis;max-width:80px;white-space:nowrap}line,path{stroke:var(--primary-text-color);stroke-width:1;fill:none}.circle svg{position:absolute;fill:none;stroke-width:4px;width:100%;height:100%;top:0;left:0}.gas circle,.gas path{stroke:var(--energy-gas-color)}circle.gas{stroke-width:4;fill:var(--energy-gas-color)}.gas .circle{border-color:var(--energy-gas-color)}.water circle,.water path{stroke:var(--energy-water-color)}circle.water{stroke-width:4;fill:var(--energy-water-color)}.water .circle{border-color:var(--energy-water-color)}.low-carbon line{stroke:var(--energy-non-fossil-color)}.low-carbon .circle{border-color:var(--energy-non-fossil-color)}.low-carbon ha-svg-icon{color:var(--energy-non-fossil-color)}circle.low-carbon{stroke:var(--energy-non-fossil-color);fill:var(--energy-non-fossil-color)}.solar .circle{border-color:var(--energy-solar-color)}circle.solar,path.solar{stroke:var(--energy-solar-color)}circle.solar{stroke-width:4;fill:var(--energy-solar-color)}.battery .circle{border-color:var(--energy-battery-out-color)}circle.battery,path.battery{stroke:var(--energy-battery-out-color)}circle.battery-house,path.battery-house{stroke:var(--energy-battery-out-color)}circle.battery-house{stroke-width:4;fill:var(--energy-battery-out-color)}circle.battery-solar,path.battery-solar{stroke:var(--energy-battery-in-color)}circle.battery-solar{stroke-width:4;fill:var(--energy-battery-in-color)}.battery-in{color:var(--energy-battery-in-color)}.battery-out{color:var(--energy-battery-out-color)}path.battery-from-grid{stroke:var(--energy-grid-consumption-color)}path.battery-to-grid{stroke:var(--energy-grid-return-color)}circle.battery-to-grid,circle.return,path.return{stroke:var(--energy-grid-return-color)}circle.battery-to-grid,circle.return{stroke-width:4;fill:var(--energy-grid-return-color)}.return{color:var(--energy-grid-return-color)}.grid .circle{border-color:var(--energy-grid-consumption-color)}.consumption{color:var(--energy-grid-consumption-color)}circle.battery-from-grid,circle.grid,path.grid{stroke:var(--energy-grid-consumption-color)}circle.battery-from-grid,circle.grid{stroke-width:4;fill:var(--energy-grid-consumption-color)}.home .circle{border-width:0;border-color:var(--primary-color)}.home .circle.border{border-width:2px}.circle svg circle{fill:none} not (prefers-reduced-motion){.circle svg circle{animation:rotate-in .6s ease-in;transition:stroke-dashoffset .4s,stroke-dasharray .4s} rotate-in{from{stroke-dashoffset:238.76104;stroke-dasharray:238.76104}}}.card-actions a{text-decoration:none}`,(0,i.Cg)([(0,o.MZ)({attribute:!1})],L.prototype,"hass",void 0),(0,i.Cg)([(0,o.wk)()],L.prototype,"_config",void 0),(0,i.Cg)([(0,o.wk)()],L.prototype,"_data",void 0),(0,i.Cg)([(0,o.wk)()],L.prototype,"_animate",void 0),L=(0,i.Cg)([(0,o.EM)("hui-energy-distribution-card")],L),r()}catch(t){r(t)}})},56434(t,e,a){a.d(e,{e:()=>i});var r=a(81977);function i(t,e,a){return(0,r.P)(t,12*e,a)}}};