Can't change heater switch icon

I can’t seem to change the icon for the heater switch.
It shows me something that looks like a toaster.

car1_heater:
    widget_type: switch
    entity: switch.volvo_heater
    title: Heating
    title2: "On/off"
    title2_style: "color: #00AAFF"
    icon_off: mdi-fire
    icon_style_inactive: "color: grey"
    icon_on: mdi-fire
    icon_style_active: "color: #4CFF00"

I’m pretty sure that’s not the problem because everything else works.
I’ve changed it to no avail. It still shows the “toaster” icon.

icon_off: mdi-fire

Should be

icon_off: mdi:fire

Likewise for the on icon.

I have seen both ways. Some topics say it’s mdi-fire other mdi:fire. Now I’m not sure which one is correct.
I’ve tried both to no avail.

I have similar issues with the binary_sensor icons.
I can’t show icons with a dash in the name:
mdi-exclamation (works)
mdi-check (works)
mdi-lightbulb (works)
mdi-car-tire-alert (doesn’t work)
mdi-wiper-wash (doesn’t work)

Using a colon instead of a dash is the correct method according to the docs.

Have you tried setting the icon using customise?

No idea how to do that.

Unless you are using Lovelace UI I believe you have to use a template switch to define the icon change. Template switch will still work for Lovelace. I haven’t made the jump yet so can’t help with that side.

Also @tom_l is correct it’s mdi:xxx for the icon

I found the solution.

In the global_parameters I had use_hass_icon: 1
Changed it to use_hass_icon: 0 and the icon appeared.

But these still don’t work:
mdi-car-tire-alert
mdi-wiper-wash