From 997a3e90583fa261aa400b94690d6d4a7c217669 Mon Sep 17 00:00:00 2001 From: DigiLive Date: Thu, 1 May 2025 21:28:21 +0200 Subject: [PATCH] Fix Chip tap action The action was turning off all entities of a domain. This includes entities which are excluded from the strategy by hidden/disabled status. The action now targets the strategy's entities explicitly. Closes #177 --- src/chips/FanChip.ts | 8 +++++++- src/chips/LightChip.ts | 8 +++++++- src/chips/SwitchChip.ts | 8 +++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/chips/FanChip.ts b/src/chips/FanChip.ts index 59ed226..bfcc616 100644 --- a/src/chips/FanChip.ts +++ b/src/chips/FanChip.ts @@ -3,6 +3,7 @@ import { Registry } from '../Registry'; import { TemplateChipConfig } from '../types/lovelace-mushroom/utils/lovelace/chip/types'; import AbstractChip from './AbstractChip'; +import RegistryFilter from '../utilities/RegistryFilter'; /** * Fan Chip class. @@ -18,8 +19,13 @@ class FanChip extends AbstractChip { icon_color: 'green', content: Registry.getCountTemplate('fan', 'eq', 'on'), tap_action: { - action: 'call-service', + action: 'perform-action', perform_action: 'fan.turn_off', + target: { + entity_id: new RegistryFilter(Registry.entities) + .whereDomain('fan') + .getValuesByProperty('entity_id') as string[], + }, }, hold_action: { action: 'navigate', diff --git a/src/chips/LightChip.ts b/src/chips/LightChip.ts index 81cd19d..b70e0e1 100644 --- a/src/chips/LightChip.ts +++ b/src/chips/LightChip.ts @@ -3,6 +3,7 @@ import { Registry } from '../Registry'; import { TemplateChipConfig } from '../types/lovelace-mushroom/utils/lovelace/chip/types'; import AbstractChip from './AbstractChip'; +import RegistryFilter from '../utilities/RegistryFilter'; /** * Light Chip class. @@ -18,8 +19,13 @@ class LightChip extends AbstractChip { icon_color: 'amber', content: Registry.getCountTemplate('light', 'eq', 'on'), tap_action: { - action: 'call-service', + action: 'perform-action', perform_action: 'light.turn_off', + target: { + entity_id: new RegistryFilter(Registry.entities) + .whereDomain('light') + .getValuesByProperty('entity_id') as string[], + }, }, hold_action: { action: 'navigate', diff --git a/src/chips/SwitchChip.ts b/src/chips/SwitchChip.ts index 4abac14..7e341d1 100644 --- a/src/chips/SwitchChip.ts +++ b/src/chips/SwitchChip.ts @@ -3,6 +3,7 @@ import { Registry } from '../Registry'; import { TemplateChipConfig } from '../types/lovelace-mushroom/utils/lovelace/chip/types'; import AbstractChip from './AbstractChip'; +import RegistryFilter from '../utilities/RegistryFilter'; /** * Switch Chip class. @@ -18,8 +19,13 @@ class SwitchChip extends AbstractChip { icon_color: 'blue', content: Registry.getCountTemplate('switch', 'eq', 'on'), tap_action: { - action: 'call-service', + action: 'perform-action', perform_action: 'switch.turn_off', + target: { + entity_id: new RegistryFilter(Registry.entities) + .whereDomain('switch') + .getValuesByProperty('entity_id') as string[], + }, }, hold_action: { action: 'navigate',