(EDGE Driver-Mc): Z-Wave Device Config Mc

Excellent work! And, yes, The ability to read and change associations would be great. :sunglasses:

I don’t know if this is what’s going on, but in the past there have sometimes been problems when the ST UI assumed that a value was a percentage, hence the limits from 0 to 100, but in fact it was just a numeric value.

You might also want to make sure that the field can accept negative values, as these are required for some zwave parameters. Temperature range is a common example. (Some manufacturers like Fibaro do use two’s complement values for negative numbers in unsigned fields, of course, in which case you will see very large values in the field.)

Tomorrow I will try to make a vid to change the limits. Today I am going to close the kiosk

and I will apply the solution for the negative values that I made in the zwave drivers

1 Like

Good evening Mariano. Could you increase the range of parameter values?. I have devices with parameters from 101 to 255.Thanks.

Please read the rest of the thread… Thats literally what they’re talking about…

2 Likes

Hello everyone

I have modified the presentations of the custom capabilities for Z-Wave Device Config Mc and they have been updated perfectly just by clearing the cache of the android app. This is good news.

I have set the limits shown in the default libraries for c.c. version 4 configuration:

--- @field public parameter_number integer [0.65535]
--- @field public size integer [0.7]
--- @field public parameter integer [-2147483648,2147483647]

Although the Size limit, i think, should be set from 1 to 7 since if you enter 0 it gives a fatal error because that value is not allowed.

WARNING For devices that use this parameter values ans sizes:

  • value: 0 to 65535 and Size: 2 Byte:

    • When Doing Get: for values ​​32768 to 65535 , you will see a negative value between -1 and -32768 (-1 = 65535 and -32768 = 32768 that has the device saved)
    • When sending the value you have to send a value between 0 and 65535 as the manual says
  • Value: 0 to 255 and Size: 1 Byte:

    • When doing Get: for values ​​128 to 255, you will see a negative value between -1 and -128 (-1= 255 and -128 = 128 that has the device saved)
    • When sending the value you have to send a value between 0 and 255 as the manual says

I put a link to the post to see if smartthings gives a solution

This is the version with the changes.

┌─────────────┬──────────────────────────────────────┐
│ Name        │ Z-Wave Device Config Mc              │
│ Version     │ 2022-08-13T09:42:28.107547483        │
└─────────────┴──────────────────────────────────────┘

UPDATE:
A fast and safe method to modify a parameter that is not affected by the problem of negative values and size:

  • Enter the value of the parameter to modify
  • Click on Get
  • It will show the value and the correct size that the device sends
  • Modify the value of the parameter that we want to change
  • Click on Send
  • Once it shows “New Action Click Select” press Get again and I will confirm that the value shown is the one you entered

Thank you all for the comments of the errors to improve it

1 Like

What are some use cases for this driver?

If you have a Z-wave device paired with an edge driver and it does not have all the configuration parameters available in preferences and you need to change some of those that are not shown in the driver preferences

4 Likes

Same use cases as the old Groovy Zwave Tweaker.

Many zwave devices have configurable parameters that are not exposed in the official edge drivers. Since zwave parameters are stored in the firmware of the device, if there’s a parameter you want to set that is not available through the official edge driver, you should be able to switch temporarily to this edge driver, set the parameter, then switch back to the original driver for everyday use. :sunglasses:

See the Fibaro multisensor for a good example of a zwave device with a lot of advanced parameters:

2 Likes

That’s precisely what Mariano just said :sunglasses:

@JDRoberts I’m assuming this would work for something like the zooz switches?

This does not appear to be working on an Aeotec TriSensor, I woke up the device and tried to get and change the parameters, but it does not appear to have done anything. It’s an outdoor mounted unit and it is hot now so I will play with it in the morning and report back.

Many battery powered zwave devices only accept configuration changes at the time they are joined to the network unless you do what is called a “forced wake up. “

And still others have a fairly long waiting period in between when they will accept configuration changes. All of this is done to save battery life.

Normally, the Aeotec trisensor only accepts configuration changes every four hours. So even if the edge Driver does a forced wake up (I don’t know whether it does or not) it could be four hours before you see the changes take effect.

Sometimes the manufacturer will have included a forced wake up button on the device itself, and then holding that in will cause the device to immediately process any pending changes. But you have to check the user manual to find out if there’s a specific tap pattern or length of time you have to hold it.

The Aeotec trisensor does have a button of this type, it’s described in the user manual.

So it’s possible that your changes are still pending and just haven’t taken effect yet.

As always, the first rule of home automation applies: “the model number matters.“ You’ll have to check the user manual for any batterypowered device you want to use this edge driver with to see if there’s anything special you need to do to get the changes accepted. (since Mains-powered devices don’t have to worry about battery life, they will generally accept a reconfiguration request at pretty much any time.) :thinking:

Here’s the old Groovy DTH, where you can see the same issue is being discussed. There won’t be any difference between an edge driver and a groovy DTH in this regard, the issue comes from the way the device itself is manufactured.

1 Like

New Update for Edge driver Z-wave Device Config Mc:

Improvements and changes:

  • The Device Parameters configuration function is maintained
  • Added the presentation of the fingerprint and end points information (same as the Z-wave Thing Mc)

  • Added scanning function of all the values ​​of the device configuration parameters (1 to 255). You can choose the search range. (For the 255 parameters it takes about 15 or 20 sec to process)

NOTE:
Remember that the default libraries only understand signed integer values and therefore negative values can actually be the 2’s complement of the actual value on the device. You have to check with the device manual the range of values of these parameters to know the real value stored and the one we have to send when changing it. (See this Post)

  • These functions are accessed from preferences. Choosing one of them changes to a specific profile for that function. This requires that to see the new profile you have to close the device and reopen it in a few seconds.

  • In the Device Parameters configuration function I have added a button to execute the Get, Send or Select action chosen in the list. This is because the app command handles selecting values ​​from the list has changed and it no longer send repeated commands.

Update:

  • Added Visibility to false to all events so they don’t show up in device history

As I have not seen any problems being updated, the driver update will be done automatically, but you will have to clear the app’s cache to see the new profiles correctly.

New version is this:

┌─────────────┬──────────────────────────────────────┐
│ Name        │ Z-Wave Device Config Mc              │
│ Version     │ 2022-08-18T20:03:38.502231317        │
└─────────────┴──────────────────────────────────────┘

I’ll be adding more features like, association groups as I learn how to do it. I don’t quite understand how association groups work with other devices and searching for information in libraries and documentation is tedious.
Only know how made the device association group with Hub

If anyone knows and wants to help, they are welcome.

4 Likes

Zwave association is actually very simple.

The trigger device is given permission by the hub to send “basic” commands directly to a specific target device without having to tell the hub about it or go through the hub.

“Basic“ has a very specific meaning in zwave. We can discuss what it is if you want, but it’s not important to know the details. But just think of the most basic function of a device class. For an on/off switch, that’s turn on if you are off, turn off if you are on. For a multilevel switch like a dimmer, there will be a level value sent along with the basic command to tell it what level to go to.

A trigger device will be given permission to send the basic command to up to five target devices.

The target device actually won’t know anything at all about the fact that the association was set up. It just gets a command over the network and then it acts on that command.

The trigger device will just keep a list of the device IDs of the target devices that it has been given permission to send a basic command to.

Use Cases

The classic use case for Z wave direct Association is having a motion sensor turn on a light. usually you want this to be super quick, so with z wave association as soon as the sensor detects motion it can send the basic command straight to the light switch without having to go through the hub.

This is a fairly primitive action. There’s no if/then filters that you can put on it, no time of day, no additional conditions. It’s just detect motion, send the basic command.

Another popular use case is for the auxiliary switch in a two-way set up (called a three-way set up in the US). In this situation the auxiliary switch is the trigger device and the master switch is the target device. Turn on the auxiliary, it sends a basic command directly to the master so it also turns on. Turn off the auxiliary, the master turns off.

Association Groups

A trigger device will be allowed to have multiple “association groups“ so it can send out a different basic command under different conditions. It’s just up to the manufacturer, they might only have one association group, they might have a dozen.

For example, the Aeotec multisensor seven has 11 association groups.

Product Association Capabilities

They use association group 2 to hold the list of device IDs for the targets that will get a command when motion is detected.

They use association group 3 to hold the list of device IDs for the targets that will get a command when the temperature is higher than a parameter set by the device owner.

They use group 7 to hold the list of device IDs for the targets that will get a command when The measured light level is higher than a parameter set by the device owner. And so on.

But note again that the target devices have no idea they are even in this group. And the only thing the trigger device is keeping is the list of IDs by association group. it’s a really simple structure.

And it’s up to each device manufacturer to decide how many association groups their device will use and what they will use each group for.

Lifeline group

Beginning with zwave plus, Z wave alliance changed the specifications and now every Z wave plus device must support association and it must use association group one as the “lifeline group“ to send messages to the hub. Older devices don’t have to do that.

queries

When you query a Z wave device it will tell you if it has any association groups set up and what target device IDs it has in each of those groups. That’s really all there is to it. You’ll get the list of groups and the list of IDs already stored in each group.

You’ll be able to send an association group set command if you want to change which target device IDs are stored. When you set up an association, you literally just send the list of target device IDs that this particular trigger device is allowed to use for a specific association group.

And remember that those association groups are decided by that manufacturer for that model. Association group 3 might be used for a completely different purpose in a Fibaro device than it is in an Aeotec device. And a target device can be in totally different association groups for different trigger devices and, again, the target device has no idea it’s even in an association group at all.

Endpoints

Some Z wave devices have only one network device ID, but have multiple endpoints. A power strip is a classic example.


To address these endpoints, you typically use a comma. So if the device ID of the power strip is 03A, The endpoints would be 03A,1 etc.

It might be that you only want to set up an association with the third socket, for example. So you would set the target as 03A,3

Execution

Once the trigger device has the list of IDs it is associated with, that’s all you have to do. You don’t have to write a routine, you don’t have to do anything with the Target device. The firmware in the trigger device will automatically Send out the “basic” command to the target devices when the trigger condition is met. So literally the only thing the device owner has to do to make association actions happen is set the list of target device IDs in the trigger device. Everything after that is handled by the trigger device. :sunglasses:

OK, those are the essentials, if there’s anything else you need, just let me know.

2 Likes

Thanks for your explanations @JDRoberts

This is fine and I more or less understand it.

The difficult thing is to find in the default LUA libraries and in the documentation how to make the code to create the functions to send the commands and their correct arguments and formats that those default libraries accept to perform the set, get… actions.

When I added the Groups functions in my Zigbee drivers, @veonua was who explain me how to make the lua code to set, delete, read the groups. I was not able to find it in default libraries.
Thanks agains @veonua

2 Likes

we need to thank an unknown ST engineer who spent some extra time and added/kept the API.

luckily, LUA code is opensource and
I just made a full-text search in the Lua libraries and luckily found these endpoints are not disabled.


my other research was about child devices, unfortunately, it’s available only for LAN and it requires decompiling C libraries to hack it. One flag creates so many complications

2 Likes

Is the source code fo this available on Github maybe?

doesnt have it.
Would be great to see how you accomplished things. Thanks!

Hi @Mariano_Colmenarejo
Need help to set up my garage door aeotec gen 5 . I want to remove all alarm .
I already did it with zwave tweaker , but I have lost all configuration .

So if you help me with the first one ,lets say 0x20(32) configure the default Start up ringtone , I want to put disable and so on for other alarm .

Merci !

I would do this:

  • Switch to Z-wave Device Config Mc driver. Remember that you can lose some routines that you have, although I believe that they have resulted in the last update
  • Go into preferences and choose Device parameter scan. close the device and reopen it to see the new profile. You may need to clear the cache the first time.

  • It will show by default the search from parameter 1 to 255

  • Click on execute action (the labels now go wrong!!!) , wait for the scan to finish, it may take up to 30 seconds

  • You will see the values ​​and the size of all the parameters of your device. You can make a capture to have them.

  • Open preferences and choose Device Parameter Configure

  • Write the parameter number to see the parameter 0x20 you have to write it in decimal (32)
  • In command (the labels now go wrong!!!) choose “Get”
  • Click on Execute action (the labels now go wrong!!!) and it will show you the size and the current value (1)

  • Change the parameter value to (0)
  • In command (the labels now go wrong!!!) choose “Send”
  • Click on Execute action (the labels now come out wrong!!!) and it will send the new value of the parameter to the device

  • Choose “Get” again and press execute action to check the new value (0) is set
2 Likes