Xiaomi Sherlock Smartlock

Yes, I put the resistor, maybe not so accurate resistor (I bought these 10000 ohm)??? I cut wire on both sides leaving maybe 1 cm each side

may I see your code in configuration: how do you call the lock/unlock service? With lock. or with mqtt_publish? Before I used lock.lock, and lock.unlock, maybe lock to mqtt not sending correctly??

now I will try to directly mqtt_publish,

  - platform: mqtt
    name: 14a office door
    command_topic: "home/14a_office_door/command"
    state_topic: "home/14a_office_door/status"


  - service: lock.unlock
      entity_id: lock.14b_office_door


   - service: mqtt.publish
       topic: 'home/14b_office_door/command'
       payload: 'UNLOCK'

Hi. Any progress on this? When I try to scan the qr code to activate the device it gives me some Chinese error message. I’ve reset and tried multiple phones but no luck.

Hi. Any progress on this? When I try to even the qr code to activate the device it gives me some Chinese error message. I’ve reset and tried multiple phones but no luck.

Hello! Resolved. I got help. Press the adjustment button for 10 seconds to reset the device. There was no problem afterwards.

1 Like

I’m getting similar issues with basic setup between mobile app and lock ATM. My setup errored out and now I’m stuck in some kind of loop. Can’t delete the device. I can reset it but that doesn’t help. I’ve uninstalled and reinstalled app. Googling keywords returns online yields nothing. Annoying.

Update: I contacted the developers, they responded within 2 days, they deleted the hung device, then I could go through set up again and no issues.


My findings:

Here in the Netherlands we have mainly vertically placed cylinders (so the key is upright in the lock). Because I had the mount the lock vertically as well, I did NOT have to modify the lock in any way!


  • The hardware of the lock is great. Mechanically and optically it’s a fine piece of hardware.

  • The functionality that is provided in the app works fine.


  • The app does not show status (locked/unlocked) or I am not able to find it :wink:

I have successfully managed to modify one of the remotes and attached it to a ESP32.

The ESP does 2 things:

  1. Open/close
  2. Send out a BLE ibeacon so that when I approach the door, HA will send me a actionable notification that allows me to open the door. That works fine 9 out of 10 times.

The ONLY downside of it all is that I have NO way of being 100% certain that the lock is actually locked or unlocked.

If anybody has a good solution for that, I would be grateful :slight_smile:


can you please share how you did it?

For checking the lock/unlock status the only way I see achievable is by checking an internal contact with the cilinders

I used this:

with an ibeacon

and this for the actionable notification:

Hi, how did you do the assembly of the nodemcu and the ble button? Is that plastic …??

So I’ve made some progress on my implementation.

Here is the vid. I’ll just add to this post as it progresses…


Main materials:


  • Only a thumb turn on the inside, like in @andreyxc 's video.
  • Vertical is locked. Rotate 90 degrees clockwise to unlock (horizontal)
  • Thumb turn width quite wide which meant I couldn’t just reverse the thing-me-bob (see video) . Have to build custom coupling thingo.

Special features/pros of my implementation:

  • Still manually turn/unlock/unlock from inside (like andreyxc, but not as cool)
  • Looks ok. (I reckon)
  • Updated: I integrated one of the newer gen Xiaomi sensors that can track rotation to track locked/unlocked state. I haven’t actually coded it into a state sensor yet. Where I currently have it placed is picking up a reliable ‘unlocked’ movement (which has a long pause between returning to the ‘normal state’ , but unfortunately it’s not picking up the ‘locked’ movement at all (which has a short pause between returning to normal state. Might have to rethink placement or something. See charts below.

Cons of my implementation:

  • quite a lot of modding.
  • cut your finger whittling wood and blood goes everywhere and walk bloody down the street to get stitches (optional).

Next up:

  • report back on reliability/operability
  • do the wired in fob thingo.

1 Like

interesting idea, which is the events, can you please share the code with the Xiaomi sensor

I’ve added a bit more to my other post. I’ll share properly when/if I get it sorted…Cheers.

I am not interested in this (In the sense that I am not good in hardware DIY so I prefer not do it) will the Xiaomi sensor still fit inside?

Do you use a fake (assumed state) template switch?

I’m not confident the motion/vibration sensor will fit with the standard setup. It’s a bit hard for me to tell with my setup. It may fit if you put it like the picture below, but it may be very tight or mess with the outside key functionality? You may need to cut back the right side of the red thing? Or you could try dissembling the sensor casing to make it smaller? But the sensors are cool and I’m sure you’ll find another use if it doesn’t fit. So get one and play?

Either way, it still isn’t detecting ‘locked’. I’m working on some ideas for that. I’ll report back in my main post as it progresses…

Yes, my plan was to use a template switch.

Yes when the sensor fires an event counter clockwise (for the model left), you just assume that the door is locked (if you pair it with a classic open/close door sensor, when the door is closed AND fires the event counter clockwise, then the result should be almost totally accurate).

That was basically the plan. It’s hard for me to explain, but the sensor can’t detect any ‘locked’ movement (Counter clockwise for me). If you look at my charts, it only shows “locked” events (each “pairs” of events are for one “locked” command) . The long pause between the lock rotation ending and the ‘return to normal’ motion starting the makes it register. There are “unlocked” events that happened, but you can not see them. The short pause for unlock between the turning movement and returning to normal state means nothing is captured. It sees no change…

I do have a vibration sensor, but the developer_tools/events is not working (not showing anything when I put the sensor event_id), works only when is empty and start listening, but I have hundreds of events, can’t read the log-

If its not working puting the sensor vertically, I guess the only other way is to check if it works mounting it horizintally, although its a bit ugly mounted like that

I tried to use this new Xiaomi sensor and I think it’s not possible. The sensor doesn’t have gyroscope so detecting rotation is very limited and unaccurate. I think that better solution is to use Xiaomi Door sensor. This sensor without shell fits perfect inside Sherlock key holder (I changed battery to bigger one):

and outside:

The very last rotation on lock and unlock event are different. I use Node-RED to detect time differences between last open-close event of Xiaomi Door Sensor and it works perfect for me.