After a bunch of back and forth and many hours of trial and error, I've finally got a robust way to integrate the Clipsal/PDL Iconic dimmers integrated into Home Assistant via zigbee2mqtt.
I have submitted a PR that adds a zigbee-herdsman-converter that means the dimmers should be recognised automatically by zigbee2mqtt, allowing them to be controlled by Home Assistant like any other compatible device.
As it transpires, this was actually really easy once I worked out what to do, so this isn't even a hack.
If you have the PDL354PBDMBTW or 41EPBDWCLM devices you can switch these over to zigbee mode by pressing the button 12 times (thanks to @ell249 for the tip).
After you press it 12 times it will take a few seconds then start flashing red. Then it takes another half minute or so to settle in and as long as your network permits joining it should show up as a device and join the network.
If you have problems, or you want to revert to BLE mode just do the standard factory reset by pressing the button 3 times quickly, then holding until the light flashes red slowly, then flashes red quickly. Make sure you hold on until it flashes quickly, otherwise it doesn't reset. This was the mistake I made and left me thinking I had bricked it.
Once you switch to zigbee mode, you can't connect to it via the Wiser Room app to do firmware upgrades and such. It appears that the zigbee mode is supported by the Wiser by SE app, but it seems like you need a Wiser Hub to do this. So far, I haven't tried to make support for OTA via zigbee2mqtt.
There are some other settings that the zigbee certification document say are supported that I haven't gone through and made show up in zigbee2mqtt. I think it supports LevelCtrl and other things, but I couldn't get them to work easily and frankly I was more interested in the on/off and brightness control than anything else.
The comprehensive advice on this website worked for me. I couldn't get my dimmers to pair and thought my controller was to blame, but no, all it took was some twiddling with the button.
Note that the red LED blinks fast to indicate the dimmer is reset - give it some time.
Mine paired without the need to reconfigure anything.
(https://fearthecow.net/projects/clipsal-wiser-updating-without-hub-zigbee-home-bridge-home-assistant/)
Option 1) Updating via Bluetooth
Download the Wiser Rooms app
Press 3 times, then press (a fourth time) and hold until the light blinks red very quickly. It will blink red slowly first. Keep holding. This switches from Zigbee to Bluetooth mode. Itโs not described in the documentation but does work.
Wait for the switch to reset into Bluetooth mode.
Press 3 times and wait for it to flash white for pairing.
Add the switch and pair it with the Wiser Rooms app on your phone.
Select the switch, and choose Settings -> Advanced -> Firmware -> Update.
Wait the 3min to update the software.
Factory reset the switch by pressing 3 times, then press (a fourth time) and hold until the light blinks red slowly. Wait for the reset.
Press 12 times to switch back to Zigbee mode. Wait.
Press 3 times to repair with Zigbee2MQTT.
Find the switch in Zigbee2MQTT and select reconfigure. This seems to intermittently be required and sometimes fail unless you restart Zigbee2MQTT. Iโm not sure whatโs going on here.