Athom Human Presence Sensor mmwave (share your experiences)

I had 2 of these show up today.

They are super easy to install.

Is anyone else running into a problem whereby once mmwave sensor moved to Detected state, it never really seems to go back to Clear after vacating the room? Both the mmwave sensor and occupancy entities get stuck in a Detected state.

EDIT/UPDATE: Having this sensor close to other devices like smart TV is keeping the mmwave sensor from clearing.

I have noticed this a few times as it causes my lights to stay on (via my automation).

I have some C3-32S, is it as simple as replacing the GPIO with corresponding GPIO in the configuration file?

I’ve had this for a few weeks with Blackader’s config, but one thing I’ve noticed is that it’s detecting presence BEHIND the sensor though a wall (which is a bathroom), even with the sensitivity turned all the way down.

Anybody observed this and have any tips?

Can anyone confirm if this sensor functions properly while being blocked from accessing the Internet?

My Athom sensor is with updated ESPHome configuration. Blackadder above. My ESP nodes are all only accessible on local network. It operates by sending API data to my local Home Assistant. The selling point of HA is that you do NOT need to access cloud / internet. Everything is local. Of course that does not stop you from setting up access to HA from the internet. But that is a luxury.

I figured it would be ok since it’s esp home but was hoping for confirmation before ordering. I do my best to only buy/use items like this that don’t require an Internet access. Love home assistant for that.

Thank you.

And your last line, external access to your home assistant is a luxury… Why do you say that?

I’ve now owned Athom human presence sensor for a week. Few observations:

  • wish it had the newer ESP32 boards. ESP8266 works like a charm though.
  • set up is via ESPHome.
  • mDNS is disabled on both the device and HA ESPHome. sensor is on an isolated VLAN compared to HA. Took a few days of firewall rules and tinkering to get the discovery and communication part ironed out. Essence is:
    ** {80, 6053, 8266} ports were opened between the VLANs
    ** created a sample sensor_xyz.yaml file with wifi parameters (e.g manual_ip, dns, time) etc
    ** created a sennsor_xyz.bin from above
    ** flashed the sensor using google chrome
    ** manually entered ip address of sensor in ESPHome integration for device pairing
  • as it is my first presence sensor, i’m still playing around w/ various parameters. So, don’t have a firm grasp on the interplay of occupancy, pir_sensor, mmwave_sensor in relation to various times (fading, sensitivity etc)
  • penetration of mmwave is good across 1 indoor walls being dry-wall meaning if the sensor is pointing outwards from a room it detects presence. Therefore, this should be taken into account before fixing its installed position.

Here’s sample_xyz.yaml in case anyone else could benefit from it:

substitutions:
  name: sensor-presence-mbr
  friendly_name: sensor-presence-mbr
packages:
  Athom_Technology.Presence_Sensor: github://athom-tech/athom-configs/athom-presence-sensor.yaml
esphome:
  name: ${name}
  name_add_mac_suffix: false
  friendly_name: ${friendly_name}
api:
  encryption:
    key: <some_key>
time:
- platform: sntp
  id: sntp_time
  servers: <stratum_1or2_server_fqdn>
mdns:
  disabled: True
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: <whatever_ip>
    gateway: <whatever_gw>
    subnet: <whatever_mask>
    dns1: <ip1>
    dns2: <ip2>
  domain: <domain>
1 Like

I got my sensor last night and got it all set up and taking over lighting control for a room that used to use a Aeotech multi sensor 6. The old multi sensor has worked GREAT for about 4 years, but we occasionally struggled with needing to keep the lights on for longer than the 4 minutes they would stay on after last detecting motion. Usually when we were sitting in the room not moving much. I had multiple ways around this, all involving manually toggling a Boolean that was a condition for turning the lights off. It was always a pain to toggle this manually and impossible to automate because of the infrequent and random times we needed to keep them on longer than 4 minutes.

I was hoping it would want to automatically update the Athoms firmware but didn’t see that as an option (it wanted me to provide my own file for updating) so I just blocked it from the Internet and proceeded to fine tune for my needs. Works great without Internet access.

Surprisingly, the mmWave sensor is the quickest of the three possible sensors to use for triggers to turn lights on and off. At best it’s 1 full second faster than the PIR sensor and the occupancy sensor. So I have only the mmWave sensor as my triggers.

When it goes on (which is INSTANT. The Aeotech was fast already but this is much faster) it turns on the lights if they are off. I set the “fading time” setting down to 2 seconds which turns the mmWave sensor back to clear within 5 seconds of actually leaving the room. On mmWave clear trigger it starts a 25 second countdown then turns the lights off (conditional on the mmWave sensor being clear at that time to avoid shutting off if we walked back into the room).

In testing last night it works perfectly. Time will tell if 25 seconds is the right time for us but that’s an easy adjustment.

So far so good this sensor is amazing.

description: ""
mode: single
trigger:
  - platform: state
    to: "on"
    entity_id:
      - binary_sensor.athom_presence_sensor_9bd143_mmwave_sensor
    id: mmWave on
  - platform: state
    to: "off"
    entity_id:
      - binary_sensor.athom_presence_sensor_9bd143_mmwave_sensor
    id: mmWave off
  - platform: state
    entity_id:
      - timer.playroom_off_timer
    to: idle
    id: Timer Off
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - mmWave on
          - condition: sun
            after: sunrise
          - condition: state
            entity_id: light.playroom_lights
            state: "off"
        sequence:
          - service: light.turn_on
            data: {}
            target:
              entity_id: light.playroom_lights
      - conditions:
          - condition: trigger
            id:
              - mmWave off
        sequence:
          - service: timer.start
            data:
              duration: "00:00:25"
            target:
              entity_id: timer.playroom_off_timer
            enabled: true
      - conditions:
          - condition: trigger
            id:
              - Timer Off
          - condition: state
            entity_id: binary_sensor.athom_presence_sensor_9bd143_mmwave_sensor
            state: "off"
        sequence:
          - service: light.turn_off
            data: {}
            target:
              entity_id: light.playroom_lights

Did it have ESPHome preflashed?

Yep. I plugged it in and by the time I took the 5 steps over to my computer home assistant had already found it. I added the esphome integration and swapped it out as the trigger in my automation and could have had it all set up and working in about 5 minutes. Still only took less than 20 to do all the fine tuning and figuring out how it all worked. Very simple to set up.

The hardest part about the entire thing was (or will be…right now it’s just sitting on a shelf above an outlet) will be to figure out how to cleanly install the sensor with power cables hidden. I was probably lucky that the first spot I put it worked perfectly for me.

I don’t understand what a few people above have as all the code the posted. What is that doing for you? The yaml code that starts with substitutions and packages and all that jazz…?

Athom provides an online copy of the YAML (or similar) that has already been used to create your sensor. You can copy and use it to adopt the sensor into the ESPHome dashboard and then if you decide you want to make any changes or add / change names etc, then reload a new copy to your sensor. The YAML creates a bin file which includes all the necessary software libraries to allow your sensor to run in what ever way you want.

Since ESPHome is a more DIY orientated platform, I would say the majority of the people on this thread have made a change or two to their software. It is a tinkerers heaven

Edit: check out the bible for ESPHome

This is my first esphome device. Maybe my Case is just different or basic. I was impressed at how easy it was to set up right out of the box. I’ve been doing this a few years now tho and admittedly it could have taken days to set up and understand if it was my first device.

I have some esp8266 boards from a few years ago… One is controlling something but it just works and has eapeasy on it. Before esphome was a thing. I’ve been meaning to flash esphome on a spare but just don’t have a use for it yet.

I started some 18 months ago and have been sucked in. What you can do with ESP nodes as just awesome. Weather station , irrigation, lighting controllers, blinds, Environment sensors. Tinker away

See the post a bit further up the thread about flashing the replacement code from Blakadder. I have that on mine and it works great. It cleans up a few little things.

1 Like

Oh. I get it now. Idk why I was so confused. That code is used as the file to upload for the “OTA update” on the device.

I’ll have to read thru and see what all it changes and what “little things it fixes”.

Has anyone had any issues with the illuminance sensor? Mine goes to “unknown”.

Checking the device logs i see:

[12:59:09][D][status_led:029]: Restoring light state OFF
[12:59:14][W][bh1750.sensor:091]: Starting measurement for BH1750 failed
[12:59:14][D][sensor:093]: ‘Light Sensor’: Sending state nan lx with 1 decimals of accuracy
[12:59:14][D][status_led:029]: Restoring light state OFF
[12:59:17][D][sensor:093]: ‘WiFi Signal Sensor’: Sending state -54.00000 dBm with 0 decimals of accuracy
[12:59:19][W][bh1750.sensor:053]: Turning on BH1750 failed
[12:59:19][D][sensor:093]: ‘Light Sensor’: Sending state nan lx with 1 decimals of accuracy
[12:59:19][D][status_led:029]: Restoring light state OFF
[12:59:24][W][bh1750.sensor:053]: Turning on BH1750 failed
[12:59:24][D][sensor:093]: ‘Light Sensor’: Sending state nan lx with 1 decimals of accuracy
[12:59:24][D][status_led:029]: Restoring light state OFF
[12:59:30][W][bh1750.sensor:102]: Reading BH1750 data failed
[12:59:30][D][sensor:093]: ‘Light Sensor’: Sending state nan lx with 1 decimals of accuracy
[12:59:30][D][status_led:029]: Restoring light state OFF

when updating i get a “failure to communicate with BH1750”

Any ideas for fixing it? It is a new sensor… I’ve had 2 working fine for 3+ months, and after seeing some issues with the tuya zigbee mmwave devices I decided to swap some out.

And then after just leaving it for 10 minutes it came good again??

[13:09:25][D][bh1750.sensor:159]: ‘Light Sensor’: Got illuminance=255.2lx

Whats that about? I’ll keep an eye on it.

I’m struggling to get a good location for the sensor and need some help… My room looks roughly like this:

  • Red star is the current sensor location, roughly 1m above ground and facing the door
  • Left is window
  • Blue star potentially better position (1.5m above ground)? Would face the window with curtains though

The mmWave sensor works great but it’s not fast enough for triggering lights as it activates when I’m roughly in the middle of the room. The PIR sensor has a big enough range to trigger when I’m just walking past the room

Any suggestions how to fix this? Needing power is the biggest hurdle currently