SCREEK Home Assistant 24Ghz FMCW WiFi Human Presence Detector Radar 1U

Yes, you were right @FriedCheese - I decided to power off my Bluetooth Proxy all together - even though it means loosing all other Bluetooth connections (which is an unacceptable solution).
Then by rebooting the DL2410 BLE I could successfully connect with the HLKRadar Tool App and verify the firmware version. No update was available.

Anyway, Reconnecting the DL2410BLE with Home Assistant wasn’t straight forward. Just enabling the DL2410 BLE wasn’t enough. Power cycle didn’t work. I could see that the Bluetooth Proxy was connecting, but to get it back into Home Assistant I had to reload the whole DL2410 Integration.

I think these intrinsic and complicated procedures should be documented. Otherwise you will find that many users will struggle unnecessary trying to understand how to proceed. By the way, the complex UI of the App requires a dedicated workshop in order to understand :grinning_face_with_smiling_eyes:

You are more than welcome to do so yourself. The SCREEK setup does not include using Bluetooth directly. The solution was designed, and documentation created, to support using ESPhome. You’ve deviated from that model by connecting the sensor to HA directly with Bluetooth. If you wish to use a non-standard setup, then I hardly think the onus of documenting the minutia of your setup should be on SCREEK.

The Bluetooth connection only needs to be broken to use the HLKradar app. The better alternative is to just not connect the sensor via Bluetooth to HA. The ESPhome integration is rock solid.

If you’d like to have Bluetooth, then why not just ditch the ESP32 board, figure out a method to supply power to the LD2410C sensor, and connect it directly. You’ll still have to deal with the headaches anytime you wish to use the app for firmware/tweaking settings, but at least you’ll be removing an unnecessary component.

Basically, monitor the graphs in HLKradar while doing whatever you would normally do where you want it to trigger. The graphs give a readout of detected motion/energy vs what the current setting is. The graph, from left to right, correlate to the settings from top to bottom.

Ryan did a great job of explaining things, thanks so much.

For the Bluetooth connection, yes, we tried it a couple times initially, but occasionally sometimes the connection would be lost (still, we think it’s due to some limitation of the Bluetooth proxy), which was a bit frustrating for us, and we haven’t been particular about alerting users that they can connect using this method.
Especially since not many people have a Bluetooth proxy.

Regarding restarting Bluetooth to reconfigure it being frustrating, something Ryan has done some attempts to do, then it seems like disconnecting straight away doesn’t seem to be easy, and from the feedback you’ve had here that’s the case as well. If we do a Bluetooth connectivity issue in the future, we’ll note your findings.

Personally, I find wifi connections to be very stable and farther away in a sense, while I think a lot of people would find bluetooth to be more stable because they seem to have a very fast update rate. This is on the ESPHome mode which deliberately limits the update rate to roughly 1 second minimum. Although when these are very fast (the LD2410C can reach an update rate of over 10 times a second), this is one of the reasons why the HiLinkRadarTool’s app seems so smooth in real time.
But in the long run, this will add a very large amount of history data to HomeAssistant, which is a burden on the database. If you don’t need 0.1 seconds to respond that you’re here.

From the pictures it looks like you have V2.04 which is a fairly new firmware, due to the presumably very large release of the LD2410 they generally rarely release new versions of firmware in particular, and any bug would cause their customer service system to be overwhelmed.

Considering the explorations you’ve done on how to grab BLE access to the LD2410, I would hypothesize that a quick reboot of the LD2410 module in ESPHome’s properties to quickly connect to the module at the first opportunity to grab a head start with the Bluetooth Proxy might also be an opportunity.

@Viking
One other thing, thank you very much! We noticed that you appended the information about the review above the original one. It’s just a little unfortunate, but it’s still a weird review. We sent out a moderation request for the review yesterday and it should reach your email or eBay message, so if you could help us eliminate this, that would be great.

Is the review ok now?

We received it , thank you very much, what a great day!
Meanwhile Ryan reminded us that the reason we are not getting messages from the forum is most likely due to icloud blocking the emails, and we switched to gmail email.
We just got the email push.
So I guess we’re getting the forum push in real time too, and we hope it keeps working well like this.
So there’s a chance we’ll be able to keep track of future messages even if they’re in the forums, which is delightful.

Thank you guys for your support.

I keep getting these entries in the log today:

Logger: aioesphomeapi.connection
Source: runner.py:179
First occurred: 9:32:08 AM (1 occurrences)
Last logged: 9:32:08 AM

screek-humen-sensor-1u-584806 @ 192.168.1.103: Connection error occurred: [Errno 104] Connection reset by peer

This sometimes happens due to network signals and various circumstances, but it can often be recovered back quickly.

1 Like

Ok, so now to the next step;
I want to discuss/learn how to put the radar to active use in automations.

  • How to understand the different entities (signals)
  • How to determine/detect specific and accurate positions in the room
  • How to understand if an object is moving or just present (sitting still)
  • How to distinguish between up to three people in the same room
  • etc.

Should we discussion this here in this thread in the HA Community, or do you want me to instead use Reddit?

The key entities that you should be concerned with are:
Presence, Moving Target and Still Target.

The Presence value becomes ‘Detected’ when either the Moving Target or Still Target is detected and is the one to use if you want to control lights for example. So when someone enters the room or moves around, the Moving Target value becomes ‘Detected’. Once they stay still, the Still Target becomes ‘Detected’. Either of the sets the Presence to ‘Detected’ which can be set to trigger the light turning on. There is an ‘Unmanned duration’ setting that can be set from the HLKRadar app and that sets the time when the Presence value will return to ‘Clear’ when both Moving Target and Still Target has become 'Clear.

The LD2410 radar is really only able to determine the distance the target is away from it and it is not able to determine precise location in the room. It can also only handle effectively one main target (the strongest signal it detects).

If you wish to try to detect multiple people in the same room, the LD2450 radar sensor (SCREEK 2a) is required (up to 3 targets) but that is still in beta testing as it’s multi-person target handling is not fully working on the current firmware from HiLink.

It just so happens that we have an opportunity, and this is one of the things we’re still finishing up, to add some annotations to this Hilink app.
It’s not finished yet, but it should provide some help.
I now have a chance to share the very good experience that athua wrote about earlier.
Hopefully this will help more people using the LD2410 including our range of DIY sensors.

In addition to the above error message which now appears relatively often, I’m also getting this error message:

Logger: homeassistant.components.sensor
Source: components/sensor/__init__.py:659
Integration: Sensor (documentation, issues)
First occurred: 12:30:49 PM (2 occurrences)
Last logged: 12:30:49 PM

Entity sensor.screek_humen_sensor_1u_584806_move_energy (<class 'homeassistant.components.esphome.sensor.EsphomeSensor'>) is using native unit of measurement '%' which is not a valid unit for the device class ('energy') it is using; expected one of ['GJ', 'MWh', 'Wh', 'kWh', 'MJ']; Please update your configuration if your entity is manually configured, otherwise create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+esphome%22
Entity sensor.screek_humen_sensor_1u_584806_still_energy (<class 'homeassistant.components.esphome.sensor.EsphomeSensor'>) is using native unit of measurement '%' which is not a valid unit for the device class ('energy') it is using; expected one of ['GJ', 'MWh', 'Wh', 'kWh', 'MJ']; Please update your configuration if your entity is manually configured, otherwise create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+esphome%22

Both these errors began to appear after updating the ESP firmware. In the previous version I never had these error messages.

Hi Viking.
This is a known issue, HA was recently updated to validate the energy unit format, and we’ll fix this in the next firmware.

HI @athua and thanks for the info (shouldn’t this be available as regular documentation online somewhere?)
Anyway, my sensor isn’t able to detect still Targets very well. See the picture below, were someone was present all the time, but mostly sitting by a table and writing a letter at approximate distance of 3m from the sensor, facing the sensor, which is mounted on the edge of a bookshelf 1.7m off the floor with no obstacles in front of it.

As it is now, the light turned off 3 times in that short period, allthoug we were in the room. This is defintely not good enough. Please also check out this video (2) Building My Perfect Smart Home Presence Detection Sensor! - YouTube which (apart from the PIR) demonstrates how radar detector should work.

That’s the point of the graphs/table in the HLKradar app. You can adjust the sensitivity at different distances to suite your needs.

So, monitor the graphs while sitting and moving. Make sure the blue line is above the pink one. The blue is what the radar is detecting and pink is the threshold to determine presence. The x-axis on the graph represents the rows in the table. The y axis are the columns.


So, using the graph below. The 2 under static energy correlates to the third row in the table (0.75-1.5 M). The detected energy (100) is higher than the threshold (40), so static target is set and this will reflect “detected” for presence in HA.

Yes, I do agree that documentation around the LD2410 which is what the SCREEK 1U radar is based on and its use in Home Assistant is fairly light. I built up my own radar sensor using a Wemos D1 Mini ESP32 board and a LD2410C and worked out the details based on a little information that was available.
Ryan has explained it very well in the post above that with these sensors, they do need to be tuned to each room that they are used in and the HLKRadar App allows you to do that. Once setup for a specific room, they work really well.

Ok, I’ll try that - but nevertheless, the use of this app must be documented and explained ins layman terms. You cannot expect the average user to understand any of this unless it’s extremely well documented.
And by the way, the maker of the EP1 never mentioned any need to do finetuning in order to obtain a good result - and he is usually very thorough when it comes to details.

The need for fine tuning is required for the LD2410 sensor due to its flexibility of adjusting sensitivity based on distance gates. This has its pros and cons. It does make it more difficult to setup initially, but it does allow you to tune it for a specific environment to dial out interference that may result in false positives. Maybe the default values for each gate could have been set better by HiLink for general use but I noticed the HLKRadar app has been updated and it now has a function to detect background noise which you can then use as a basis to adjust the values to suit your specific environment.
As I built my sensor from parts, I did not rely on any documentation from SCREEK. I used what I could find from this forum, documents from the HiLink website and ESPHome documentation.
I consider the LD2410 radar sensor to be a good but budget sensor that requires some tinkering with to get working well. I guess that is what you would expect based on its price compared to the EP1.

Sorry @athua - I thought you worked for SCREEK :slightly_smiling_face:
Then my inquiry for improved in-depth documentation should be directed towards them (and not you)

But by the way, my understanding was that the price of EP1 is mostly also due to the expensive PIR sensor that it has.

What we’ve done is really just put some processors and modules together and it’s a DIY sensor. In our spare time we tried to finish it.
But the fp1 is a very commercial product, so I think that these documentation issues might slowly be an area that can be improved, but also for us, we can’t have that much energy to finish it quickly. Just have to see what can be done in the spirit of a hobby.

All we can do is just make things a little bit easier, but it still can’t be a very easy thing to do. ld2410 has excellent responsiveness and flexible settings, which is one of the reasons why it’s inexpensive. It omits complex human judgment algorithms and instead just detects changes in energy. This makes it very much like an alternative alternative to the pir.
But familiarizing yourself with it or fully mastering it takes some special effort.

hilink seems to be aware of these problems, and in some of the newer products like the ld1125h they are starting to use a flexible human breath accumulation algorithm to determine if the target is human. In the ld2450, a radar, we can also see hints of complex algorithms.

We may not be able to fulfill too high expectations, the whole thing is that we made a DIY radar and then it was shared to some around the world, with the convenience of suppliers in China, we tried some interesting combinations. But we don’t have that much resources and energy to perfect a very complete documentation of the whole introduction of ld2410. It had to be a project that a lot of people worked together to accomplish.

The efforts made by athua and FriedCheese are admirable, and their understanding of the ld2410 has reached a very high level. And are like its evangelists.

Anyway, happy DIYing, it’s a path with exploration and putting in time if you want to fully familiarize yourself with this ld2410 sensor.

Looking at the hilink app, you can also see some of the recent efforts, including features such as analyzing ambient noise, that have been integrated in, in a sense all part of the effort to simplify where this thing is.