Add functions for device/entity/area registry parsing
This commit is contained in:
parent
c0cf359552
commit
83a9a2ea31
File diff suppressed because one or more lines are too long
56
src/devices.js
Normal file
56
src/devices.js
Normal file
@ -0,0 +1,56 @@
|
||||
import { hass } from "./hass";
|
||||
|
||||
const areaData = hass().callWS({type: "config/area_registry/list"});
|
||||
const deviceData = hass().callWS({type: "config/device_registry/list"});
|
||||
const entityData = hass().callWS({type: "config/entity_registry/list"});
|
||||
|
||||
export async function getData(){
|
||||
window.cardToolsData = window.cardToolsData || {
|
||||
areas: await areaData,
|
||||
devices: await deviceData,
|
||||
entities: await entityData,
|
||||
}
|
||||
return window.cardToolsData;
|
||||
}
|
||||
|
||||
getData();
|
||||
|
||||
export function areaByName(name) {
|
||||
const data = window.cardToolsData;
|
||||
for(const a of data.areas) {
|
||||
if(a.name.toLowerCase() === name.toLowerCase())
|
||||
return a;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
export function areaDevices(area) {
|
||||
const data = window.cardToolsData;
|
||||
let devices = [];
|
||||
if(!area) return devices;
|
||||
for(const d of data.devices) {
|
||||
if(d.area_id === area.area_id) {
|
||||
devices.push(d);
|
||||
}
|
||||
}
|
||||
return devices;
|
||||
}
|
||||
export function deviceByName(name) {
|
||||
const data = window.cardToolsData;
|
||||
for(const d of data.devices) {
|
||||
if(d.name.toLowerCase() === name.toLowerCase())
|
||||
return d;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
export function deviceEntities(device) {
|
||||
const data = window.cardToolsData;
|
||||
let entities = [];
|
||||
if(!device) return entities;
|
||||
for(const e of data.entities) {
|
||||
if(e.device_id === device.id) {
|
||||
entities.push(e.entity_id);
|
||||
}
|
||||
}
|
||||
return entities;
|
||||
}
|
@ -9,6 +9,7 @@ import { moreInfo } from "./more-info.js";
|
||||
import { popUp, closePopUp } from "./popup.js";
|
||||
import { parseTemplate, subscribeRenderTemplate } from "./templates.js";
|
||||
import { hasOldTemplate, parseOldTemplate } from "./old-templates.js";
|
||||
import { getData, areaByName, areaDevices, deviceByName, deviceEntities } from "./devices";
|
||||
|
||||
class CardTools {
|
||||
|
||||
@ -50,6 +51,11 @@ class CardTools {
|
||||
}
|
||||
static get subscribeRenderTemplate() { return subscribeRenderTemplate; }
|
||||
|
||||
static get getData() { return getData; }
|
||||
static get areaByName() { return areaByName; }
|
||||
static get areaDevices() { return areaDevices; }
|
||||
static get deviceByName() { return deviceByName; }
|
||||
static get deviceEntities() { return deviceEntities; }
|
||||
}
|
||||
|
||||
if(!customElements.get("card-tools")) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user