Announcing new program for configuring zigbee devices

Check out my new program at GitHub - SoundOfMind/configuration_engine: Deterministic configuration management for home automation devices. Capture known-good device configurations as profiles and apply them to similar devices. · GitHub . If you have devices with a lot of configuration parameters like Inovelli, it allows you to capture and save a profile from your device with all it’s settable parameters. Then you can apply that profile to clone another device. It has features to help manage your library of profiles and analyze your devices. The more complicated your devices are, the more you will enjoy this.
Currently requires a windows computer and Home Assistant with Mosquitto and Zigbee2MQTT. All are invited to use it and it would be great if it could be tested with Mac or Linux, as it is designed to be portable. It could be expanded to use Matter or ZWave if folks have the capability and time.

This is really cool!

I’ve been looking for something like this for a while. I mean really the problem is that Zigbee2MQTT lets you configure things on the “About,” “Settings,” and “Settings (specific)” tabs of a device, but it doesn’t let you configure things on the “Exposes,” “Bind,” “Reporting,” or “Scene” tabs of a device, for some reason. Right now, I’m using Inovelli Bulk Configuration (Zigbee2MQTT), which works great for Inovelli Blue devices, but it only works for Inovelli Blue devices. It’d be great to have something a little more generic for other devices (or to replace that Blueprint, for consistency).

The core architecture seems to be similar to a k8s Controller (which is really just a specific type of control loop). Dunno if you’re familiar with that.

Something that’s a little unclear is whether you can apply multiple different profiles to a single device. From this line here: configuration_engine/README.md at 7e28051987d4055536715ac0274b55bd44c64bd0 · SoundOfMind/configuration_engine · GitHub, it sort of seems like you can. But it’s not explicitly called out anywhere. Some examples of where I find that useful:

  • Every switch should have the same “double tap is maximum brightness/speed” behavior.
  • Every switch should have the same button press delay.
  • Every mmWave switch should have the same z values (since all of my switches are at the same height).
  • Etc.

I’d imagine that each of those could be a profile, and then you apply them to multiple devices. Is that how it works?

In any case, if you could provide an image for it, I’d be down to give it a try.

Hi! Glad you like it. The idea is to configure all parameters for a device as you wish in z2m. Then capture that device as a profile - perhaps as your base dimmer file. That base file will have everything that will be universally applied (e.g. double click behavior) to all dimmers with identical model numbers. Then apply the profile in a kitchen dimmer. Change minimum brightness or whatever with z2m. Capture this new profile for use with other kitchen dimmers.

If you have a new device to configure, apply the best fitting profile, use z2m to fine tune and then capture the new profile, creating a library.

When you apply a profile to a device, you overwrite all writable settings which are different in the device vs. the profile, except 3-way and status, meaning you gain nothing by writing two different profiles.

Rules are enforced within Configuration Engine regarding properties that shouldn’t be written, such as bindings. Analyze can help you understand what parameters will be applied. After you have applied a profile to a device, make changes like 3-way or binding, that are local, with z2m.

One important goal is to make Configuration Engine as general as possible. Testing with various setups will help discover bugs to squash.

Ah, I see. That probably wouldn’t work for me then. If you have to overwrite all settings on a profile, it sounds like every VZM32-SNs would have to have a different profile (since every room is differently shaped and the switches in different positions). If that’s the case, I might as well manage them individually.

I’ll keep an eye on this over time to see how it goes, though!