Duplicate devices with Z-Wave JS and MQTT but I'd like to leave both enabled?

I’m using zwavejs2mqtt (docker container) with the Z-Wave JS integration but I also have the MQTT integration enabled so I’m seeing duplicate devices.

I’ve searched for solutions and many people suggest disabling one of those integration but I’d like to use both if possible since they both provide benefits and other features.

Is this possible? Are there other solutions or recommendations?

Yes, since that’s what you are doing.

I’m not following what you are asking tho.

are you asking how to use both websocket and mqtt but not have duplicate sensors?

If so then no, you can’t do that as far as I know.

you are using both of the integrations. You just have to accept the duplicate sensors if you want to use both communication methods.

what does one provide that the other doesn’t?

Either disable MQTT discovery on the Home Assistant side or use a secondary MQTT broker to publish to (one that isn’t connected to HA), otherwise there’s no options I can think of.

Thanks … It looks like I missed the [MQTT Discovery] checkbox inside Z-Wave JS. I’ve had this enabled so Z-Wave JS was using Home Assistant MQTT Discovery AND the Z-Wave JS integration.

Another quick question…

What naming convention is everybody using for their Z-Wave devices?

I’ve been naming them with something like “Ceiling Fan” and setting the location (in Z-Wave JS). However, Home Assistant assigns the name without the location so it becomes “light.ceiling_fan” instead of “light.living_room-ceiling_fan” (or something more description in the case of multiple ceiling fans, etc)

“Location Ceiling Fan” in zwavejsmqtt becomes switch.location_ceiling_fan in HA

I don’t use locations in zwavejsmqtt yet.

That is exactly what I want but it doesn’t seem to be working:

You can see it’s named [Ceiling Fan] and the location is [Living Room].

I’ve deleted the Z-Wave JS integration and re-installed it. During setup it asks for the area of each device:

image

I’ve selected [Living Room] as you can see.

However, the entity created is [fan.ceiling_fan] and not [fan.living_room_ceiling_fan]:

Diagnostic information from Z-Wave JS integration:

Driver Version:  10.0.4
Server Version:  1.22.1

No

You put “ceiling fan” as name

Put “Living Room Ceiling Fan” as name and you will get fan.living_room_ceiling_fan

Spaces are converted to underscore

You may need to reload integration in HA for it to be changed but I forget how that works. It’s much easier if it is properly named when added to zwave.

Oh, right… If I rename the entity in Z-Wave JS so the name itself contains the location that would work.

I’ve also found that you can specify the entity naming template in Z-Wave JS but only if MQTT Discovery is enabled. :frowning:

No entity id’s (that I’m aware of) are based on areas. if you want them to reflect the area in the entity_id then you need to name them correct in zwavejs or rename them afterward in HA