After modifiying a DDF for SMT402AD thermostat, replacing an invalid uuid by another on the Humidity sensor, replacing :
"type": "$TYPE_HUMIDITY_SENSOR",
"restapi": "/sensors",
"uuid": [
"$address.ext",
"0x01",
"0x0405"
by
"type": "$TYPE_HUMIDITY_SENSOR",
"restapi": "/sensors",
"uuid": [
"$address.ext",
"0x19",
"0x0405"
to be compliant with the binding parts of the DDF (25 in decimal equals to 0x19)
"bindings": [
{
"bind": "unicast",
"src.ep": 25,
"cl": "0x0405"
},
{
"bind": "unicast",
"src.ep": 25,
"cl": "0x0204"
},
{
"bind": "unicast",
"src.ep": 25,
"cl": "0x0201"
}
]
and after that I had to restart my RPi for other reason.
All return to normal, except that I got duplicates clusters, those that I think are correct with endpoint 0x19 and others with endpoint 0xffand when reading information in deCONZ-GUI both are updated :
07:53:54:663 f8:f0:05:ff:ff:70:7e:95-ff-0201/attr/manufacturername expression: Item.val = Attr.val --> Stelpro
07:53:54:664 f8:f0:05:ff:ff:70:7e:95-19-0201/attr/manufacturername expression: Item.val = Attr.val --> Stelpro
07:53:54:665 f8:f0:05:ff:ff:70:7e:95-ff-0402/attr/manufacturername expression: Item.val = Attr.val --> Stelpro
07:53:54:666 f8:f0:05:ff:ff:70:7e:95-ff-0405/attr/manufacturername expression: Item.val = Attr.val --> Stelpro
07:53:54:667 f8:f0:05:ff:ff:70:7e:95-19-0405/attr/manufacturername expression: Item.val = Attr.val --> Stelpro
07:53:54:668 f8:f0:05:ff:ff:70:7e:95-19-0402/attr/manufacturername expression: Item.val = Attr.val --> Stelpro
07:53:54:668 f8:f0:05:ff:ff:70:7e:95/attr/manufacturername expression: Item.val = Attr.val --> Stelpro
07:53:54:828 f8:f0:05:ff:ff:70:7e:95-ff-0201/attr/modelid expression: Item.val = Attr.val --> SMT402AD
07:53:54:829 f8:f0:05:ff:ff:70:7e:95-19-0201/attr/modelid expression: Item.val = Attr.val --> SMT402AD
07:53:54:830 f8:f0:05:ff:ff:70:7e:95-ff-0402/attr/modelid expression: Item.val = Attr.val --> SMT402AD
07:53:54:831 f8:f0:05:ff:ff:70:7e:95-ff-0405/attr/modelid expression: Item.val = Attr.val --> SMT402AD
07:53:54:832 f8:f0:05:ff:ff:70:7e:95-19-0405/attr/modelid expression: Item.val = Attr.val --> SMT402AD
07:53:54:833 f8:f0:05:ff:ff:70:7e:95-19-0402/attr/modelid expression: Item.val = Attr.val --> SMT402AD
07:53:54:834 f8:f0:05:ff:ff:70:7e:95/attr/modelid expression: Item.val = Attr.val --> SMT402AD
If I delete the Thermostat with 0xff endpoint it delte the device from deCONZ and I had to rejoin it.
Here is my DDF :
{
"schema": "devcap1.schema.json",
"manufacturername": "Stelpro",
"modelid": "SMT402AD",
"product": "SMT402AD",
"sleeper": false,
"status": "Silver",
"path": "/devices/smt402ad.json",
"subdevices": [
{
"type": "$TYPE_THERMOSTAT",
"restapi": "/sensors",
"uuid": [
"$address.ext",
"0x19",
"0x0201"
],
"items": [
{
"name": "attr/id"
},
{
"name": "attr/lastannounced"
},
{
"name": "attr/lastseen"
},
{
"name": "attr/manufacturername"
},
{
"name": "attr/modelid"
},
{
"name": "attr/name"
},
{
"name": "attr/swversion"
},
{
"name": "attr/type"
},
{
"name": "attr/uniqueid"
},
{
"name": "config/externalsensortemp",
"description": "External sensor temperature used as Outdoor temperature on display.",
"refresh.interval": 300,
"read": {
"at": "0x4001",
"cl": "0x0201",
"ep": 25,
"fn": "zcl",
"mf": "0x1185"
},
"write": {
"at": "0x4001",
"cl": "0x0201",
"dt": "0x29",
"ep": 25,
"eval": "Item.val",
"fn": "zcl",
"mf": "0x1185"
},
"parse": {
"at": "0x4001",
"cl": "0x0201",
"ep": 25,
"eval": "Item.val = Attr.val;",
"fn": "zcl",
"mf": "0x1185"
},
"default": 0
},
{
"name": "config/heatsetpoint",
"default": 0
},
{
"name": "config/mode"
},
{
"name": "config/offset",
"default": 0
},
{
"name": "config/on"
},
{
"name": "config/reachable"
},
{
"name": "config/unoccupiedheatsetpoint",
"refresh.interval": 300,
"read": {
"at": "0x0014",
"cl": "0x0201",
"ep": 25,
"fn": "zcl"
},
"write": {
"at": "0x0014",
"cl": "0x0201",
"dt": "0x29",
"ep": 25,
"eval": "Item.val",
"fn": "zcl",
"mf": "0x1185"
},
"parse": {
"at": "0x0014",
"cl": "0x0201",
"ep": 25,
"eval": "Item.val = Attr.val;",
"fn": "zcl"
},
"default": 17
},
{
"name": "state/lastupdated"
},
{
"name": "state/on",
"refresh.interval": 5
},
{
"name": "state/temperature",
"description": "The current temperature in °C (*100).",
"parse": {
"at": "0x0000",
"cl": "0x0201",
"ep": 25,
"eval": "Item.val = Attr.val + R.item('config/offset').val",
"fn": "zcl"
},
"default": 0
},
{
"name": "state/valve",
"description": "PI Heating Demand\nIf below 10, then device is Idle, else device is Heating.",
"refresh.interval": 300,
"read": {
"at": "0x0008",
"cl": "0x0201",
"ep": 25,
"fn": "zcl"
},
"parse": {
"at": "0x0008",
"cl": "0x0201",
"ep": 25,
"eval": "Item.val = Attr.val;",
"fn": "zcl"
},
"default": 0
}
]
},
{
"type": "$TYPE_HUMIDITY_SENSOR",
"restapi": "/sensors",
"uuid": [
"$address.ext",
"0x19",
"0x0405"
],
"items": [
{
"name": "attr/id"
},
{
"name": "attr/lastannounced"
},
{
"name": "attr/lastseen"
},
{
"name": "attr/manufacturername"
},
{
"name": "attr/modelid"
},
{
"name": "attr/name"
},
{
"name": "attr/swversion"
},
{
"name": "attr/type"
},
{
"name": "attr/uniqueid"
},
{
"name": "config/offset",
"default": 0
},
{
"name": "config/on"
},
{
"name": "config/reachable"
},
{
"name": "state/humidity",
"description": "The current relative humidity in percent (*100).",
"refresh.interval": 300,
"read": {
"at": "0x0000",
"cl": "0x0405",
"ep": 25,
"fn": "zcl"
},
"parse": {
"at": "0x0000",
"cl": "0x0405",
"ep": 25,
"eval": "Item.val = Attr.val + R.item('config/offset').val",
"fn": "zcl"
},
"default": 0
},
{
"name": "state/lastupdated"
}
]
}
],
"bindings": [
{
"bind": "unicast",
"src.ep": 25,
"cl": "0x0405"
},
{
"bind": "unicast",
"src.ep": 25,
"cl": "0x0204"
},
{
"bind": "unicast",
"src.ep": 25,
"cl": "0x0201"
}
]
}