UNPKG

iobroker.lovelace

Version:

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

2 lines 11 kB
"use strict";(self.webpackChunkhome_assistant_frontend=self.webpackChunkhome_assistant_frontend||[]).push([["72743"],{97674:function(e,t,o){o.a(e,(async function(e,n){try{o.d(t,{AH:()=>w,Ai:()=>b,Al:()=>A,vA:()=>v});var s=o(86319),r=o(3938),a=o(6542),i=o(23459),c=o(2621),l=o(7591),_=o(96500),f=o(13809),g=o(32424),u=o(14276),y=o(23711),m=o(35895),d=o(20382),p=e([m]);m=(p.then?(await p)():p)[0];const h=(e,t,o,n)=>{const s=o((0,m.zW)(e,t),n);return s instanceof Date?(0,m.Nm)(s,t):s},w=(e,t,o,n,s)=>o.time_zone===d.c_.server?h(e,n.time_zone,t,s):t(e,s),v=(e,t,o,n,s)=>o.time_zone===d.c_.server?h(e,n.time_zone,t,s):t(e,s),b=(e,t,o,n,s)=>v(e,o,n,s,n.time_zone===d.c_.server?(0,m.zW)(t,s.time_zone):t),A=(e,t,o,n,m)=>{let d,p;if(v(e,s.b,n,m)&&v(t,r.h,n,m)){const s=(b(t,e,a.d,n,m)+1)*(o?1:-1);d=w(e,i.z,n,m,s),p=w(w(t,i.z,n,m,s),c.V,n,m)}else if(v(e,(e=>(0,l.b)(e).getMilliseconds()===e.getMilliseconds()),n,m)&&v(t,(e=>(0,_.i)(e).getMilliseconds()===e.getMilliseconds()),n,m)){const s=(b(t,e,f.j,n,m)+1)*(o?1:-1);d=w(e,g.E,n,m,s),p=w(t,g.E,n,m,s)}else{const s=(b(t,e,u._,n,m)+1)*(o?1:-1);d=w(e,y.n,n,m,s),p=w(t,y.n,n,m,s)}return{start:d,end:p}};n()}catch(h){n(h)}}))},48719:function(e,t,o){o.a(e,(async function(e,n){try{o.d(t,{p:()=>b});var s=o(7591),r=o(96500),a=o(32424),i=o(29558),c=o(30921),l=o(83204),_=o(2621),f=o(21127),g=o(11735),u=o(80951),y=o(23723),m=o(40228),d=o(62725),p=o(21893),h=o(97674),w=o(19631),v=e([w,h]);[w,h]=v.then?(await v)():v;const b=(e,t)=>{const o=new Date,n=(0,w.Bt)(e.locale);switch(t){case"today":return[(0,h.AH)(o,s.b,e.locale,e.config,{weekStartsOn:n}),(0,h.AH)(o,r.i,e.locale,e.config,{weekStartsOn:n})];case"yesterday":return[(0,h.AH)((0,a.E)(o,-1),s.b,e.locale,e.config,{weekStartsOn:n}),(0,h.AH)((0,a.E)(o,-1),r.i,e.locale,e.config,{weekStartsOn:n})];case"this_week":return[(0,h.AH)(o,i.z,e.locale,e.config,{weekStartsOn:n}),(0,h.AH)(o,c.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,d.W)(o,12),l.N,e.locale,e.config),(0,h.AH)((0,d.W)(o,1),_.V,e.locale,e.config)];case"now-1h":return[(0,h.AH)(o,p.b,e.locale,e.config,1),(0,h.AH)(o,p.b,e.locale,e.config,0)];case"now-12h":return[(0,h.AH)(o,p.b,e.locale,e.config,12),(0,h.AH)(o,p.b,e.locale,e.config,0)];case"now-24h":return[(0,h.AH)(o,p.b,e.locale,e.config,24),(0,h.AH)(o,p.b,e.locale,e.config,0)]}return[o,o]};n()}catch(b){n(b)}}))},47558:function(e,t,o){o.d(t,{v:()=>n});o(71695),o(92745),o(47021);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:()=>W,E4:()=>Q,EH:()=>U,G9:()=>$,Jj:()=>L,KU:()=>O,P:()=>D,ST:()=>X,UB:()=>K,ZC:()=>z,_Z:()=>P,b:()=>G,gy:()=>C,iK:()=>S,jB:()=>N,kJ:()=>J,o1:()=>T,rl:()=>E,vE:()=>q,xZ:()=>j,yH:()=>Z});o(52247),o(19083),o(71695),o(92745),o(9359),o(31526),o(70104),o(19423),o(40251),o(61006),o(88044),o(47021);var s=o(13809),r=o(86319),a=o(3938),i=o(23459),c=o(6542),l=o(32424),_=o(23711),f=o(7591),g=o(96500),u=o(38836),y=o(62212),m=o(27486),d=o(97674),p=o(33570),h=o(47558),w=o(17705),v=o(48719),b=o(50602),A=e([p,v,d,b]);[p,v,d,b]=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:""}),O=()=>({type:"gas",stat_energy_from:"",stat_cost:null,entity_energy_price:null,number_energy_price:null}),W=()=>({type:"water",stat_energy_from:"",stat_cost:null,entity_energy_price:null,number_energy_price:null}),j=e=>e.callWS({type:"energy/info"}),C=async e=>(await e.loadBackendTranslation("issues","energy"),e.callWS({type:"energy/validate"})),z=e=>e.callWS({type:"energy/get_prefs"}),P=async(e,t)=>{const o=e.callWS(Object.assign({type:"energy/save_prefs"},t));return B(e),o},M=async(e,t,o,n,s,r="hour")=>e.callWS({type:"energy/fossil_energy_consumption",start_time:t.toISOString(),end_time:null==s?void 0:s.toISOString(),energy_statistic_ids:o,co2_statistic_id:n,period:r}),L=e=>(0,h.v)(e.energy_sources,(e=>e.type)),Z=(e,t,o)=>{const n=[];for(const s of e.energy_sources)if(!o||o.includes(s.type))if("solar"!==s.type)if("gas"!==s.type&&"water"!==s.type)if("battery"!==s.type){for(const e of s.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 s.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(s.stat_energy_from),n.push(s.stat_energy_to);else{n.push(s.stat_energy_from),s.stat_cost&&n.push(s.stat_cost);const e=t.cost_sensors[s.stat_energy_from];e&&n.push(e)}else n.push(s.stat_energy_from);return o&&!o.includes("device")||n.push(...e.device_consumption.map((e=>e.stat_consumption))),n},x=async(e,t,o,n,f)=>{const g=await j(e);let u;for(const s of Object.values(e.entities)){if("co2signal"!==s.platform)continue;const t=e.states[s.entity_id];if(t&&"%"===t.attributes.unit_of_measurement){u=t.entity_id;break}}const y=[];for(const s of t.energy_sources)if("grid"===s.type)for(const e of s.flow_from)y.push(e.stat_energy_from);const m=Z(t,g,["grid","solar","battery","gas","device"]),p=Z(t,g,["water"]),h=[...m,...p],v=(0,s.j)(n||new Date,o),b=(0,r.b)(o)&&(!n||(0,a.h)(n))&&v>35?"month":v>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,b,H,["change"]):{},S=p.length?(0,w.dL)(e,o,n,p,b,k,["change"]):{};let E,D,O,W,C,z={},P={};f&&(D=(0,d.vA)(o,r.b,e.locale,e.config)&&(0,d.vA)(n||new Date,a.h,e.locale,e.config)?(0,d.AH)(o,i.z,e.locale,e.config,-(0,d.Ai)(n||new Date,o,c.d,e.locale,e.config)-1):(0,d.AH)(o,l.E,e.locale,e.config,-1*(v+1)),O=(0,_.n)(o,-1),m.length&&(z=(0,w.dL)(e,D,O,m,b,H,["change"])),p.length&&(P=(0,w.dL)(e,D,O,p,b,k,["change"]))),void 0!==u&&(W=M(e,o,y,u,n,v>35?"month":v>2?"day":"hour"),f&&(C=M(e,D,y,u,O,v>35?"month":v>2?"day":"hour")));const L={},x=h.length?(0,w.Py)(e,h):[],[B,I,K,N,V,$,q]=await Promise.all([T,S,z,P,x,W,C]),G=Object.assign(Object.assign({},B),I);f&&(E=Object.assign(Object.assign({},K),N)),h.length&&V.forEach((e=>{L[e.statistic_id]=e}));return{start:o,end:n,startCompare:D,endCompare:O,info:g,prefs:t,stats:G,statsMetadata:L,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 z(e)),I(n),x(e,n.prefs,n.start,n.end,n.compare)))),s=n.subscribe;n.subscribe=e=>{const t=s(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 r=new Date,a=(0,p.Zs)(r,e.locale,e.config).split(":")[0],i=localStorage.getItem(`energy-default-period-${o}`)||"today",c="today"===i&&"0"===a?"yesterday":i;[n.start,n.end]=(0,v.p)(e,c);const l=()=>{n._updatePeriodTimeout=window.setTimeout((()=>{n.start=(0,d.AH)(new Date,f.b,e.locale,e.config),n.end=(0,d.AH)(new Date,g.i,e.locale,e.config),l()}),(0,u.T)((0,d.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)=>{var s;n._updatePeriodTimeout&&(clearTimeout(n._updatePeriodTimeout),n._updatePeriodTimeout=void 0),n.start=t,n.end=o,n.start.getTime()===(0,d.AH)(new Date,f.b,e.locale,e.config).getTime()&&(null===(s=n.end)||void 0===s?void 0:s.getTime())===(0,d.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(null==e?void 0: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 s of e.prefs.energy_sources)if("solar"!==s.type)if("battery"!==s.type){if("grid"===s.type){for(const e of s.flow_from)o.from_grid?o.from_grid.push(e.stat_energy_from):o.from_grid=[e.stat_energy_from];for(const e of s.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(s.stat_energy_to),o.from_battery.push(s.stat_energy_from)):(o.to_battery=[s.stat_energy_to],o.from_battery=[s.stat_energy_from]);else o.solar?o.solar.push(s.stat_energy_from):o.solar=[s.stat_energy_from];const n={};return Object.entries(o).forEach((([o,s])=>{const r={},a={};s.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;r[e.start]=e.start in r?r[e.start]+t:t})),a[o]={}})),n[o]=r})),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]){var n,s,r,a,i;const c=((null===(n=e.from_grid)||void 0===n?void 0:n[o])||0)+((null===(s=e.solar)||void 0===s?void 0:s[o])||0)+((null===(r=e.from_battery)||void 0===r?void 0:r[o])||0)-((null===(a=e.to_grid)||void 0===a?void 0:a[o])||0)-((null===(i=e.to_battery)||void 0===i?void 0:i[o])||0);t.total[o]=c}}))})),t},X=(e,t,o)=>{if(!t)return`0 ${o}`;const n=["kWh","MWh","GWh","TWh"];let s=o,r=t,a=n.findIndex((e=>e===o));if(a>=0){for(;r>=1e3&&a<n.length-1;)r/=1e3,a++;s=n[a]}return(0,b.uf)(r,e.locale,{maximumFractionDigits:r<10?2:r<100?1:0})+" "+s};n()}catch(H){n(H)}}))}}]); //# sourceMappingURL=72743.a06c9977ccfa5347.js.map