Skip to content

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.

FieldTypeRequiredDescription
device_iddeviceyesThe device to rename.
nametextyesThe new name.
service: brain.rename_device
data:
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).

FieldTypeRequiredDescription
device_iddevice (list)yesDevices to enable.
service: brain.enable_device
data:
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.

FieldTypeRequiredDescription
device_iddevice (list)yesDevices to disable.
service: brain.disable_device
data:
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.

FieldTypeRequiredDescription
device_iddevice (list)yesDevices to delete.
dry_runbooleannoWhen on, only report what would be removed — nothing is deleted. Defaults to off.
# Preview first
service: brain.delete_device
data:
device_id:
- a1b2c3d4e5f6
dry_run: true
response_variable: going
# Then for real
service: brain.delete_device
data:
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.

FieldTypeRequiredDescription
dry_runbooleannoWhen on (default), only report what would be removed.
device_iddevice (list)noRestrict 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 deleted
service: brain.delete_orphaned_devices
response_variable: orphans
# Delete only the ones you reviewed; live devices are skipped, never deleted
service: brain.delete_orphaned_devices
data:
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.

FieldTypeRequiredDescription
config_entry_idconfig entry (list)yesThe config entries to enable.
service: brain.enable_integration
data:
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.

FieldTypeRequiredDescription
config_entry_idconfig entry (list)yesThe config entries to disable.
service: brain.disable_integration
data:
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.

FieldTypeRequiredDescription
config_entry_idconfig entry (list)yesThe config entries to reload.
service: brain.reload_integration
data:
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.

FieldTypeRequiredDescription
config_entry_idconfig entry (list)yesThe config entries to remove.
dry_runbooleannoWhen on, only report what would be removed — nothing is deleted. Defaults to off.
# Preview first
service: brain.delete_integration
data:
config_entry_id: 1234abcd5678efgh
dry_run: true
response_variable: going
# Then for real
service: brain.delete_integration
data:
config_entry_id: 1234abcd5678efgh

🗣️ “I’ve sold the Sonos speakers — how much goes if I remove that integration?”