How to troubleshoot Aqara vibration sensors "stuck" on "detected"

I have two Aqara vibration sensors which are constantly showing a state of “on” in Developer Tools or “Detected” on Lovelace cards, even when they are perfectly still.

They are paired with a Conbee II on a Raspberry Pi 4 using deCONZ/Phoscon. In Phoscon, they also show an icon indicating that vibration is being detected.

The sensors are at least partially working because they are reporting what seem to be appropriate battery levels and temperatures. Also, one of the vibration sensors was reporting vibrations accurately for months, but seemed to stop doing so when the second, brand new vibration sensor was paired a day ago; now they both are always “on.” (Perhaps this timing is a coincidence; I was also upgrading HA from 2022.1.x and OS 7.3)

I’m running Home Assistant core-2022.2.6 and OS 7.4.

Any suggestions for bringing these Aqara vibration sensors back to useful life?

2 Likes

Have you tried resetting them by removing/replacing the battery?

yes, but that doesn’t seem to help

Hey internet,

I am coming 7 years later in this thread to share the answer as I was looking for it and didn’t find it anywhere.

You have to set

vibration_timeout

Thisis the time in seconds after which vibration is cleared after detecting it (default 90 seconds). This is set in my case with mqtt call, or you can do it via the zigbee2mqtt web interface

MQTT publish: topic 'zigbee2mqtt/bridge/response/device/options', payload '{"data":{"from":{"device_temperature_calibration":0,"legacy":false, vibration_timeout":0},"id":"XXXXXXXXXXXXXXXXXX","to":{"device_temperature_calibration":0,"legacy":false,"vibration_timeout":90}},"status":"ok","transaction":"XXXXXXXXXXXX}'
2 Likes

Hey @drkbg, thanks for updating this thread, even if it’s 7 years old. I also stumbled upon here because I ran into the same problem. I don’t think the aqara vibration sensor has that option (at least not in deconz).

{
  "config": {
    "battery": 100,
    "on": true,
    "pending": [],
    "reachable": true,
    "sensitivity": 1,
    "sensitivitymax": 21,
    "temperature": 3500
  },
  "ep": 1,
  "etag": "0c896ba29e3e3dd0d2144056c16df0d4",
  "lastannounced": null,
  "lastseen": "2022-08-15T19:19Z",
  "manufacturername": "LUMI",
  "modelid": "lumi.vibration.aq1",
  "name": "Wasmachine",
  "state": {
    "lastupdated": "2022-08-15T19:19:54.357",
    "tiltangle": 84,
    "vibration": true,
    "vibrationstrength": 21
  },
  "swversion": "20180130",
  "type": "ZHAVibration",
  "uniqueid": "XX:XX:XX:XX:XX:XX:XX:0f-01-0101"
}

Any update on this? Any solution for ZHA? I bought some white-labelled Tuya vibration sensors they too get stuck ‘on’ after the initial detection.

If you have already replaced the battery/batteries and still have problems then root cause could be that the initial pairing has partially failed which means that it was not properly paired in the first place, and if so then the solution is usually to factory reset the device and re-pair it (which can be done without removing it) as that should correct issues caused by a not completed pairing.

That is of course assuming that you have already upgraded to latest Zigbee Coordinator firmware too. See → Generic best practice tips on improving Zigbee network range and general stability · zigpy/zigpy Wiki · GitHub

Make sure that bronze DDFs are disabled. I had enabled bronze to pair a new device and then left it enabled. After turning it off again, the vibration state resets again.

I have the same issue. It always shows me as detected! and I have it through the tuya zigbee hub.

Any solution? It works ok in the tuya app!

That fixed it for me. Thanks!

Edit: I thought I would add what I did specifically.

:one: Open MQTT Explorer and connect to your MQTT broker. (im on a mac)
:two: Publish this to the topic:

zigbee2mqtt/bridge/request/device/options

Payload:

{
  "id": "YOUR_SENSOR_ID",
  "options": {
    "vibration_timeout": 30
  }
}

(Replace YOUR_SENSOR_ID with the actual Zigbee2MQTT device ID, e.g., 0x00158d0007e31543.)
:three: Verify the response in:

zigbee2mqtt/bridge/response/device/options

Successful response should look like this:

{
  "id": "0x00158d0007e31543",
  "options": {
    "vibration_timeout": 30
  }
}

:fire: Why This Works

  • By default, vibration_timeout is 90 seconds, meaning the sensor stays “on” too long.
  • Setting it to 30 seconds makes the sensor reset faster, preventing it from getting stuck.
  • Works great for dryer cycle tracking or other automations that need accurate vibration events.