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

I don’t have BLE setup, but imagine that disabling the integration doesn’t effect the adapter…meaning the adapter will stay working, HA will just not process the data. The LD2410C will repair to the adapter if it’s available. You’ll likely need to reboot the sensor, or toggle Bluetooth off/on, while the BLE adapter is powered off to get it to disconnect. Both actions can be done from the ESPhome devices page.

1 Like

We did add the ble switch to the original esphome’s official ld2410 firmware There is also the ability to reboot the ld2410c, which we’ll try to test if it’s possible when want.
HomeAssistant’s Bluetooth functionality has always felt a little less than perfect to me, and I’ve experienced quite a few instances where the data became disconnected. But I think that might be some issue with the Bluetooth agent.
I have often experienced lost connections when using Xiaomi’s Bluetooth mesh as well, and my confidence in Bluetooth was never very high.
Especially like HomeAssistant which is a one to one connection for individual devices.
The Passive Bluetooth Gateway plugin represents another idea for capturing packets, but on top of capturing encrypted Xiaomi devices, we’ve also encountered places where captured data fails.

Comparatively speaking, I feel that HomeAssistant’s current BLE functionality lacks full debugging and visualization and other convenient displays, which makes debugging some specific issues seem inconvenient.
I like the design of the Z2M, it’s a very stable system and I often find them more reliable and stable than WiFi, and that includes a couple of my own ZIGBEE experimental sensors.

Well, I tried using the “Disable LD2410 BLE” button press, and it did turn off the BLE, but that didn’t help much. With the BLE turned completely off, how can it then connect to the App ?

And by the way, after turning BLE off, I couldn’t successfully turn it back on again using the “Enable LD2410 BLE” button press. Nothing happens.

image

I had to completely power cycle the SCREEK in order to get the BLE back to life. So pointing fingers at others for lack of debugging, quickly backfires.

Anyway. Bluetooth is very stable, if set up correctly. One should not rely on a standard USB Bluetooth adapter. It is relatively short range, and only capable of a single connection. Home assistant grabs whatever data is presented to it, good, bad or missing. I’m using a Bluetooth Proxy, and I’ve never had stability or connection issues with my Bluetooth devices. But I only use Bluetooth where there’s no other options, i.e. my toothbrush :blush:

So, I guess no one knows exactly how to update the DL2410 BLE firmware, then? Perhaps except master reset on the whole SCREEK device - which is a bit inconvenient, as one looses all existing setup which has to be redone, This in turn means a full new set of entity names where Home Assistant automatically adds a “_n” to distinguish new names from already existing (unavailable) entity names. (where the ‘n’ is a counter).

Perhaps someone has a better idea?

1 Like

To quote myself.

Again.

So, that’s how you update the firmware. Your problem is you can’t get the LD2410C to unpair from your Bluetooth proxy. I don’t think that a reset is necessary (and probably wouldn’t work anyways since you’d be resetting the ESP module and not the LD2410C).

So, going back, I’d temporarily disconnect whatever Bluetooth device it is paired with (and I do mean remove power), restart the SCREEK sensor (probably best to just pull power for a second and power it back on). Give the sensor a few seconds to fail reconnecting to your Bluetooth dongle and it should fall back into pairing mode. Try connecting with the app again.

1 Like

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.