I'm working on getting all my devices away from cloud software and towards local operation.
One of my sensors is a 5.8G "MmWave Radar" human presence sensor, see image below:
Though externally it appeared similar to the device used in this topic:
https://www.elektroda.com/rtvforum/topic3987582.html
It is actually completely different on the inside as can be seen in the images below. Note that in these images the TuyaMCU chip is temporarily taken off the board to provide a clearer overview.
The sensor uses a CB3S Beken MCU for wifi communication, which is connected to a "more sense" board which has a MCU on it labeled 58h32.
Reading the post by p.kaczmarek2 provided me with the tools to debug and investigate the communication between the Wifi MCU and the TuyaMCU, which appears to use the TuyaMCU protocol at 9600 baud.
The Smart Life app provides the user with a few control options:
- Motion sensitivity, value between 0 and 10
- Micro-Motion sensitivity, value between 0 and 10
- Motion detection range lower limit, value between 0 and 600cm
- Motion detection range upper limit, value between 0 and 600cm
- Micro-Motion detection range lower limit, value between 0 and 600cm
- Micro-Motion detection range upper limit, value between 0 and 600cm
- "Nobody-Time" after what time of no motion/micro-motion should the sensor indicate no presence, value of 30, 60, 90 or 120
Investigating the communication in a bidirectional way with the tool from https://www.elektroda.com/rtvforum/topic3970199.html gave the following results:
Setting motion sensitivity:
Setting micro motion sensitivity:
Setting Motion detection range, changing either the minimum or maximum value always sends both values to the TuyaMCU:
Where dpid 109 is the upper limit and dpid 110 is the lower limit.
Setting Micro-Motion detection range, changing either the minimum or maximum value always sends both values to the TuyaMCU:
Where dpid 111 is the upper limit and dpid 112 is the lower limit.
Setting Nobody Time:
Luminance update from TuyaMCU:
All the above seems logical and the values are matching with my settings in the smart life app. As can be seen, the Tuya MCU transmits back all data received, I'd assume this is for verification.
However, as one may have noticed by now, this does not yet include the actual receiving of the sensor's main value: presence.
When presence is detected or not found anymore, this is sent from the TuyaMCU to the Wifi MCU, however, this message does not seem to adhere to protocol.
Presence detected:
No presence detected:
It seems like it is a "normal" TuyaMCU DPID set command operation, with some bytes left out.
The command #22 is not recognized by the TuyaMCU analyzer tool.
The last value does however seem to match with the expected values of 0 and 1 (though inverted).
Just for verification purposes, I looked up the dpid that the presence state should use in the Tuya Developer Cloud environment, which can be seen in the image below:
This image shows that the "code" or dpid should be 101, which matches with the "65" in the packet sent by the TuyaMCU.
This is where I'm currently stuck as far as trying to implement this sensor in openbeken goes, since I do not know how I can implement/work with this incorrect/unknown TuyaMCU packet.
Perhaps there is someone who can assist me?
One of my sensors is a 5.8G "MmWave Radar" human presence sensor, see image below:

Though externally it appeared similar to the device used in this topic:
https://www.elektroda.com/rtvforum/topic3987582.html
It is actually completely different on the inside as can be seen in the images below. Note that in these images the TuyaMCU chip is temporarily taken off the board to provide a clearer overview.




The sensor uses a CB3S Beken MCU for wifi communication, which is connected to a "more sense" board which has a MCU on it labeled 58h32.
Reading the post by p.kaczmarek2 provided me with the tools to debug and investigate the communication between the Wifi MCU and the TuyaMCU, which appears to use the TuyaMCU protocol at 9600 baud.
The Smart Life app provides the user with a few control options:
- Motion sensitivity, value between 0 and 10
- Micro-Motion sensitivity, value between 0 and 10
- Motion detection range lower limit, value between 0 and 600cm
- Motion detection range upper limit, value between 0 and 600cm
- Micro-Motion detection range lower limit, value between 0 and 600cm
- Micro-Motion detection range upper limit, value between 0 and 600cm
- "Nobody-Time" after what time of no motion/micro-motion should the sensor indicate no presence, value of 30, 60, 90 or 120
Investigating the communication in a bidirectional way with the tool from https://www.elektroda.com/rtvforum/topic3970199.html gave the following results:
Setting motion sensitivity:
Sent by WiFi module:
55 AA 00 06 00 08 6902000400000006 82
HEADER VER=00 SetDP LEN dpId=105 Val V=6 CHK
Received by WiFi module:
55 AA 03 07 00 08 69 02 00 04 00000006 86
HEADER VER=03 State LEN dpId=105 Val V=6 CHK
Setting micro motion sensitivity:
Sent by WiFi module:
55 AA 00 06 00 08 6B02000400000004 82
HEADER VER=00 SetDP LEN dpId=107 Val V=4 CHK
Received by WiFi module:
55 AA 03 07 00 08 6B 02 00 04 00000004 86
HEADER VER=03 State LEN dpId=107 Val V=4 CHK
Setting Motion detection range, changing either the minimum or maximum value always sends both values to the TuyaMCU:
Received by WiFi module:
55 AA 03 07 00 08 6D 02 00 04 00000186 0B
HEADER VER=03 State LEN dpId=109 Val V=390 CHK
Sent by WiFi module:
55 AA 00 06 00 08 6D02000400000186 07
HEADER VER=00 SetDP LEN dpId=109 Val V=390 CHK
Received by WiFi module:
55 AA 03 07 00 08 6E 02 00 04 00000000 85
HEADER VER=03 State LEN dpId=110 Val V=0 CHK
Sent by WiFi module:
55 AA 00 06 00 08 6E02000400000000 81
HEADER VER=00 SetDP LEN dpId=110 Val V=0 CHK
Where dpid 109 is the upper limit and dpid 110 is the lower limit.
Setting Micro-Motion detection range, changing either the minimum or maximum value always sends both values to the TuyaMCU:
Sent by WiFi module:
55 AA 00 06 00 08 6F020004000000FA 7C
HEADER VER=00 SetDP LEN dpId=111 Val V=250 CHK
Received by WiFi module:
55 AA 03 07 00 08 6F 02 00 04 000000FA 80
HEADER VER=03 State LEN dpId=111 Val V=250 CHK
Sent by WiFi module:
55 AA 00 06 00 08 7002000400000000 83
HEADER VER=00 SetDP LEN dpId=112 Val V=0 CHK
Received by WiFi module:
55 AA 03 07 00 08 70 02 00 04 00000000 87
HEADER VER=03 State LEN dpId=112 Val V=0 CHK
Where dpid 111 is the upper limit and dpid 112 is the lower limit.
Setting Nobody Time:
Sent by WiFi module:
55 AA 00 06 00 08 680200040000003C B7
HEADER VER=00 SetDP LEN dpId=104 Val V=60 CHK
Received by WiFi module:
55 AA 03 07 00 08 68 02 00 04 0000003C BB
HEADER VER=03 State LEN dpId=104 Val V=60 CHK
Luminance update from TuyaMCU:
Received by WiFi module:
55 AA 03 07 00 08 67 02 00 04 00000012 90
HEADER VER=03 State LEN dpId=103 Val V=18 CHK
All the above seems logical and the values are matching with my settings in the smart life app. As can be seen, the Tuya MCU transmits back all data received, I'd assume this is for verification.
However, as one may have noticed by now, this does not yet include the actual receiving of the sensor's main value: presence.
When presence is detected or not found anymore, this is sent from the TuyaMCU to the Wifi MCU, however, this message does not seem to adhere to protocol.
Presence detected:
Received by WiFi module:
55 AA 03 22 00 05 6504000100 93
HEADER VER=03 Unk LEN 6504000100 CHK
Sent by WiFi module:
55 AA 00 23 00 01 01 24
HEADER VER=00 Unk LEN 01 CHK
No presence detected:
Received by WiFi module:
55 AA 03 22 00 05 6504000101 94
HEADER VER=03 Unk LEN 6504000101 CHK
Sent by WiFi module:
55 AA 00 23 00 01 01 24
HEADER VER=00 Unk LEN 01 CHK
It seems like it is a "normal" TuyaMCU DPID set command operation, with some bytes left out.
The command #22 is not recognized by the TuyaMCU analyzer tool.
The last value does however seem to match with the expected values of 0 and 1 (though inverted).
Just for verification purposes, I looked up the dpid that the presence state should use in the Tuya Developer Cloud environment, which can be seen in the image below:

This image shows that the "code" or dpid should be 101, which matches with the "65" in the packet sent by the TuyaMCU.
This is where I'm currently stuck as far as trying to implement this sensor in openbeken goes, since I do not know how I can implement/work with this incorrect/unknown TuyaMCU packet.
Perhaps there is someone who can assist me?