How to load/save a custom DDF?

I’ve bought a few of the Aqara Smart Radiator Thermostat E1 devices and I’d like to use the custom DDF on that thread while I wait for the PR to be merged and released.

If I right click the device, “Edit DDF” and then load the custom file, how do I save it and make it stick? Every time I go back to edit the DDF it’s reset to the default.

Hello, so the working mode will depend of the OS you are using, but I think the better way is not using the “load” feature.

All DDF provided directly with deCONZ typically reside in /usr/share/deCONZ/devices/ on a Linux system and are loaded first. However, files residing in the home directory of the user running deCONZ (e.g. /home/<DECONZUSER>/.local/share/dresden-elektronik/deCONZ/devices) will override the pre-packaged files to allow users to amend and keep their own files if desired.

So on classic OS, you just need to create a text file called what_you_want.json with the DDF contain in a “devices” folder.
Them restart deconz, long story but it’s the fastest way to be sure the DDF will be loaded.
Them just re-include the device.

On next time, you can use the editor to edit the DDF, and use the fonction “hot reload” but the problem is for battery device that can’t react immediatly.

If you are using HA, you have an hidden persistent folder How to add/edit a DDF on Home assistant using text editor?

One time the DDF is on the good folder it need to be used automatically when you make “edit DDF”, else there is a problem in the “device check” or a typo in the DDF

1 Like

Perfect! Exactly what I was looking for.

I already had the json in a folder mounted by docker, that’s where I was loading it from, but mounting it in the place as mentioned in that document sorted it out.

I created the missing structure inside the users home directory first, I’m not sure if Focker would redcu4se up the tree filling in missing directories or not?

      - /home/stuart/home-assistant-config-v3/deconz:/home/deconz/.local/share/dresden-elektronik/deCONZ/
      - /etc/localtime:/etc/localtime:ro