Logic Group ZDB5100 Matrix Switch

Hi Jeppe,

Yes, I have all the parameters in the dropdown list.

What I found was, that at the time when I added the device to my zwave network, the configuration provided by openzwave was not correct. I didn’t get the dimmer entity, etc. So I started tinkering around and with trial and error ended up with the config I’ve sent you. Then I manually edited the xml file to replace the generated config. And I got it working. It’s a hack for now, but at least it works.

You can change the LED color by sending a service call zwave.set_config_parameter with the following payload:

node_id: 40
parameter: 22
value: 2133996032

Node id is the id of the zwave device. Parameter is the config parameter. #22 is for the pushbutton 1 ON color. Value is the color as you have described. I’ve put white in the example above. This will not turn on the LED, but will store the value for the color. After this, you need to turn on the corresponding switch to actually turn on the LED. Or you can just simply press the button. You can also set a color for the OFF state. I use that for night light :slight_smile:

I use it like this to change the color based on automations. But you can do it with the Zwave configuration UI and choose the parameter from the dropdown list.

Hope it helps.

Marton

1 Like

Hello

what am I doing wrong I have experience from 4 other zwave controller.
and is now testing home assistant.

as I understand when adding a new zwave device either there is made a new xml file pr device ?
or should all be in the zwcfg_xxxxx.xml ?

either way I don’t see any config details from the matrix zwave I have tried both the secure and normal inclusion.

in the below link there is made a xml file is home assistant supposed to download the data or?

https://github.com/OpenZWave/open-zwave/pull/1906

*update found the xml file but put in the data from paste bin not helping

Hi Marton,
I have used your zwfg*.xml as base for my own zdb5100 device and got a good deal of it working - it was a great help thanks.
I however still struggle to get the multi level switch working (the dimmer) - I have already checked the command class 38, it is exactly as yours and other examples I have found on the web. Can you give a few guiding points on what you did to get the light dimmer level entity to work for you?

Hi Koburg,
When you include the device, it will automatically add a node in your zwcfg_.xml file. You can use configurator (now file editor) in your “config/” directory.
Inside your zwcfg_
.xml you will need to add in more CommandClass - specifically id 112, to have further configuration items in your zwave UI
You can however use the one Marton has uploaded in pastebin, it is my opinion the most complete version.

Hi @JanQ,
I’m glad you got it working.
It was a while back when I did this, but I’ll try to remember :slight_smile: So after you add the config, a level/dimmer entity should show up. If you want to use the buttons on the device itself, you need to set up a few parameters in order to configure how the buttons will operate.

It’s parameter number 1, I think, that tells the device, what push button is responsible for what.

Hi @marton

Any notes you have, will be appreciated :slight_smile:

I have used your config file as base, but I can only get the 4 switches to show, assuming this is the commandclass id:37.

Here is a snippet from my config, showing commandclass id37 and 38, assuming that 38 is the multilevel switch.
Funny thing is, I can see the level variable in OZWCP and set it through the OZW control panel, so it is there.

<CommandClass id="37" name="COMMAND_CLASS_SWITCH_BINARY" version="1" request_flags="5" issecured="true">
			<Instance index="1" endpoint="1" />
			<Instance index="2" endpoint="2" />
			<Instance index="3" endpoint="3" />
			<Instance index="4" endpoint="4" />
			<Value type="bool" genre="user" instance="1" index="0" label="Switch" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
			<Value type="bool" genre="user" instance="2" index="0" label="Switch" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
			<Value type="bool" genre="user" instance="3" index="0" label="Switch" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
			<Value type="bool" genre="user" instance="4" index="0" label="Switch" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="False" />
		</CommandClass>
		<CommandClass id="38" name="COMMAND_CLASS_SWITCH_MULTILEVEL" version="1" request_flags="1" after_mark="true" issecured="true">
			<Instance index="1" endpoint="5" />
			<Value type="byte" genre="user" instance="1" index="0" label="Level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
			<Value type="button" genre="user" instance="1" index="1" label="Bright" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
			<Value type="button" genre="user" instance="1" index="2" label="Dim" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
			<Value type="bool" genre="system" instance="1" index="3" label="Ignore Start Level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="True" />
			<Value type="byte" genre="system" instance="1" index="4" label="Start Level" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
			<Value type="byte" genre="system" instance="1" index="5" label="Dimming Duration" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="255" />

Figured it out.

It is where the node is defined.
It has to be a “1536” in devicetype and generic=17

This must map to some sort of device template in OZW - this goes beyond what I know and an assumption from some other messageboards that was discussing attributes on certain devicetypes, e.g. you could change devicetype to force it to look like an e.g. cover.

and thanks marton for your file, would never have put all this together without your example.

<Node id="2" name="" location="" basic="4" generic="17" specific="1" roletype="5" devicetype="1536" nodetype="0" type="Basic Wall Controller" listening="true" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" query_stage="Complete">

HA doesn’t use the devicetype for anything, so that part doesn’t matter. What does matter is the generic and specific types.

Generic type 17 means GENERIC_TYPE_SWITCH_MULTILEVEL, which is used for dimmer switches (and others). If HA sees that generic type and the MULTILEVEL command class, it will create a light entity.

Was your generic value originally 24? If so, that means GENERIC_TYPE_WALL_CONTROLLER. The only thing HA will create for that is a normal switch. You’ll notice the light entity discovery code is missing WALL_CONTROLLER. It’s a simple fix really, just add the GENERIC_TYPE_WALL_CONTROLLER value to the light’s DISC_GENERIC_DEVICE_CLASS list. The specific type (SPECIFIC_TYPE_POWER_SWITCH_MULTILEVEL or 1) is already listed.

Sorry for the late reply. Glad you managed to figure it out.

Awesome, thanks for the explanation, now I get it, thanks

Hi All.

I’m new to this but has any one figured out or does any one know how to send a Command Class Switch Color Set command to the switch?

I need to update the color of the led as described in the manual with an automation.

Just call the zwave.set_config_parameter from your automation as described above with a payload like this:

node_id: 40
parameter: 22
value: 2133996032

node_id is your zwave device’s id. paramter is the config value. 22 is for LED1 ON color. value is the color.

Hi Marton

Thanks for the reply. I managed to change the color of the led but what i want is to send a command that turns the led on until next press or make it blink. As I understand that can be accomplished with the command class switch color set command as described ind the manual. Its also posible to do in fibaro as described in this link (In danish languages) https://logic-group.com/2019/06/24/forstaa-den-udvidede-lysdiodestyring-i-matrix-zdb5100/ You can for instance make it blink like an alarm.

So is it posible to send a raw command class command to the switch and what is the formt?

Best regards
Jesper

Hi Jesper,

That actually I don’t know. I use the switch entities to turn on the LEDs. I have 4 switch entities for the 4 LEDs and 1 light entity for the dimmer. I change the color then turn on the LEDs. Maybe you can use the same method?

Best,
Marton

Thanks again Marton

That’ll probably be how i have to do it. It seems that the “Command class switch color” isn’t implemented in Open z-wave yet. I’m trying to get it to turn the LED in the switch on when a Hue light bulb is turned on and also to control that bulb. Last atempt it somehow ended up in some kind of loop turning on - turning off with a few seconds apart. :sweat_smile: :sweat_smile:

That explains it then :slight_smile:

I’m doing the opposite. When no lights are on and it’s dark, I turn on one of the LEDs to 50% brightness as a night light.

Well… I was wrong. :sweat_smile:

(For others trying to change colors of the LEDS without a static configuration)
As it turns out, the COMMAND_CLASS_SWITCH_COLOR command is just called COMMAND_CLASS_COLOR in my xml file. In my case The multi level switch commandclass automatic makes a instance for the internal dimmer upon first installation. So if you change the endpoint to one of the LED buttons instead of the dimmer, you can change the color of the LED light of that button. The light and color is temporarily as decribed in the product manual and returns to the setting from the config upon next press. How I get HA to show the color selector for the binary class swithes will be the next to work on. That and how to use in a automation :smile:

Yay!! I can now control the LED’s from Home Assistant.

You have to add a bit extra to the zwcgf.xml file like extra entries for multi level switch.

This is mine:
https://pastebin.com/FG3nnBLN

Using the service light_turn_on like this i can now change the color of the leds:

- id: llmor
  alias: Stair morning on
  trigger:
  - at: '05:00'
    platform: time
  action:
    - service: light.turn_on
      data:
        entity_id: light.ledliststair
        brightness: 130
        rgb_color: [255,0,0]

Only thing i still needs to figure out is how to use the warm white value as decriped in the product manual with the rgb_color for making the led flash.

Hope this helps others.

1 Like

Hi Jesper

That sounds awesome. Could you perhaps elaborate a bit on how you actually control the LEDs? I have added the extra entries from your pastebin. However, when I check under dev tools/services I don’t have any entities from the switch that can be controlled via light.turn_on

Have I misunderstood the purpose here? I’m looking for a solution when I can turn on/off the various LEDs with the color of my own choice.

No thats the thing I managed to do. With the additions in the config file.

Did you remember to shut down HA befor you made the changes, started HA, healed the z-wave network and then again a HA restart. (beside the shutdown before changes, I dont know i all this is nessesary but sometimes it worked for me :sweat_smile:)

else can you paste a copy of your config file?