UNPKG

iobroker.lovelace

Version:

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

1 lines 11 kB
export const __rspack_esm_id=3047;export const __rspack_esm_ids=[3047];export const __webpack_modules__={95747(t,e,n){n.a(t,async function(t,i){try{n.d(e,{CL:()=>p,GH:()=>b,ZS:()=>y,aQ:()=>h,r6:()=>m,yg:()=>g});var a=n(74487),s=n(22786),o=n(72487),r=n(30162),c=n(8480),u=n(69543),l=t([a,c,o,r]);[a,c,o,r]=l.then?(await l)():l;const m=(t,e,n)=>d(e,n.time_zone).format(t),d=(0,s.A)((t,e)=>new Intl.DateTimeFormat(t.language,{year:"numeric",month:"long",day:"numeric",hour:(0,u.J)(t)?"numeric":"2-digit",minute:"2-digit",hourCycle:(0,u.J)(t)?"h12":"h23",timeZone:(0,c.wj)(t.time_zone,e)})),h=((0,s.A)(()=>new Intl.DateTimeFormat(void 0,{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit"})),(t,e,n)=>_(e,n.time_zone).format(t)),_=(0,s.A)((t,e)=>new Intl.DateTimeFormat(t.language,{year:"numeric",month:"short",day:"numeric",hour:(0,u.J)(t)?"numeric":"2-digit",minute:"2-digit",hourCycle:(0,u.J)(t)?"h12":"h23",timeZone:(0,c.wj)(t.time_zone,e)})),y=(t,e,n)=>f(e,n.time_zone).format(t),f=(0,s.A)((t,e)=>new Intl.DateTimeFormat(t.language,{month:"short",day:"numeric",hour:(0,u.J)(t)?"numeric":"2-digit",minute:"2-digit",hourCycle:(0,u.J)(t)?"h12":"h23",timeZone:(0,c.wj)(t.time_zone,e)})),p=(t,e,n)=>(new Date).getFullYear()===t.getFullYear()?y(t,e,n):h(t,e,n),g=(t,e,n)=>v(e,n.time_zone).format(t),v=(0,s.A)((t,e)=>new Intl.DateTimeFormat(t.language,{year:"numeric",month:"long",day:"numeric",hour:(0,u.J)(t)?"numeric":"2-digit",minute:"2-digit",second:"2-digit",hourCycle:(0,u.J)(t)?"h12":"h23",timeZone:(0,c.wj)(t.time_zone,e)})),b=(t,e,n)=>`${(0,o.zB)(t,e,n)}, ${(0,r.fU)(t,e,n)}`;i()}catch(t){i(t)}})},8480(t,e,n){n.a(t,async function(t,i){try{n.d(e,{wj:()=>m});var a=n(74487),s=n(29079),o=n(46927),r=t([a]);a=(r.then?(await r)():r)[0];const c=Intl.DateTimeFormat?.().resolvedOptions?.().timeZone,u=c&&("UTC"===c||"Etc/UTC"===c||c in s)?c:void 0,l=u??"UTC",m=(t,e)=>t===o.Wj.local&&u?l:e;i()}catch(t){i(t)}})},12575(t,e,n){n.a(t,async function(t,i){try{n.d(e,{J:()=>f,computeStateDisplay:()=>y,computeStateToParts:()=>g});n(74423),n(44114),n(18111),n(61701);var a=n(22675),s=n(46927),o=n(72487),r=n(95747),c=n(82591),u=n(30162),l=n(20058),m=n(8549),d=n(71727),h=n(64808),_=t([c,l,o,u,r]);[c,l,o,u,r]=_.then?(await _)():_;const y=(t,e,n,i,a,s,o)=>{const r=s?.[e.entity_id];return f(t,n,i,a,r,e.entity_id,e.attributes,void 0!==o?o:e.state)},f=(t,e,n,i,a,s,o,r)=>p(t,e,n,i,a,s,o,r).map(t=>t.value).join(""),p=(t,e,n,i,_,y,f,p)=>{if(p===a.HV||p===a.Hh)return[{type:"value",value:t(`state.default.${p}`)}];const g=(0,d.m)(y),v="counter"===g||"number"===g||"input_number"===g;if((0,l.ty)(f,"sensor"===g?n:[])||v){if("duration"===f.device_class&&f.unit_of_measurement&&c.Z8.includes(f.unit_of_measurement))try{return[{type:"value",value:(0,c.a3)(e,p,f.unit_of_measurement,_?.display_precision)}]}catch(t){}if("monetary"===f.device_class){let t=[];try{t=(0,l.QL)(p,e,{style:"currency",currency:f.unit_of_measurement,minimumFractionDigits:2,...(0,l.ZQ)({state:p,attributes:f},_)})}catch(t){}if(t.length){const e={integer:"value",group:"value",decimal:"value",fraction:"value",minusSign:"value",plusSign:"value",literal:"literal",currency:"unit"},n=[];for(const i of t){const t=e[i.type];if(!t)continue;const a=n[n.length-1];"value"===t&&"value"===a?.type?a.value+=i.value:n.push({type:t,value:i.value})}return n}}const n=(0,l.ZV)(p,e,(0,l.ZQ)({state:p,attributes:f},_)),i=_?.translation_key&&t(`component.${_.platform}.entity.${g}.${_.translation_key}.unit_of_measurement`)||f.unit_of_measurement;return i?[{type:"value",value:n},{type:"literal",value:(0,m.A)(i,e)},{type:"unit",value:i}]:[{type:"value",value:n}]}if(["date","input_datetime","time"].includes(g))try{const t=p.split(" ");if(2===t.length)return[{type:"value",value:(0,r.r6)(new Date(t.join("T")),{...e,time_zone:s.Wj.local},i)}];if(1===t.length){if(p.includes("-"))return[{type:"value",value:(0,o.Yq)(new Date(`${p}T00:00`),{...e,time_zone:s.Wj.local},i)}];if(p.includes(":")){const t=new Date;return[{type:"value",value:(0,u.fU)(new Date(`${t.toISOString().split("T")[0]}T${p}`),{...e,time_zone:s.Wj.local},i)}]}}return[{type:"value",value:p}]}catch(t){return[{type:"value",value:p}]}if(["ai_task","button","conversation","event","image","infrared","input_button","notify","radio_frequency","scene","stt","tag","tts","wake_word","datetime"].includes(g)||"sensor"===g&&h.G6.includes(f.device_class))try{return[{type:"value",value:(0,r.r6)(new Date(p),e,i)}]}catch(t){return[{type:"value",value:p}]}return[{type:"value",value:_?.translation_key&&t(`component.${_.platform}.entity.${g}.${_.translation_key}.state.${p}`)||f.device_class&&t(`component.${g}.entity_component.${f.device_class}.state.${p}`)||t(`component.${g}.entity_component._.state.${p}`)||p}]},g=(t,e,n,i,a,s,o)=>{const r=s?.[e.entity_id];return p(t,n,i,a,r,e.entity_id,e.attributes,void 0!==o?o:e.state)};i()}catch(t){i(t)}})},52943(t,e,n){n.d(e,{Z:()=>i});const i=t=>t.charAt(0).toUpperCase()+t.slice(1)},25064(t,e,n){n.a(t,async function(t,i){try{n.d(e,{Fp:()=>H,IQ:()=>_,Jo:()=>d,Lj:()=>T,Mm:()=>$,_1:()=>S,tG:()=>O});n(74423),n(44114),n(18111),n(22489),n(20116),n(7588),n(61701),n(13579),n(17642),n(58004),n(33853),n(45876),n(32475),n(15024),n(31698);var a=n(71727),s=n(12575),o=n(28978),r=t([s]);s=(r.then?(await r)():r)[0];const c=["climate","humidifier","water_heater"],u=["climate","humidifier","input_datetime","water_heater","person","device_tracker"],l=["temperature","current_temperature","target_temp_low","target_temp_high","hvac_action","humidity","mode","action","current_humidity"],m=(t,e)=>!t.states[e]||u.includes((0,a.m)(e)),d=(t,e,n,i,a)=>y(t,e,()=>({type:"history/stream",entity_ids:a,start_time:n.toISOString(),end_time:i.toISOString(),minimal_response:!0,no_attributes:!a.some(e=>m(t,e))}));class h{processMessage(t){if(!this.combinedHistory||!Object.keys(this.combinedHistory).length)return this.combinedHistory=t.states,this.combinedHistory;if(!Object.keys(t.states).length)return this.combinedHistory;const e=this.hoursToShow?((new Date).getTime()-3600*this.hoursToShow*1e3)/1e3:void 0,n={};for(const t of Object.keys(this.combinedHistory))n[t]=[];for(const e of Object.keys(t.states))n[e]=[];for(const i of Object.keys(n)){if(i in this.combinedHistory&&i in t.states){const e=this.combinedHistory[i],a=e[e.length-1];n[i]=e.concat(t.states[i]),t.states[i][0].lu<a.lu&&(n[i]=n[i].sort((t,e)=>t.lu-e.lu))}else i in this.combinedHistory?n[i]=this.combinedHistory[i]:n[i]=t.states[i];if(e&&i in this.combinedHistory){const t=n[i].filter(t=>t.lu<e);if(!t.length)continue;if(n[i]=n[i].filter(t=>t.lu>=e),n[i].length&&n[i][0].lu===e)continue;const a=t[t.length-1];a.lu=e,delete a.lc,n[i].unshift(a)}}return this.combinedHistory=n,this.combinedHistory}constructor(t,e){this.hass=t,this.hoursToShow=e,this.combinedHistory={}}}const _=(t,e,n,i,a,s=!0,o=!0)=>y(t,e,()=>({type:"history/stream",entity_ids:i,start_time:new Date((new Date).getTime()-3600*n*1e3).toISOString(),minimal_response:s,significant_changes_only:o,no_attributes:a??!i.some(e=>m(t,e))}),n),y=async(t,e,n,i)=>{let a,s=!1;const o=async()=>{const o=new h(t,i),r=await t.connection.subscribeMessage(t=>e(o.processMessage(t)),n(),{resubscribe:!1});s?r().catch(()=>{}):a=r},r=()=>{s||(a=void 0,o().catch(()=>{}))};return await o(),t.connection.addEventListener("ready",r),async()=>{s=!0,t.connection.removeEventListener("ready",r),a&&await a()}},f=(t,e)=>t.state===e.state&&(!t.attributes||!e.attributes||l.every(n=>t.attributes[n]===e.attributes[n])),p=(t,e,n,i,a,r,c)=>{const u=[],l=r[0];for(const o of r){if(u.length>0&&o.s===u[u.length-1].state)continue;const r={};c?.attributes.device_class&&(r.device_class=c?.attributes.device_class),u.push({state_localize:(0,s.J)(t,e,[],n,i[a],a,{...o.a||l.a,...r},o.s),state:o.s,last_changed:1e3*(o.lc?o.lc:o.lu)})}return{name:(0,o._)(a,c?.attributes||l.a),entity_id:a,data:u}},g=(t,e,n,i)=>{const s=[];return Object.keys(n).forEach(t=>{const e=n[t],r=e[0],u=(0,a.m)(t),m=[];for(const t of e){let e;if(c.includes(u)){e={state:t.s,last_changed:1e3*t.lu,attributes:{}};for(const n of l)n in t.a&&(e.attributes[n]=t.a[n])}else e={state:t.s,last_changed:1e3*(t.lc?t.lc:t.lu),attributes:{}};m.length>1&&f(e,m[m.length-1])&&f(e,m[m.length-2])||m.push(e)}const d=t in i?i[t].attributes:"friendly_name"in r.a?r.a:void 0;s.push({domain:u,name:(0,o._)(t,d||{}),entity_id:t,states:m})}),{unit:t,device_class:e,identifier:Object.keys(n).join(""),data:s}},v=["counter","input_number","number"],b=t=>v.includes(t),w=t=>"unit_of_measurement"in t||"state_class"in t,j=(t,e)=>null!=t.attributes.device_class&&e.includes(t.attributes.device_class),k=" ",S=(t,e,n,i,a=!1)=>{const s={};n.forEach(t=>{t in e&&(s[t]=e[t])});const o={};Object.entries(s).forEach(([t,e])=>{const n=e.map(t=>({s:null!=t.mean?t.mean.toString():t.state.toString(),lc:t.end/1e3,a:{},lu:t.end/1e3}));o[t]=n});const r=$(t,o,[],t.localize,i,a,!0);return(r?.line||[]).forEach(t=>{t.data.forEach(t=>{t.statistics=t.states,t.states=[]})}),r},T=t=>[{s:t.state,a:t.attributes,lu:new Date(t.last_updated).getTime()/1e3}],$=(t,e,n,i,s,o=!1,r=!1)=>{const c={},u=[],l={};if(new Set([...n,...Object.keys(e)]).forEach(n=>{n in e?l[n]=e[n]:t.states[n]&&(l[n]=T(t.states[n]))}),!l)return{line:[],timeline:[]};Object.keys(l).forEach(e=>{const n=l[e];if(0===n.length)return;const m=(0,a.m)(e),d=e in t.states?t.states[e]:void 0,h=d||b(m)?void 0:n.find(t=>t.a&&w(t.a));let _;_=H(m,d,h,s,r)?d?.attributes.unit_of_measurement||h?.a.unit_of_measurement||k:{zone:i("ui.dialogs.more_info_control.zone.graph_unit"),climate:t.config.unit_system.temperature,humidifier:"%",water_heater:t.config.unit_system.temperature}[m];const y=D(_,{climate:"temperature",humidifier:"humidity",water_heater:"temperature"}[m]||(d?.attributes||h?.a)?.device_class,o);_?y&&y in c&&e in c[y]?c[y][e].push(...n):y&&(y in c||(c[y]={}),c[y][e]=n):u.push(p(i,t.locale,t.config,t.entities,e,n,d))});return{line:Object.keys(c).map(e=>{const n=e.split("_"),i=n[0],a=n.slice(1).join("_")||void 0;return g(i,a,c[e],t.states)}),timeline:u}},D=(t,e,n)=>n?`${t}_${e||""}`:t,H=(t,e,n,i,a=!1)=>a||b(t)||null!=e&&w(e.attributes)||null!=e&&"sensor"===t&&j(e,i)||null!=n,O=(t,e,n=!0)=>{if(!e)return t;const i={...t,line:[]},a={};for(const e of t.line){const t=D(e.unit,e.device_class,n);t&&(a[t]={historyItem:e})}for(const i of e.line){i.unit===k&&(i.unit=t.line.find(t=>t.identifier===i.identifier)?.unit??k);const e=D(i.unit,i.device_class,n);e&&(e in a?a[e].ltsItem=i:a[e]={ltsItem:i})}for(const{historyItem:t,ltsItem:e}of Object.values(a)){if(!t||!e){i.line.push(t||e);continue}const n={...t,data:[]},a=new Set([...t.data.map(t=>t.entity_id),...e.data.map(t=>t.entity_id)]);for(const i of a){const a=t.data.find(t=>t.entity_id===i),s=e.data.find(t=>t.entity_id===i);if(!a||!s){n.data.push(a||s);continue}const o=a.states[0]?.last_changed||s.statistics[s.statistics.length-1].last_changed+1,r=[];for(const t of s.statistics){if(t.last_changed>=o)break;r.push(t)}n.data.push(0===r.length?a:{...a,statistics:r})}i.line.push(n)}return i};i()}catch(t){i(t)}})}};