Download: Tri-state DDF File for Shelly BLU Door/Window Mini ZB

I created a DDF file with ChatGPT for Shelly BLU Door/Window Mini ZB in Zigbee Mode.
status: 0 = geschlossen, 1 = gekippt, 3 = geöffnet, −1 = noch keine Statusmeldung ausgewertet.
(complete reset: hold button 30sec. initiate Zigbee press 5x fast , initiate BT press 4x fast)
Caution:

  • Need enabled Bronze state for untested ddf’s
  • the status 1 needs always a following 0 before a 3 is possible!
  • Battery state implemented but untested.
  • Light level not implemented.

{
"schema": "devcap1.schema.json",
"manufacturername": "Shelly",
"modelid": "BLU DoorWindow Mini ZB",
"vendor": "Shelly",
"product": "BLU Door/Window Mini ZB",
"sleeper": true,
"status": "Bronze",
"subdevices": [
{
"type": "$TYPE_OPEN_CLOSE_SENSOR",
"restapi": "/sensors",
"uuid": [
"$address.ext",
"0x01",
"0x0500"
],
"fingerprint": {
"profile": "0x0104",
"device": "0x0402",
"endpoint": "0x01",
"in": [
"0x0000",
"0x0001",
"0x0003",
"0x0500",
"0xFC21"
]
},
"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/battery",
"awake": true,
"read": {
"fn": "none"
},
"parse": {
"at": "0x0021",
"cl": "0x0001",
"ep": 1,
"eval": "Item.val = Attr.val / 2",
"fn": "zcl:attr"
},
"default": 0
},
{
"name": "config/enrolled",
"public": false,
"default": 0
},
{
"name": "config/on"
},
{
"name": "config/pending"
},
{
"name": "config/reachable"
},
{
"name": "state/lastupdated"
},
{
"name": "state/lowbattery",
"awake": true,
"default": false
},
{
"name": "state/open",
"awake": true,
"refresh.interval": 84600,
"read": {
"at": "0x0002",
"cl": "0x0500",
"ep": 1,
"fn": "zcl:attr"
},
"parse": {
"fn": "ias:zonestatus",
"mask": "alarm1,alarm2"
},
"default": false
},
{
"name": "state/status",
"public": true,
"awake": true,
"read": {
"fn": "none"
},
"parse": {
"fn": "zcl:cmd",
"ep": 1,
"cl": "0x0500",
"cmd": "0x00",
"eval": "if (ZclFrame.isClCmd && ZclFrame.payloadSize >= 6) { Item.val = (ZclFrame.at(0) | (ZclFrame.at(1) << 8)) & 3; }"
},
"default": -1
}
]
}
],
"bindings": [
{
"bind": "unicast",
"src.ep": 1,
"cl": "0x0500"
}
]
}