• Skip to primary navigation
  • Skip to main content
Rowesk

Rowesk

  • Work
  • Blog
  • Movies
  • Ideas
  • About

Linptech ES3

After much searching, I found some decent battery operated motion and presence sensors for use with Home Assistant that are reliable, fast (for light automations), and relatively cheap.

I had been using the Sonoff SNZB-03 which work perfectly for actual motion, but not presence detection. For example, they’re perfect for detecting when someone walks into a room as a trigger for turning the lights on, but not for detecting whether a person is sitting in the room, relatively still, which should prevent the lights from turning off.

The Linptech ES3 solves these issues through combining two mechanisms for detection, a standard PIR sensor as well as a 24Ghz mmwave sensor module giving it the best of both worlds.

It’s also cheap (under £10 before shipping depending on the source):

  • Aliexpress (£15 incl. p&p)
  • Taobao (£8 excl. p&p)
  • 1688 (£7 excl. p&p)
Linptech ES3 1

They work through Bluetooth however, unlike SNZB-03s and the rest of my Home Assistant network— which runs on Zigbee. Bluetooth does have some downsides over Zigbee and wifi, it’s often slower as it doesn’t report as often — and while that’s true it also means that it can last for many months on a watch battery. Personally, I find this tradeoff to be worthwhile as I can tuck these little suckers away out of sight without having to run a cable to an outlet or battery pack, and they still detect presence in a way regular PIR sensors fail at miserably.

The main downside to these ES3 modules however, is they are relatively painful to integrate into Home Assistant. They’ve been sitting in a box of home automation parts for months since I bought them, but with recent updates to ‘Passive BLE monitor‘ and ‘Xiaomi Cloud Token Extractor‘ they seem to be working flawlessly for me now, and were reasonably easy to set up once I worked my way through several methods.

I wanted to put this post together quickly to share how to add them reliably into Home Assistant as there was so much conflicting information on the web, and half of it wasn’t in English, making it even harder to figure out — a shame since these are such great (and cheap) little devices!

Adding the Linptech ES3 to Home Assistant

First you’ll need a few things installed in your Home Assistant instance:

  • HACS
  • Passive BLE Monitor
  • Xiaomi BLE

You’ll also need a Xiaomi Mi account and the app downloaded on your phone. Since the ES3 is a China ‘only’ product, we’ll need to change the location of the Mi account — you can do this in the app by going to Settings > Region > and select China / Chinese Mainland.

Then hold the action button on the ES3 for 5 seconds until it starts to blink and then add a new device and follow the instructions to set it up.

Once it’s installed, we need to get access to the encryption key of the ES3 to enable Xiaomi BLE to connect to it without relying on the Mi account so it can operate it locally without needing to reauthorise constantly with your Mi account password.

Linptech ES3 2

To do this, follow the instructions in the readme for Xiaomi Cloud Token. I used the python version through Terminal on my Mac, and it only takes a few seconds – though you will need to follow the instructions in terminal, answer the captcha and use a 2FA code that will be emailed to you.

Once it’s found the devices, you’ll need to copy the BLE Key and input it into Xiaomi BLE when it prompts you to reconfigure the device. When it does so, don’t use your Mi account username and password, opt to ‘Enter encryption key manually’ instead, and pasting the bluetooth token the script just gave you.

If it doesn’t discover it and prompt you automatically, you may need to go into the Xiaomi BLE integration and click ‘Add’ in the new banner:

Linptech ES3 3
Linptech ES3 4

Once added it can take a few minutes to receive the first broadcasts from the device and populate the sensor information, but that’s it! It can then be added into automations and placed anywhere you like!

Linptech ES3 5

This was impossible just a few months ago — or at least I didn’t have the patience to try emulating an android device or using a windows computer to try to get the bluetooth encryption tokens, but given the number of posts I’ve seen about this asking how to get it working, hopefully this helps anyone that stumbles on it to get it working!

Happy automating!

  • Page 1
  • Page 2
  • Page 3
  • Interim pages omitted …
  • Page 24
  • Go to Next Page »

Find Chris Rowe on Twitter - @rowesk

2025