Devices & Integrations
Device-level and integration-level switches. Disabling a device disables all of its entities at once; when the last child of a hub is disabled, the hub follows, and enabling walks back up the chain.
reload_integration is the service equivalent of the Reload button on an integration page — the classic first fix when an integration wedges, now available to automations and to Claude.
Rename device
brain.rename_device
Set the user-facing name of a device.
| Field | Type | Required | Description |
|---|---|---|---|
device_id | device | yes | The device to rename. |
name | text | yes | The new name. |
service: brain.rename_devicedata: device_id: a1b2c3d4e5f6 name: Kitchen Ceiling Light🗣️ “Rename that Shelly device to ‘Kitchen Ceiling Light’.”
Enable device
brain.enable_device
Enable one or more disabled devices (including their parent hub devices if those were disabled).
| Field | Type | Required | Description |
|---|---|---|---|
device_id | device (list) | yes | Devices to enable. |
service: brain.enable_devicedata: device_id: - a1b2c3d4e5f6🗣️ “Re-enable the garage sensor device.”
Disable device
brain.disable_device
Disable one or more devices and all their entities. A parent hub device is also disabled once none of its children remain enabled.
| Field | Type | Required | Description |
|---|---|---|---|
device_id | device (list) | yes | Devices to disable. |
service: brain.disable_devicedata: device_id: - a1b2c3d4e5f6🗣️ “Disable the old motion sensor I unplugged.”
Delete device
brain.delete_device
Remove one or more devices from the registry, along with their entities. Returns what went (or would go) as response data: each device’s name, the entities removed with it, its child devices, and the config entries still providing it. A device its integration still provides comes straight back on the next reload — live_config_entries in the response is how you see that before you delete rather than after.
| Field | Type | Required | Description |
|---|---|---|---|
device_id | device (list) | yes | Devices to delete. |
dry_run | boolean | no | When on, only report what would be removed — nothing is deleted. Defaults to off. |
# Preview firstservice: brain.delete_devicedata: device_id: - a1b2c3d4e5f6 dry_run: trueresponse_variable: going
# Then for realservice: brain.delete_devicedata: device_id: - a1b2c3d4e5f6🗣️ “That old thermostat is gone — show me what deleting its device would take with it, then do it.”
Delete orphaned devices
brain.delete_orphaned_devices
Remove devices no loaded integration claims any more — either they have no config entry at all, or the config entry itself is gone. Runs as a dry run by default and returns the list of affected devices as response data. Optionally scoped to specific devices: each one is re-checked, and anything a live config entry still claims is skipped and reported under skipped_not_orphaned, never deleted.
| Field | Type | Required | Description |
|---|---|---|---|
dry_run | boolean | no | When on (default), only report what would be removed. |
device_id | device (list) | no | Restrict the cleanup to these devices. Each is re-checked; anything a live config entry still claims is skipped and reported in skipped_not_orphaned. Omit to target every orphaned device. |
# Report only — nothing is deletedservice: brain.delete_orphaned_devicesresponse_variable: orphans
# Delete only the ones you reviewed; live devices are skipped, never deletedservice: brain.delete_orphaned_devicesdata: dry_run: false device_id: - a1b2c3d4e5f6🗣️ “Are there devices left behind by integrations I removed? Clean them up.”
Enable integration
brain.enable_integration
Enable one or more disabled integration config entries.
| Field | Type | Required | Description |
|---|---|---|---|
config_entry_id | config entry (list) | yes | The config entries to enable. |
service: brain.enable_integrationdata: config_entry_id: 1234abcd5678efgh🗣️ “Turn the Sonos integration back on.”
Disable integration
brain.disable_integration
Disable one or more integration config entries and everything they provide.
| Field | Type | Required | Description |
|---|---|---|---|
config_entry_id | config entry (list) | yes | The config entries to disable. |
service: brain.disable_integrationdata: config_entry_id: 1234abcd5678efgh🗣️ “Disable the Sonos integration while the speakers are packed away.”
Reload integration
brain.reload_integration
Reload one or more integration config entries — like pressing Reload on the integration page.
| Field | Type | Required | Description |
|---|---|---|---|
config_entry_id | config entry (list) | yes | The config entries to reload. |
service: brain.reload_integrationdata: config_entry_id: 1234abcd5678efgh🗣️ “The Hue integration is acting up — reload it.”
Delete integration
brain.delete_integration
Remove one or more integration config entries completely, along with their devices and entities. This is not reversible — disable_integration is. Returns the domain and title of each entry and how many entities and devices go with it; after a real removal, require_restart says whether Home Assistant needs restarting to finish.
| Field | Type | Required | Description |
|---|---|---|---|
config_entry_id | config entry (list) | yes | The config entries to remove. |
dry_run | boolean | no | When on, only report what would be removed — nothing is deleted. Defaults to off. |
# Preview firstservice: brain.delete_integrationdata: config_entry_id: 1234abcd5678efgh dry_run: trueresponse_variable: going
# Then for realservice: brain.delete_integrationdata: config_entry_id: 1234abcd5678efgh🗣️ “I’ve sold the Sonos speakers — how much goes if I remove that integration?”