diff --git a/README.md b/README.md index f5b4997..fb445d4 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,7 @@ filter: options: secondary_info: last-changed attributes: - battery: "< 50" + battery_level: "< 50" source_type: gps ``` diff --git a/auto-entities.js b/auto-entities.js old mode 100644 new mode 100755 index 179c9a6..eeefdf2 --- a/auto-entities.js +++ b/auto-entities.js @@ -105,6 +105,11 @@ class AutoEntities extends cardTools.LitElement { ) unmatched = true; break; + case "group_expand": + if(!this.is_in_group(hass, value, e.entity_id) + ) + unmatched = true; + break; case "attributes": Object.keys(value).forEach((entityKey) => { const k = entityKey.split(" ")[0]; @@ -124,6 +129,15 @@ class AutoEntities extends cardTools.LitElement { return retval; } + is_in_group(hass, group_entity_id, entity_id) { + return group_entity_id.startsWith("group.") + && hass.states[group_entity_id] + && hass.states[group_entity_id].attributes.entity_id + && ((!entity_id.startsWith("group.") && hass.states[group_entity_id].attributes.entity_id.includes(entity_id)) + || (hass.states[group_entity_id].attributes.entity_id.some((g) => this.is_in_group(hass, g, entity_id))) + ) + } + get_entities() { let entities = [];