Danalock V3 (New FW 0.20.0) Losing Connection

Unfortunately, the lock disconnected after a few weeks and never came back on. I waited 24 hours then tried resetting the lock with no success.

I then removed the lock from the Danalock app, reset the lock again and pulled the batteries in an attempt to start from scratch.

The lock was immediately found in home assistant and I could get it to turn again.

The only problem I have now is that the Danalock app can’t find the lock again, which means that I can’t lock or unlock the lock since it is not calibrated. It turns really nice though when controlled by home assistant. Too bad I can’t lock or unlock.

I feel I have aged many years over the two months I’ve owned this lock. I’m now a resentful old man prone to fits of rage. To keep the little I have left of my sanity I have decided to trash the lock and buy a proper lock instead.

This lock has been the worst product I have ever owned. The screws didn’t fit my door so I had to get new ones. Zigbee didn’t work. Support asked me questions about my setup but stopped responding when I sent them the info. I installed the app on a raspberry pi to control it over home assistant. It worked but was too slow and the batteries drained after three weeks.

1 Like

I believe you can calibrate it using the click commands.

Thank you! Worked like a charm :grinning:

1 Like

Hey Guys hope you can help me with my Danalock Problem.

I have a Danalock V3 with actual Firmware 20.06.
After Pairing it shows an HEX-Name and not a “real” Name. It is also connected trough a link with a Lamp. I can control the Device in the deCONZ GUI ( for example Lock and Unlock) but it did not appear in my Phoscon Application, and even not in my IOBroker Instance.
Some more information about my System:

Conbee II directly connected to my raspberry
Version: 2.19.03 / 19.9.2022
Firmware: 26780700

Thank you !

After Pairing it shows an HEX-Name and not a “real” Name

It mean the device is not reconized by the API, but can be included and work in deconz.

I can see a DDF for the v3 Version

  "manufacturername": "Danalock",
  "modelid": "V3-BTZBE",

Else if you can share your manufacture name and model id (you can see them in the cluster 0x0000 on deconz) ? f I m right the legacy code just look for model id starting by “V3”

Hello, thank you for your fast repsonse.
Hop I have found the Information you need.

Yes, you don’t have the same model ^^

Try this DDF, it’s the same with your model added.

{
  "schema": "devcap1.schema.json",
  "manufacturername": ["Danalock", "Danalock"],
  "modelid": ["V3-BTZBE", "V3-BTZB"],
  "product": "Danalock V3",
  "sleeper": true,
  "status": "Gold",
  "subdevices": [
    {
      "type": "$TYPE_DOOR_LOCK",
      "restapi": "/lights",
      "uuid": [
        "$address.ext",
        "0x01"
      ],
      "items": [
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/swversion",
          "refresh.interval": 84000,
          "read": {"cl": "0x0000", "at": "0x0006", "ep": 1, "fn": "zcl"},
          "parse": {"cl": "0x0000", "at": "0x0006", "ep": 1, "eval": "Item.val = Attr.val", "fn": "zcl"}
        },
        {
          "name": "config/pending",
          "public": false
        },
        {
          "name": "config/checkin",
          "awake": true
        },
        {
          "name": "state/alert",
          "default": "none"
        },
        {
          "name": "state/reachable"
        },
        {
          "name": "state/on",
          "read": {"cl": "0x0101", "at": "0x0000", "ep": 1, "fn": "zcl"},
          "parse": {"cl": "0x0101", "at": "0x0000", "ep": 1, "eval": "Item.val = (Attr.val === 1)", "fn": "zcl"},
          "refresh.interval": 600,
          "awake": true
        },
        {
          "name": "state/battery",
          "refresh.interval": 3700,
          "public": false,
          "awake": true
        }
      ]
    }
  ],
  "bindings": [
      {
          "bind": "unicast",
          "src.ep": 1,
          "cl": "0x0101",
          "report": [ {"at": "0x0000", "dt": "0x30", "min": 1, "max": 300 } ]
      },
      {
          "bind": "unicast",
          "src.ep": 1,
          "cl": "0x0020"
      },
      {
          "bind": "unicast",
          "src.ep": 1,
          "cl": "0x0001",
          "report": [ {"at": "0x0021", "dt": "0x20", "min": 600, "max": 3600, "change": "0x00" } ]
      }
  ]
}
1 Like

First of all:
Happy new Year !

And now:
thank you for your help. My Lock is now connected with a “real Name” an I can control this trough my Applications .

Hello Guys, thanks for your efforts here.
I’ve had 2 of these locks for 2 years and never got them working with ZigBee for more than 2 weeks. Have now linked them to OpenHab via web and the cloud, which has advantages, you can query the locking status and the battery, but is also not 100% reliable.
So it’s all the happier that something’s happening here again, I had one of the locks at Dresden Electronics Support for a few weeks, but unfortunately they gave up too.
In any case, I have now imported Smanar’s (Thanks) DDF and additionally integrated the locks into OH via the Danalock interface for testing.
I’m curious if they will still work after 2 weeks.

I still have one question: Can anyone see the real battery status? My batteries are showing as empty in the deConz symbol even though one is at 88% and the other at 98%.
image
In the attributes they ar ok:
image
image
And in OpenHab I don’t see them at all, which is probably an OpenHab problem.

On attribute 0x0021, you just need to divide by 2, so you have 80% and 97 % from the device return.

And yes it’s not visible

        {
          "name": "state/battery",
          "refresh.interval": 3700,
          "public": false,
          "awake": true
        }

It’s the old version for doorlock, it create a light device, and light device don’t have config/battery, need to create too a ZHABattery.

You can try to enable it with removing “public”: false,

1 Like

IThat is also in the DDF or am I wrong?

image

Yes, but on the defaut DDF it’s hidden, perhaps for compatibility issue.
“Sensors” have a config/battery, but not “lights”. For “light” with battery we create too a ZHABattery tha use a state/battery", but it’s not present in the DDF.

Can try to enable it in the previous DDF, or use this one to create the ZHABattery.


{
  "schema": "devcap1.schema.json",
  "manufacturername": ["Danalock", "Danalock"],
  "modelid": ["V3-BTZBE", "V3-BTZB"],
  "product": "Danalock V3",
  "sleeper": true,
  "status": "Gold",
  "subdevices": [
    {
      "type": "$TYPE_DOOR_LOCK",
      "restapi": "/lights",
      "uuid": [
        "$address.ext",
        "0x01"
      ],
      "items": [
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/swversion",
          "refresh.interval": 84000,
          "read": {"cl": "0x0000", "at": "0x0006", "ep": 1, "fn": "zcl"},
          "parse": {"cl": "0x0000", "at": "0x0006", "ep": 1, "eval": "Item.val = Attr.val", "fn": "zcl"}
        },
        {
          "name": "config/pending",
          "public": false
        },
        {
          "name": "config/checkin",
          "awake": true
        },
        {
          "name": "state/alert",
          "default": "none"
        },
        {
          "name": "state/reachable"
        },
        {
          "name": "state/on",
          "read": {"cl": "0x0101", "at": "0x0000", "ep": 1, "fn": "zcl"},
          "parse": {"cl": "0x0101", "at": "0x0000", "ep": 1, "eval": "Item.val = (Attr.val === 1)", "fn": "zcl"},
          "refresh.interval": 600,
          "awake": true
        }
      ]
    },
    {
      "type": "$TYPE_BATTERY_SENSOR",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0001"
      ],
      "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/battery",
          "awake": true,
          "refresh.interval": 86400
        },
        {
          "name": "state/lastupdated"
        }
      ]
    }
  ],
  "bindings": [
      {
          "bind": "unicast",
          "src.ep": 1,
          "cl": "0x0101",
          "report": [ {"at": "0x0000", "dt": "0x30", "min": 1, "max": 300 } ]
      },
      {
          "bind": "unicast",
          "src.ep": 1,
          "cl": "0x0020"
      },
      {
          "bind": "unicast",
          "src.ep": 1,
          "cl": "0x0001",
          "report": [ {"at": "0x0021", "dt": "0x20", "min": 600, "max": 3600, "change": "0x00" } ]
      }
  ]
}
1 Like

In deConz things are now as they should be. Thank’s so much!
image

OpenHab doesn’t recognize the battery yet, but I think a developer needs to add that first.

Sorry it’s her! I just missed it because it’s a thing of its own.

Not sure, on the first DDF, there is no ZHABattery, and the state/battery (that is disabled) don’t need to be here.
It’s probably missing on the API.

The thing I’ve noticed with the Home Assistant integration is that you only see the lock state. No other info. Whereas in the Phoscon console shows data as mentioned above.

In OpenHAB it’s a second Thing with the same address as the lock:

So you are using the second DDF ? I m seing the doorlock+The battery sensor ? Or you already have included the device previously and not delete it ?

OpenHAB recognizes it that way with deConz, but it also happens with other devices, such as sockets with a measuring function or the sensors from Xiaomi:
image