Does DDF force/overwrite intervals?

I just paired a SONOFF SNZB-02P and tried to set the reporting interval after a few minutes. Finally it works! (it does not on the SONOFF SNZB-02 without resetting it…).

So I set the reporting intervals and everything looked good. Then I stopped the deCONZ GUI and started the headless version again. Now it looks like my reporting intervals were overwritten again with the defaults from the DDF. Is this true? Is this by design? Can I stop this?

Yes, the DDF core is able to set different setting than the one you set on the GUI. It’s normal, it works like a watchdog.
Why you don’t change them on the DDF ? The defaut settings are not good ?

You are speaking about the refresh.interval (not used in normal mode) or the setting in bind/report ?

Ah, interesting. I thought DDF is more like a template for initial settings.

I am talking about the bind/report. The default is way too sensitive. It jumps from eg 18 to 18.1 and back a second.

time                           age_secs battery id  name               source    temperature type
----                           -------- ------- --  ----               ------    ----------- ----
2024-02-12T15:36:50.452488697Z 0        100     141 Sensor Waschkeller websocket 18          ZHATemperature
2024-02-12T15:35:55.259750795Z 0        100     141 Sensor Waschkeller websocket 17.9        ZHATemperature
2024-02-12T15:35:45.221564956Z 0        100     141 Sensor Waschkeller websocket 18          ZHATemperature
2024-02-12T15:35:40.229789754Z 0        100     141 Sensor Waschkeller websocket 17.9        ZHATemperature
2024-02-12T15:35:35.199961177Z 0        100     141 Sensor Waschkeller websocket 18          ZHATemperature
2024-02-12T15:35:30.169920959Z 0        100     141 Sensor Waschkeller websocket 17.9        ZHATemperature
2024-02-12T15:35:05.109892928Z 0        100     141 Sensor Waschkeller websocket 18          ZHATemperature
2024-02-12T15:35:00.127578275Z 0        100     141 Sensor Waschkeller websocket 17.9        ZHATemperature
2024-02-12T15:34:45.041184317Z 0        100     141 Sensor Waschkeller websocket 18          ZHATemperature
2024-02-12T15:34:35.030558962Z 0        100     141 Sensor Waschkeller websocket 17.9        ZHATemperature
2024-02-12T15:34:30.000018792Z 0        100     141 Sensor Waschkeller websocket 18          ZHATemperature
2024-02-12T15:34:19.980955366Z 0        100     141 Sensor Waschkeller websocket 17.9        ZHATemperature
2024-02-12T15:34:14.995921476Z 0        100     141 Sensor Waschkeller websocket 18          ZHATemperature
2024-02-12T15:33:54.932229502Z 0        100     141 Sensor Waschkeller websocket 17.9        ZHATemperature
2024-02-12T15:33:49.880491476Z 0        100     141 Sensor Waschkeller websocket 18          ZHATemperature
2024-02-12T15:33:39.852100519Z 0        100     141 Sensor Waschkeller websocket 17.9        ZHATemperature
2024-02-12T15:33:29.821073116Z 0        100     141 Sensor Waschkeller websocket 18          ZHATemperature
2024-02-12T15:33:24.80995885Z  0        100     141 Sensor Waschkeller websocket 17.9        ZHATemperature
2024-02-12T15:33:19.799674727Z 0        100     141 Sensor Waschkeller websocket 18          ZHATemperature
2024-02-12T15:33:14.854081646Z 0        100     141 Sensor Waschkeller websocket 17.9        ZHATemperature

I changed the DDF of SONOFF SNZB-02 to fix this for me. But I missed the update for this DDF because I overwrote it.

{
  "bind": "unicast",
  "src.ep": 1,
  "dst.ep": 1,
  "cl": "0x0405",
  "report": [
    {
      "at": "0x0000",
      "dt": "0x21",
      "min": 60,
      "max": 600,
      "change": "0x00000064"
    }
  ]
},    {
  "bind": "unicast",
  "src.ep": 1,
  "cl": "0x0402",
  "report": [
    {
      "at": "0x0000",
      "dt": "0x29",
      "min": 60,
      "max": 600,
      "change": "0x0000001E"
    }
  ]
}

What about additional bindings? I bound 2 of my SONOFF SNZB-02 to 2 Ubisys thermostats. Would deconz remove the bindings because they’re not in the DDF if it could?

Honneslty, I think you can submit a PR for the change be difinitive, it can be not valided, but I m agree with you, fast report is realy bad, almost for battery device. Most of time, values are set by defaut, fastly (and probably without test sometime), If you have better value and logs to prove the utility, I think you have better one than the defaut ones ^^.

I changed the DDF of SONOFF SNZB-02 to fix this for me. But I missed the update for this DDF because I overwrote it.

Ha yes, if you want to custom a DDF, you need to put it in an “user” devices folder, else it will be overwrited at every deconz update. The procedure depend of OS.

What about additional bindings? I bound 2 of my SONOFF SNZB-02 to 2 Ubisys thermostats. Would deconz remove the bindings because they’re not in the DDF if it could?

No, deconz will look at DDF, and wait for reports, if it see a missing report (present in DDF but not received), or with bad timing, It will reconfigure it according to DDF value.
If the bind was done using the GUI, it will be not visible in the DDF, so the “watchdog” will not monitor it and keep it untouched.

That’s what I did. And because it just works I did not notice the DDF was updated. I missed at least this commit: Add the SNZB-02P variant of the sensor to the DDF (#7422) · dresden-elektronik/deconz-rest-plugin@581319d · GitHub. My SNZB-02D got my own DDF while SNZB-02P did not (as expected)

I created a pull request with my settings.

But I still think it should be possible to exclude devices from this “watch dog” functionality. It’s total valid to have this on by default - but it should be possible to have different settings for different devices of the same type. Custom DDF matcher for eg the MAC Address might help - but create another DDF just for one device?

It is, DDF are working by device, so you can have different setting on a Xiaomi temperature sensor than on a Sonoff one, but we are forced to set a defaut value. And you are right, users can need different settings, but it’s important to set a defaut “realistic” value. An user may want a 1 s report on a plug, but imagine the result on an user with 20 plugs, with tension, current, power and consumption.

Seriously this device is a temperature sensor, and a battery one, no need so much reports, it’s useless spam.

Sensors haven’t the same precision, and some of them are not on battery, so it’s a realy a setting that depend on device.

That not really what I meant.

I now have a few of those SNZB-02P. One is in the attic. There won’t change much so it’s ok to just report once every 30 minutes. But I plan to bind two of them to thermostats. I want those to report every 5 minutes. That’s just impossible at the moment.

I agree that good defaults are important. But its not just a default if you can’t change it.

Ha so you want to set different reporting timing on same device.

So yes, this is not possible. In this example you can set a 5 mn report for all devices ? A bad value will be every 30s. But right it will decrease battery life of devices that can make a report only every 30mn.

There is a perhaps a solution but for “power user”, just disable the bind/report on the DDF, but you will need to set them 1 by 1 on all devices after, using the GUI.