iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
2 lines • 10.5 kB
JavaScript
export const __webpack_ids__=["72743"];export const __webpack_modules__={97674:function(e,t,o){o.a(e,(async function(e,n){try{o.d(t,{AH:()=>w,Ai:()=>v,Al:()=>A,vA:()=>b});var r=o(86319),s=o(3938),a=o(6542),c=o(23459),i=o(2621),l=o(7591),_=o(96500),f=o(13809),g=o(32424),u=o(14276),y=o(23711),m=o(35895),p=o(20382),d=e([m]);m=(d.then?(await d)():d)[0];const h=(e,t,o,n)=>{const r=o((0,m.zW)(e,t),n);return r instanceof Date?(0,m.Nm)(r,t):r},w=(e,t,o,n,r)=>o.time_zone===p.c_.server?h(e,n.time_zone,t,r):t(e,r),b=(e,t,o,n,r)=>o.time_zone===p.c_.server?h(e,n.time_zone,t,r):t(e,r),v=(e,t,o,n,r)=>b(e,o,n,r,n.time_zone===p.c_.server?(0,m.zW)(t,r.time_zone):t),A=(e,t,o,n,m)=>{let p,d;if(b(e,r.b,n,m)&&b(t,s.h,n,m)){const r=(v(t,e,a.d,n,m)+1)*(o?1:-1);p=w(e,c.z,n,m,r),d=w(w(t,c.z,n,m,r),i.V,n,m)}else if(b(e,(e=>(0,l.b)(e).getMilliseconds()===e.getMilliseconds()),n,m)&&b(t,(e=>(0,_.i)(e).getMilliseconds()===e.getMilliseconds()),n,m)){const r=(v(t,e,f.j,n,m)+1)*(o?1:-1);p=w(e,g.E,n,m,r),d=w(t,g.E,n,m,r)}else{const r=(v(t,e,u._,n,m)+1)*(o?1:-1);p=w(e,y.n,n,m,r),d=w(t,y.n,n,m,r)}return{start:p,end:d}};n()}catch(e){n(e)}}))},48719:function(e,t,o){o.a(e,(async function(e,n){try{o.d(t,{p:()=>v});var r=o(7591),s=o(96500),a=o(32424),c=o(29558),i=o(30921),l=o(83204),_=o(2621),f=o(21127),g=o(11735),u=o(80951),y=o(23723),m=o(40228),p=o(62725),d=o(21893),h=o(97674),w=o(19631),b=e([h]);h=(b.then?(await b)():b)[0];const v=(e,t)=>{const o=new Date,n=(0,w.Bt)(e.locale);switch(t){case"today":return[(0,h.AH)(o,r.b,e.locale,e.config,{weekStartsOn:n}),(0,h.AH)(o,s.i,e.locale,e.config,{weekStartsOn:n})];case"yesterday":return[(0,h.AH)((0,a.E)(o,-1),r.b,e.locale,e.config,{weekStartsOn:n}),(0,h.AH)((0,a.E)(o,-1),s.i,e.locale,e.config,{weekStartsOn:n})];case"this_week":return[(0,h.AH)(o,c.z,e.locale,e.config,{weekStartsOn:n}),(0,h.AH)(o,i.v,e.locale,e.config,{weekStartsOn:n})];case"this_month":return[(0,h.AH)(o,l.N,e.locale,e.config),(0,h.AH)(o,_.V,e.locale,e.config)];case"this_quarter":return[(0,h.AH)(o,f.x,e.locale,e.config),(0,h.AH)(o,g.x,e.locale,e.config)];case"this_year":return[(0,h.AH)(o,u.e,e.locale,e.config),(0,h.AH)(o,y.w,e.locale,e.config)];case"now-7d":return[(0,h.AH)(o,m.k,e.locale,e.config,7),(0,h.AH)(o,m.k,e.locale,e.config,1)];case"now-30d":return[(0,h.AH)(o,m.k,e.locale,e.config,30),(0,h.AH)(o,m.k,e.locale,e.config,1)];case"now-12m":return[(0,h.AH)((0,p.W)(o,12),l.N,e.locale,e.config),(0,h.AH)((0,p.W)(o,1),_.V,e.locale,e.config)];case"now-1h":return[(0,h.AH)(o,d.b,e.locale,e.config,1),(0,h.AH)(o,d.b,e.locale,e.config,0)];case"now-12h":return[(0,h.AH)(o,d.b,e.locale,e.config,12),(0,h.AH)(o,d.b,e.locale,e.config,0)];case"now-24h":return[(0,h.AH)(o,d.b,e.locale,e.config,24),(0,h.AH)(o,d.b,e.locale,e.config,0)]}return[o,o]};n()}catch(e){n(e)}}))},47558:function(e,t,o){o.d(t,{v:()=>n});o(92745);const n=(e,t)=>{const o={};for(const n of e){const e=t(n);e in o?o[e].push(n):o[e]=[n]}return o}},1118:function(e,t,o){o.a(e,(async function(e,n){try{o.d(t,{Bm:()=>k,Cj:()=>z,E4:()=>Q,EH:()=>U,G9:()=>$,Jj:()=>x,KU:()=>W,P:()=>D,ST:()=>X,UB:()=>K,ZC:()=>j,_Z:()=>P,b:()=>G,gy:()=>O,iK:()=>S,jB:()=>N,kJ:()=>J,o1:()=>T,rl:()=>E,vE:()=>q,xZ:()=>C,yH:()=>L});o(92745),o(9359),o(31526),o(70104);var r=o(13809),s=o(86319),a=o(3938),c=o(23459),i=o(6542),l=o(32424),_=o(23711),f=o(7591),g=o(96500),u=o(38836),y=o(62212),m=o(27486),p=o(97674),d=o(33570),h=o(47558),w=o(17705),b=o(48719),v=o(50602),A=e([d,b,p,v]);[d,b,p,v]=A.then?(await A)():A;const H=[],k=()=>({stat_energy_from:"",stat_cost:null,entity_energy_price:null,number_energy_price:null}),T=()=>({stat_energy_to:"",stat_compensation:null,entity_energy_price:null,number_energy_price:null}),S=()=>({type:"grid",flow_from:[],flow_to:[],cost_adjustment_day:0}),E=()=>({type:"solar",stat_energy_from:"",config_entry_solar_forecast:null}),D=()=>({type:"battery",stat_energy_from:"",stat_energy_to:""}),W=()=>({type:"gas",stat_energy_from:"",stat_cost:null,entity_energy_price:null,number_energy_price:null}),z=()=>({type:"water",stat_energy_from:"",stat_cost:null,entity_energy_price:null,number_energy_price:null}),C=e=>e.callWS({type:"energy/info"}),O=async e=>(await e.loadBackendTranslation("issues","energy"),e.callWS({type:"energy/validate"})),j=e=>e.callWS({type:"energy/get_prefs"}),P=async(e,t)=>{const o=e.callWS({type:"energy/save_prefs",...t});return B(e),o},M=async(e,t,o,n,r,s="hour")=>e.callWS({type:"energy/fossil_energy_consumption",start_time:t.toISOString(),end_time:r?.toISOString(),energy_statistic_ids:o,co2_statistic_id:n,period:s}),x=e=>(0,h.v)(e.energy_sources,(e=>e.type)),L=(e,t,o)=>{const n=[];for(const r of e.energy_sources)if(!o||o.includes(r.type))if("solar"!==r.type)if("gas"!==r.type&&"water"!==r.type)if("battery"!==r.type){for(const e of r.flow_from){n.push(e.stat_energy_from),e.stat_cost&&n.push(e.stat_cost);const o=t.cost_sensors[e.stat_energy_from];o&&n.push(o)}for(const e of r.flow_to){n.push(e.stat_energy_to),e.stat_compensation&&n.push(e.stat_compensation);const o=t.cost_sensors[e.stat_energy_to];o&&n.push(o)}}else n.push(r.stat_energy_from),n.push(r.stat_energy_to);else{n.push(r.stat_energy_from),r.stat_cost&&n.push(r.stat_cost);const e=t.cost_sensors[r.stat_energy_from];e&&n.push(e)}else n.push(r.stat_energy_from);return o&&!o.includes("device")||n.push(...e.device_consumption.map((e=>e.stat_consumption))),n},Z=async(e,t,o,n,f)=>{const g=await C(e);let u;for(const t of Object.values(e.entities)){if("co2signal"!==t.platform)continue;const o=e.states[t.entity_id];if(o&&"%"===o.attributes.unit_of_measurement){u=o.entity_id;break}}const y=[];for(const e of t.energy_sources)if("grid"===e.type)for(const t of e.flow_from)y.push(t.stat_energy_from);const m=L(t,g,["grid","solar","battery","gas","device"]),d=L(t,g,["water"]),h=[...m,...d],b=(0,r.j)(n||new Date,o),v=(0,s.b)(o)&&(!n||(0,a.h)(n))&&b>35?"month":b>2?"day":"hour",A=e.config.unit_system.length||"",H={energy:"kWh",volume:"km"===A?"m³":"ft³"},k={volume:"km"===A?"L":"gal"},T=m.length?(0,w.dL)(e,o,n,m,v,H,["change"]):{},S=d.length?(0,w.dL)(e,o,n,d,v,k,["change"]):{};let E,D,W,z,O,j={},P={};f&&(D=(0,p.vA)(o,s.b,e.locale,e.config)&&(0,p.vA)(n||new Date,a.h,e.locale,e.config)?(0,p.AH)(o,c.z,e.locale,e.config,-(0,p.Ai)(n||new Date,o,i.d,e.locale,e.config)-1):(0,p.AH)(o,l.E,e.locale,e.config,-1*(b+1)),W=(0,_.n)(o,-1),m.length&&(j=(0,w.dL)(e,D,W,m,v,H,["change"])),d.length&&(P=(0,w.dL)(e,D,W,d,v,k,["change"]))),void 0!==u&&(z=M(e,o,y,u,n,b>35?"month":b>2?"day":"hour"),f&&(O=M(e,D,y,u,W,b>35?"month":b>2?"day":"hour")));const x={},Z=h.length?(0,w.Py)(e,h):[],[B,I,K,N,V,$,q]=await Promise.all([T,S,j,P,Z,z,O]),G={...B,...I};f&&(E={...K,...N}),h.length&&V.forEach((e=>{x[e.statistic_id]=e}));return{start:o,end:n,startCompare:D,endCompare:W,info:g,prefs:t,stats:G,statsMetadata:x,statsCompare:E,co2SignalEntity:u,fossilEnergyConsumption:$,fossilEnergyConsumptionCompare:q}},B=e=>{H.forEach((t=>{const o=K(e,{key:t});o.clearPrefs(),o._active&&o.refresh()}))},I=e=>{if(e._refreshTimeout&&clearTimeout(e._refreshTimeout),e._active&&(!e.end||e.end>new Date)){const t=new Date;t.getMinutes()>=20&&t.setHours(t.getHours()+1),t.setMinutes(20,0,0),e._refreshTimeout=window.setTimeout((()=>e.refresh()),t.getTime()-Date.now())}},K=(e,t={})=>{let o="_energy";if(t.key){if(!t.key.startsWith("energy_"))throw new Error("Key need to start with energy_");o=`_${t.key}`}if(e.connection[o])return e.connection[o];H.push(t.key);const n=(0,y._)(e.connection,o,(async()=>(n.prefs||(n.prefs=await j(e)),I(n),Z(e,n.prefs,n.start,n.end,n.compare)))),r=n.subscribe;n.subscribe=e=>{const t=r(e);return n._active++,void 0===n._refreshTimeout&&I(n),()=>{n._active--,n._active<1&&(clearTimeout(n._refreshTimeout),n._refreshTimeout=void 0),t()}},n._active=0,n.prefs=t.prefs;const s=new Date,a=(0,d.Zs)(s,e.locale,e.config).split(":")[0],c=localStorage.getItem(`energy-default-period-${o}`)||"today",i="today"===c&&"0"===a?"yesterday":c;[n.start,n.end]=(0,b.p)(e,i);const l=()=>{n._updatePeriodTimeout=window.setTimeout((()=>{n.start=(0,p.AH)(new Date,f.b,e.locale,e.config),n.end=(0,p.AH)(new Date,g.i,e.locale,e.config),l()}),(0,u.T)((0,p.AH)(new Date,g.i,e.locale,e.config),1).getTime()-Date.now())};return l(),n.clearPrefs=()=>{n.prefs=void 0},n.setPeriod=(t,o)=>{n._updatePeriodTimeout&&(clearTimeout(n._updatePeriodTimeout),n._updatePeriodTimeout=void 0),n.start=t,n.end=o,n.start.getTime()===(0,p.AH)(new Date,f.b,e.locale,e.config).getTime()&&n.end?.getTime()===(0,p.AH)(new Date,g.i,e.locale,e.config).getTime()&&l()},n.setCompare=e=>{n.compare=e},n},N=e=>e.callWS({type:"energy/solar_forecast"}),V=["volume","energy"],$=(e,t,o={})=>{for(const n of e.energy_sources){if("gas"!==n.type)continue;if(t&&t===n.stat_energy_from)continue;const e=o[n.stat_energy_from];if(V.includes(e?.unit_class))return e.unit_class}},q=(e,t,o={})=>"energy"===$(t,void 0,o)?"kWh":"km"===e.config.unit_system.length?"m³":"ft³",G=e=>"km"===e.config.unit_system.length?"L":"gal",J="/docs/energy/faq/#troubleshooting-missing-entities",U=(0,m.Z)((e=>({summedData:F(e),compareSummedData:e.statsCompare?F(e,!0):void 0}))),F=(e,t)=>{const o={};for(const t of e.prefs.energy_sources)if("solar"!==t.type)if("battery"!==t.type){if("grid"===t.type){for(const e of t.flow_from)o.from_grid?o.from_grid.push(e.stat_energy_from):o.from_grid=[e.stat_energy_from];for(const e of t.flow_to)o.to_grid?o.to_grid.push(e.stat_energy_to):o.to_grid=[e.stat_energy_to]}}else o.to_battery?(o.to_battery.push(t.stat_energy_to),o.from_battery.push(t.stat_energy_from)):(o.to_battery=[t.stat_energy_to],o.from_battery=[t.stat_energy_from]);else o.solar?o.solar.push(t.stat_energy_from):o.solar=[t.stat_energy_from];const n={};return Object.entries(o).forEach((([o,r])=>{const s={},a={};r.forEach((o=>{const n=t?e.statsCompare[o]:e.stats[o];if(!n)return;n.forEach((e=>{if(null===e.change||void 0===e.change)return;const t=e.change;s[e.start]=e.start in s?s[e.start]+t:t})),a[o]={}})),n[o]=s})),n},Q=(0,m.Z)(((e,t)=>({consumption:R(e),compareConsumption:t?R(t):void 0}))),R=e=>{const t={total:{}};return Object.keys(e).forEach((o=>{Object.keys(e[o]).forEach((o=>{if(void 0===t.total[o]){const n=(e.from_grid?.[o]||0)+(e.solar?.[o]||0)+(e.from_battery?.[o]||0)-(e.to_grid?.[o]||0)-(e.to_battery?.[o]||0);t.total[o]=n}}))})),t},X=(e,t,o)=>{if(!t)return`0 ${o}`;const n=["kWh","MWh","GWh","TWh"];let r=o,s=t,a=n.findIndex((e=>e===o));if(a>=0){for(;s>=1e3&&a<n.length-1;)s/=1e3,a++;r=n[a]}return(0,v.uf)(s,e.locale,{maximumFractionDigits:s<10?2:s<100?1:0})+" "+r};n()}catch(e){n(e)}}))}};
//# sourceMappingURL=72743.7463885402dbffd1.js.map