Try this DDF.
{
"schema": "devcap1.schema.json",
"manufacturername": ["NAMRON AS", "NAMRON AS"],
"modelid": ["4512737", "4512738"],
"product": "Thermostat Touch Zigbee 16A",
"sleeper": false,
"status": "Gold",
"subdevices": [
{
"type": "$TYPE_THERMOSTAT",
"restapi": "/sensors",
"uuid": [
"$address.ext",
"0x01",
"0x0201"
],
"fingerprint": {
"profile": "0x0104",
"device": "0x0301",
"endpoint": "0x01",
"in": [
"0x0000",
"0x0201",
"0x0204",
"0x0B05"
]
},
"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/heatsetpoint",
"default": 0
},
{
"name": "config/mode",
"default": "off"
},
{
"name": "config/offset",
"default": 0
},
{
"name": "config/on"
},
{
"name": "config/reachable"
},
{
"name": "state/lastupdated"
},
{
"name": "state/on",
"refresh.interval": 5
},
{
"name": "state/temperature",
"default": 0
},
{
"name": "state/floortemperature",
"parse": {
"ep": 1, "cl": "0x0402", "at": "0x0001",
"eval": "Item.val = Attr.val + R.item('config/offset').val"
},
"default": 0
}
]
},
{
"type": "$TYPE_POWER_SENSOR",
"restapi": "/sensors",
"uuid": [
"$address.ext",
"0x01",
"0x0b04"
],
"fingerprint": {
"profile": "0x0104",
"device": "0x0301",
"endpoint": "0x01",
"in": [
"0x0000",
"0x0B04"
]
},
"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/on"
},
{
"name": "config/reachable"
},
{
"name": "state/current",
"description": "The measured current (in A).",
"refresh.interval": 300,
"parse": {
"at": "0x0508",
"cl": "0x0b04",
"ep": 1,
"eval": "if (Attr.val != 65535) { Item.val = Attr.val / 1000; }"
},
"default": 0
},
{
"name": "state/lastupdated"
},
{
"name": "state/power",
"refresh.interval": 300,
"default": 0
},
{
"name": "state/voltage",
"refresh.interval": 300,
"parse": {
"at": "0x0505",
"cl": "0x0b04",
"ep": 0,
"eval": "if (Attr.val != 65535) { Item.val = Attr.val * 100 ; }"
},
"default": 0
}
]
},
{
"type": "$TYPE_CONSUMPTION_SENSOR",
"restapi": "/sensors",
"uuid": [
"$address.ext",
"0x01",
"0x0702"
],
"fingerprint": {
"profile": "0x0104",
"device": "0x0301",
"endpoint": "0x01",
"in": [
"0x0000",
"0x0702"
]
},
"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/on"
},
{
"name": "config/reachable"
},
{
"name": "state/consumption",
"refresh.interval": 300,
"default": 0
},
{
"name": "state/lastupdated"
}
]
}
],
"bindings": [
{
"bind": "unicast",
"src.ep": 1,
"dst.ep": 1,
"cl": "0x0201",
"report": [
{
"at": "0x0000",
"dt": "0x29",
"min": 300,
"max": 3600,
"change": "0x00000032"
}
]
},
{
"bind": "unicast",
"src.ep": 1,
"dst.ep": 1,
"cl": "0x0B04",
"report": [
{
"at": "0x050B",
"dt": "0x29",
"min": 1,
"max": 300,
"change": "0x00000001"
},
{
"at": "0x0505",
"dt": "0x21",
"min": 1,
"max": 300,
"change": "0x0000000A"
},
{
"at": "0x0508",
"dt": "0x21",
"min": 1,
"max": 300,
"change": "0x00000001"
}
]
}
]
}
Something strange, your DDF don’t have part for bind/report for attribute 0x0000, so I haven’t set it for the 0x0001.
If value are updated only if you read it using the GUI, can add in bind part
{
"bind": "unicast",
"src.ep": 1,
"cl": "0x0402",
"report": [{ "at": "0x0001", "dt": "0x29", "min": 10, "max": 300, "change": "0x14" }]
},