Migrating from "Generic thing" to "HomeAssistant Component" for zigbee2mqtt devices

I seem to remember reading that the support of HA-format has improved recently, so it is now preferable to the “Generic” MQTT thing approach for use with zigbee2mqtt (Z2M).

I am therefore considering migrating all my 20+ devices, but wonder what is the best way of doing this.

First, do I assume correctly that once I turn on HA-format in Z2M, then Z2M stops using the generic format, so all my current items stop working?

Secondly, once OH discovers the HA-formatted things, should I just add them as Things and then try to connect my current Items to them, or would it be better to delete the current items and generate new ones from the new things? (But would this allow me to keep the same item IDs, so I don’t break any scripts?)

I don’t think it would stop sending the generic format, but you could give this a try and see for yourself.

Either way is fine. Assuming you’re using UI items, you could just keep the item, create new links, and just use the Health Check to delete all the old links for you.

Or you could delete the items and accept the generated item names by the UI, that way it’s easier to deal with a similar situation in the future.

When I migrated I kept the same items and just updated the links, but there does appear to be a bug(?) where the channel link name changes between reboots of openhab so it can be kind of annoying. More details here: Problem with channels on mqtt things dicovered by homeassistant discovery since oh4.3 - Add-ons / Bindings - openHAB Community

I’ve played around a bit with HA components (versus generic) in Zwave-js to MQTT. Assuming it is the same for Zigbee both the generic link and the HA config link are the same and both active.

Right now, I have a number of duplicate items that I have been monitoring. Haven’t decided to migrate, mostly because if it is not broke… The non-HA items are using generic Mqtt.