iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 9.59 kB
JavaScript
export const __rspack_esm_id=75867;export const __rspack_esm_ids=[75867];export const __webpack_modules__={27571(s,t,e){e.a(s,async function(s,t){try{var i=e(62826),a=e(5124),o=e(22441),l=(e(67094),e(34127)),n=s([l]);l=(n.then?(await n)():n)[0];const p="M11,18H13V16H11V18M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,6A4,4 0 0,0 8,10H10A2,2 0 0,1 12,8A2,2 0 0,1 14,10C14,12 11,11.75 11,15H13C13,12.75 16,12.5 16,10A4,4 0 0,0 12,6Z";class c extends a.WF{render(){return a.qy` <ha-svg-icon id="svg-icon" .path="${p}"></ha-svg-icon> <ha-tooltip for="svg-icon" .placement="${this.position}"> ${this.label} </ha-tooltip> `}constructor(...s){super(...s),this.position="top"}}c.styles=a.AH`ha-svg-icon{--mdc-icon-size:var(--ha-help-tooltip-size, 14px);color:var(--ha-help-tooltip-color,var(--disabled-text-color))}`,(0,i.Cg)([(0,o.MZ)()],c.prototype,"label",void 0),(0,i.Cg)([(0,o.MZ)()],c.prototype,"position",void 0),c=(0,i.Cg)([(0,o.EM)("ha-help-tooltip")],c),t()}catch(s){t(s)}})},69814(s,t,e){e.a(s,async function(s,i){try{e.r(t);e(74423),e(18111),e(7588),e(61701);var a=e(62826),o=e(5124),l=e(22441),n=e(1087),p=e(37981),c=e(72554),r=(e(11382),e(27571)),h=(e(67094),e(28170),e(50723),e(58594)),_=e(72001),d=e(14503),u=s([c,r]);[c,r]=u.then?(await u)():u;const v="M21,9L17,5V8H10V10H17V13M7,11L3,15L7,19V16H14V14H7V11Z";class b extends o.WF{showDialog(s){this.device=s.device,this._open=!0,this._subscribeDeviceRegistry(),this._subscribeNodeStatistics()}closeDialog(){this._open=!1}_dialogClosed(){this._nodeStatistics=void 0,this.device=void 0,this._unsubscribe(),(0,n.r)(this,"dialog-closed",{dialog:this.localName})}render(){return this.device?o.qy` <ha-dialog .open="${this._open}" header-title="${this.hass.localize("ui.panel.config.zwave_js.node_statistics.title")}" ="${this._dialogClosed}"> <ha-list-base> <ha-list-item-base> <span slot="headline"> ${this.hass.localize("ui.panel.config.zwave_js.node_statistics.commands_tx.label")}</span> <span slot="supporting-text"> ${this.hass.localize("ui.panel.config.zwave_js.node_statistics.commands_tx.tooltip")} </span> <span slot="end">${this._nodeStatistics?.commands_tx}</span> </ha-list-item-base> <ha-list-item-base> <span slot="headline"> ${this.hass.localize("ui.panel.config.zwave_js.node_statistics.commands_rx.label")}</span> <span slot="supporting-text"> ${this.hass.localize("ui.panel.config.zwave_js.node_statistics.commands_rx.tooltip")} </span> <span slot="end">${this._nodeStatistics?.commands_rx}</span> </ha-list-item-base> <ha-list-item-base> <span slot="headline"> ${this.hass.localize("ui.panel.config.zwave_js.node_statistics.commands_dropped_tx.label")}</span> <span slot="supporting-text"> ${this.hass.localize("ui.panel.config.zwave_js.node_statistics.commands_dropped_tx.tooltip")} </span> <span slot="end">${this._nodeStatistics?.commands_dropped_tx}</span> </ha-list-item-base> <ha-list-item-base> <span slot="headline"> ${this.hass.localize("ui.panel.config.zwave_js.node_statistics.commands_dropped_rx.label")}</span> <span slot="supporting-text"> ${this.hass.localize("ui.panel.config.zwave_js.node_statistics.commands_dropped_rx.tooltip")} </span> <span slot="end">${this._nodeStatistics?.commands_dropped_rx}</span> </ha-list-item-base> <ha-list-item-base> <span slot="headline"> ${this.hass.localize("ui.panel.config.zwave_js.node_statistics.timeout_response.label")}</span> <span slot="supporting-text"> ${this.hass.localize("ui.panel.config.zwave_js.node_statistics.timeout_response.tooltip")} </span> <span slot="end">${this._nodeStatistics?.timeout_response}</span> </ha-list-item-base> ${this._nodeStatistics?.rtt?o.qy`<ha-list-item-base> <span slot="headline"> ${this.hass.localize("ui.panel.config.zwave_js.node_statistics.rtt.label")}</span> <span slot="supporting-text"> ${this.hass.localize("ui.panel.config.zwave_js.node_statistics.rtt.tooltip")} </span> <span slot="end">${this._nodeStatistics.rtt}</span> </ha-list-item-base>`:""} ${this._nodeStatistics?.rssi_translated?o.qy`<ha-list-item-base> <span slot="headline"> ${this.hass.localize("ui.panel.config.zwave_js.node_statistics.rssi.label")}</span> <span slot="supporting-text"> ${this.hass.localize("ui.panel.config.zwave_js.node_statistics.rssi.tooltip")} </span> <span slot="end">${this._nodeStatistics.rssi_translated}</span> </ha-list-item-base>`:""} </ha-list-base> ${Object.entries(this._workingRoutes).map(([s,t])=>t?o.qy` <ha-expansion-panel .header="${this.hass.localize(`ui.panel.config.zwave_js.node_statistics.${s}`)}"> <div class="row"> <span> ${this.hass.localize("ui.panel.config.zwave_js.route_statistics.protocol.label")}<ha-help-tooltip .label="${this.hass.localize("ui.panel.config.zwave_js.route_statistics.protocol.tooltip")}"> </ha-help-tooltip></span> <span>${this.hass.localize(`ui.panel.config.zwave_js.route_statistics.protocol.protocol_data_rate.${_.dZ[t.protocol_data_rate]}`)}</span> </div> <div class="row"> <span> ${this.hass.localize("ui.panel.config.zwave_js.route_statistics.data_rate.label")}<ha-help-tooltip .label="${this.hass.localize("ui.panel.config.zwave_js.route_statistics.data_rate.tooltip")}"> </ha-help-tooltip></span> <span>${this.hass.localize(`ui.panel.config.zwave_js.route_statistics.data_rate.protocol_data_rate.${_.dZ[t.protocol_data_rate]}`)}</span> </div> ${t.rssi_translated?o.qy`<div class="row"> <span> ${this.hass.localize("ui.panel.config.zwave_js.route_statistics.rssi.label")}<ha-help-tooltip .label="${this.hass.localize("ui.panel.config.zwave_js.route_statistics.rssi.tooltip")}"> </ha-help-tooltip></span> <span>${t.rssi_translated}</span> </div>`:""} <div class="row"> <span> ${this.hass.localize("ui.panel.config.zwave_js.route_statistics.route_failed_between.label")}<ha-help-tooltip .label="${this.hass.localize("ui.panel.config.zwave_js.route_statistics.route_failed_between.tooltip")}"> </ha-help-tooltip></span> <span> ${t.route_failed_between_translated?o.qy`${t.route_failed_between_translated[0]}<ha-svg-icon .path="${v}"></ha-svg-icon>${t.route_failed_between_translated[1]}`:this.hass.localize("ui.panel.config.zwave_js.route_statistics.route_failed_between.not_applicable")} </span> </div> <div class="row"> <span> ${this.hass.localize("ui.panel.config.zwave_js.route_statistics.repeaters.label")}<ha-help-tooltip .label="${this.hass.localize("ui.panel.config.zwave_js.route_statistics.repeaters.tooltip")}"> </ha-help-tooltip></span><span> ${t.repeater_rssi_table?o.qy`<div class="row"> <span class="key-cell"><b>${this.hass.localize("ui.panel.config.zwave_js.route_statistics.repeaters.repeaters")}:</b></span> <span class="value-cell"><b>${this.hass.localize("ui.panel.config.zwave_js.route_statistics.repeaters.rssi")}:</b></span> </div> ${t.repeater_rssi_table}`:o.qy`${this.hass.localize("ui.panel.config.zwave_js.route_statistics.repeaters.direct")}`}</span> </div> </ha-expansion-panel> `:"")} </ha-dialog> `:o.s6}_computeRSSI(s,t){return Object.values(_.au).includes(s)?o.qy`<ha-help-tooltip .label="${this.hass.localize(`ui.panel.config.zwave_js.rssi.rssi_error.${_.au[s]}`)}"></ha-help-tooltip>`:t?`${s}\n ${this.hass.localize("ui.panel.config.zwave_js.rssi.unit")}`:s.toString()}_computeDeviceNameById(s){if(!this._deviceIDsToName)return"unknown device";return this._deviceIDsToName[s]&&this._deviceIDsToName[s]||"unknown device"}_subscribeNodeStatistics(){this.hass&&(this._subscribedNodeStatistics=(0,_.jF)(this.hass,this.device.id,s=>{this._nodeStatistics={...s,rssi_translated:s.rssi?this._computeRSSI(s.rssi,!1):void 0};const t=[["lwr",this._nodeStatistics?.lwr],["nlwr",this._nodeStatistics?.nlwr]],e={};t.forEach(([s,t])=>{e[s]=t,t&&(t.rssi&&(t.rssi_translated=this._computeRSSI(t.rssi,!0)),t.route_failed_between&&(t.route_failed_between_translated=[this._computeDeviceNameById(t.route_failed_between[0]),this._computeDeviceNameById(t.route_failed_between[1])]),t.repeaters&&t.repeaters.length&&(t.repeater_rssi_table=o.qy`${t.repeaters.map((s,e)=>o.qy`<div class="row"> <span class="key-cell">${this._computeDeviceNameById(t.repeaters[e])}:</span> <span class="value-cell">${this._computeRSSI(t.repeater_rssi[e],!0)}</span> </div>`)}`))}),this._workingRoutes=e}))}_subscribeDeviceRegistry(){this.hass&&(this._subscribedDeviceRegistry=(0,h.Ag)(this.hass.connection,s=>{const t={};s.forEach(s=>{t[s.id]=(0,p.T)(s,this.hass.localize,this.hass.states)}),this._deviceIDsToName=t}))}_unsubscribe(){this._subscribedNodeStatistics&&(this._subscribedNodeStatistics.then(s=>s()),this._subscribedNodeStatistics=void 0),this._subscribedDeviceRegistry&&(this._subscribedDeviceRegistry(),this._subscribedDeviceRegistry=void 0)}static get styles(){return[d.nA,o.AH`.row{display:flex;justify-content:space-between}.table{display:table}.key-cell{display:table-cell;padding-right:5px;padding-inline-end:5px;padding-inline-start:initial}.value-cell{display:table-cell;padding-left:5px;padding-inline-start:5px;padding-inline-end:initial}span[slot=meta]{font-size:.95em;color:var(--primary-text-color)}`]}constructor(...s){super(...s),this._deviceIDsToName={},this._workingRoutes={},this._open=!1}}(0,a.Cg)([(0,l.MZ)({attribute:!1})],b.prototype,"hass",void 0),(0,a.Cg)([(0,l.wk)()],b.prototype,"device",void 0),(0,a.Cg)([(0,l.wk)()],b.prototype,"_nodeStatistics",void 0),(0,a.Cg)([(0,l.wk)()],b.prototype,"_deviceIDsToName",void 0),(0,a.Cg)([(0,l.wk)()],b.prototype,"_workingRoutes",void 0),(0,a.Cg)([(0,l.wk)()],b.prototype,"_open",void 0),b=(0,a.Cg)([(0,l.EM)("dialog-zwave_js-node-statistics")],b),i()}catch(s){i(s)}})}};