SOLVED:
I didn’t realize that new entities would be created. The old light. entities still existed. Once I went in via the ZHA integration to the devices I could see two entities, one being light. the other being switch. I simply deleted the original light. and renamed the switch. to the name I want.
As other have pointed out, sometimes a Zigbee device shows up with the incorrect domain. In my case I have Sonoff ZBMINI switches that show up as lights.
I’ve followed the Zigbee documentation exactly. I’ve checked the IEEE info several times. But these devices still show up as lights.
I’d very much appreciate pointers to what I am doing incorrectly.
The Zigbee documentation states
MODIFYING THE DEVICE TYPE
As not all device manufacturers follow the Zigbee standard, at times a device can be incorrectly classified. For example, a switch could be classified as a light.
To correct the device type, also called domain, add the following to your configuration.yaml and restart Home Assistant:
zha:
device_config:
84:71:27:ff:fe:93:17:24-1: # format: {ieee}-{endpoint_id}
type: "switch" # corrected device type
YAML
{ieee} is the device hardware address which can be read from the Home Assistant UI when looking at Device info. From device info, you can find the {endpoint_id} by viewing the Zigbee device signature.
This is a redacted version of my configuration.yaml
# Zigbee Configuration
zha:
zigpy_config:
network:
channel: 15 # What channel the radio should try to use.
channels: [15, 20, 25] # Channel mask
device_config:
aa:bb:cc:dd:ee:ff:gg:hh-1: # format: {ieee}-{endpoint_id}
type: "switch"
This is a UI screenshot for this item:
And this a screenshot of the Zigbee device info.
The full text of the device signature is below.
{
"node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4742, maximum_buffer_size=80, maximum_incoming_transfer_size=160, server_mask=11264, maximum_outgoing_transfer_size=160, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
"endpoints": {
"1": {
"profile_id": 260,
"device_type": "0x0100",
"in_clusters": [
"0x0000",
"0x0003",
"0x0004",
"0x0005",
"0x0006",
"0xfc57"
],
"out_clusters": [
"0x0019"
]
},
"242": {
"profile_id": 41440,
"device_type": "0x0061",
"in_clusters": [],
"out_clusters": [
"0x0021"
]
}
},
"manufacturer": "SONOFF",
"model": "01MINIZB",
"class": "zigpy.device.Device"
}


