Bulk Control
ha_bulk_controlControl multiple Home Assistant entities in one call using explicit operations or a selector-based bulk action on areas, floors, and exclusions.
Instructions
Manage explicit operations or one deterministic structural bulk action.
When NOT to use: use ha_call_service for service-specific payloads or
backend-native group targeting, and ha_search for fuzzy name discovery.
Operations mode (operations, no selector): put every target in
this one call. Parallel execution is the default, and invalid items are
reported without aborting valid operations in the same batch — but a batch
in which every item fails validation dispatches nothing and fails the call.
A batch that targets a group/aggregate entity together with one or more of
its own individual members also fails closed (nothing dispatched): Home
Assistant applies the action to every member when the group is targeted
regardless of what else is listed, so a member row cannot exclude that
member from the group's own action. Use selector mode with
exclude_entity_ids when a group action must exclude specific members.
Selector mode (selector + action): use exact area or floor IDs
when exclusions must be applied after recursively expanding generic
aggregate membership. Resolves a frozen visible leaf set before dispatch;
it is not transactional, so Home Assistant may still report per-leaf
failures. A selector resolving to more than 100 entities fails closed
instead of dispatching a partial/oversized batch — narrow it (a more
specific area/floor, or add exclude_entity_ids) and retry. Set
dry_run to preview the resolved set without changing state.
If a Claude Desktop user gets a 4-minute timeout with no result on this call, read the target back before repeating it, and tell them to wait a few seconds before clicking the manual-approve button, as clicking it too quickly is known to cause hangs in Claude Desktop. This workaround is specific to Claude Desktop.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | One device action applied to every resolved leaf. | |
| dry_run | No | Selector mode only; True is rejected in operations mode. | |
| parallel | No | Dispatch operations concurrently (default) or one at a time when False. | |
| selector | No | Optional exact structural scope using domain plus area_ids and/or floor_ids, with optional exclude_entity_ids. | |
| operations | No | Explicit entity operations. Each item requires exact entity_id and action. Use action='off', not service='turn_off'. | |
| parameters | No | Optional action parameters for selector mode. | |
| validate_first | No | Selector mode only: report ENTITY_NOT_FOUND for a target that does not exist. In operations mode set validate_first on each operation instead; a top-level False is rejected in operations mode. | |
| timeout_seconds | No | Selector mode only: confirmation wait in seconds for every resolved entity. In operations mode set timeout_seconds on each operation instead; a top-level value is rejected in operations mode. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||