Zigbee2MQTT - Change device type from switch to light

I have a few ZBMINIL2 from SONOFF and they get integrated as switch, instead of as light.

I know I can change the switch to light using HA, but it’s annoying because it creates a helper entity.

I’ve modified the Z2M configuration to this:

devices:
  "0x30fb10fffe6e9e0d":
    type: light

But it doesn’t seem to be doing anything. Does anyone know of a correct syntax that would do this?

Try single quotes, all the examples have single quotes.

I actually found Home Assistant | Zigbee2MQTT but it does not work.

The presented syntax looks like this:

devices:
  "0x12345678":
    friendly_name: my_switch
    homeassistant:
      switch:
        type: light
        object_id: light
      light:
        name: null
        value_template: null
        state_value_template: '{{ value_json.state }}'

That wasn’t the page I got the suggestion from, but it looks like the single/double quote thing was a red herring.

So does the setting you just posted work?

it is like this, look at the quotes:

  '0x0c4314fffeb51643':
    friendly_name: slaapkamer
    homeassistant:
      switch:
        type: light
        object_id: light
      light:
        name: licht_slaapkamer
        value_template: null
        state_value_template: '{{ value_json.state }}'

Applied your change (with a name for light – licht_slaapkamer), but it still shows up as switch.my_switch in the MQTT integration.

Where are you adding the config for ‘0x0c4314fffeb51643’?

Mine is in the configuration of the Z2M addon, like:

serial:
  port: /dev/ttyUSB0
zigbee_herdsman_debug: false
devices:
  "0x30fb10fffe6e9e0d":
    friendly_name: my_switch

The thing with " vs ', is that I save it with single quotes, but after restart it gets translated to double quotes.

Edit: I removed and re-paired the device after the Z2M restart. I’ve also restarted Z2M without re-pairing and it still shows up as switch.my_switch instead of light.my_switch

Edit2: Well, this is odd. Looks like /config/zigbee2mqtt/devices.yaml does not have my changes from the Z2M addon?

/config/zigbee2mqtt/configuration.yaml does this:

devices:
  - devices.yaml

Yet in my Z2M Addon I don’t have a “load”. What…?

Editing /config/zigbee2mqtt/configuration.yaml (and devices.yaml) solved this!

Why is the configuration from the addon page itself not being taken into account?