ZWave JS: Changing/adding drivers for specific devices

I’m just getting started with HA, and I’m gradually figuring things out, but I’m completely stumped on a few Zwave aspects.

  1. I have a Qubino flush-mount RGBW dimmer, and ZWave JS only presents me with a binary switch and a dimmer slider (no color wheel). Also, it’s possible to use this device as 4 individual dimmers. So, I’m interested in changing to a different driver for it, but I haven’t found anywhere where I can select from different drivers for a given device (or even where I would put additional drivers).
  2. I also do some projects with the Z-Uno, which is a Zwave-capable Arduino, where it can advertise itself as switches, sensors, etc. Clearly, the driver required depends upon what type of device(s) you choose to have the Z-Uno pretend to be, so I need to be able to change it. I’ve searched for ways of modifying drivers, but all I’ve found were instructions on how to contribute to the central repo. I just want to be able to tweak my local store of drivers.
  3. Lastly, I’ve got some Zwave devices which ZWave JS is labeling as “switch”, but I’ve got some automation blueprints which only let me select from the “light” platform, so I’d like to change the platform that ZWave JS is reporting them as.

Does anybody have any advice on where to look (on the HA OS) to start tweaking ZWave JS drivers?

There’s no such thing as a “Z-Wave JS driver”. Sounds like you’re coming from Smartthing or Hubitat? Those concepts do not apply to Z-Wave JS or HA. Z-Wave JS and HA support devices according to the Z-Wave spec. There is very little product-specific code, usually to workaround problematic devices.

I have a Qubino flush-mount RGBW dimmer, and ZWave JS only presents me with a binary switch and a dimmer slider (no color wheel).

To see the color wheel you have to turn on the light first, did you try that?

Also, it’s possible to use this device as 4 individual dimmers. So, I’m interested in changing to a different driver for it, but I haven’t found anywhere where I can select from different drivers for a given device (or even where I would put additional drivers).

Did you configure “Parameter no. 14 – 4 Dimmers mode” to enable the multiple dimmers? Did you exclude and re-include it after changing that parameter? After doing so, there should be 4 or 5 light entities.

I also do some projects with the Z-Uno, which is a Zwave-capable Arduino, where it can advertise itself as switches, sensors, etc. Clearly, the driver required depends upon what type of device(s) you choose to have the Z-Uno pretend to be,

HA will create entities based on the command classes the device advertises support for. If you need a switch, then the device would need to implement Binary Switch CC, etc. and HA will create entities accordingly.

Lastly, I’ve got some Zwave devices which ZWave JS is labeling as “switch”, but I’ve got some automation blueprints which only let me select from the “light” platform, so I’d like to change the platform that ZWave JS is reporting them as.

You can’t change entity platforms. You could wrap the switch into a light switch, or just modify the blueprint to use a switch domain.

@freshcoast Coming from ST, I was wondering the same so thank you for the information.

Speaking of platforms… why does HA assign the light platform to some of my in wall Jasco outlets? I believe it is not the only anomaly but it surely is the most common one in my system.

You’d have to provide more info about the product. If it is represented as a light entity, then it must support dimming functionality.

All my Jasco 43102 outlets show up as lights:

{
  "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4388, maximum_buffer_size=82, maximum_incoming_transfer_size=255, server_mask=11264, maximum_outgoing_transfer_size=255, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
  "endpoints": {
    "1": {
      "profile_id": 260,
      "device_type": "0x0100",
      "in_clusters": [
        "0x0000",
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0006",
        "0x0b05"
      ],
      "out_clusters": [
        "0x000a",
        "0x0019"
      ]
    },
    "2": {
      "profile_id": 260,
      "device_type": "0x0103",
      "in_clusters": [
        "0x0000",
        "0x0003",
        "0x0b05"
      ],
      "out_clusters": [
        "0x0003",
        "0x0006"
      ]
    },
    "242": {
      "profile_id": 41440,
      "device_type": "0x0061",
      "in_clusters": [],
      "out_clusters": [
        "0x0021"
      ]
    }
  },
  "manufacturer": "Jasco Products",
  "model": "43102",
  "class": "zigpy.device.Device"
}

EDIT: I created an issue on github… Issues · home-assistant/core · GitHub

That’s not a Z-Wave device, so my comments regarding the Z-Wave JS integration wouldn’t be applicable.