That’s what works currently. I’m adapting your code to see what I can get working.
The 0505 attribute does not seem to be a level, it is reported at some interval. Judging by the fact that it is referred to as a bed sensor I think it’s just a timer with time elapsed since last vibration. In any case it reports a large value when the sensor is not moving, so the value needs to be something in seconds I guess.
ca98cab-69db-4d26-9295-807a7a299c5a 6:03:43 PM: debug Aqara vibration sensor: Creating event [name:vibrationLevel, value:5177344, descriptionText:Aqara vibration sensor: Vibration level reported at 5177344]
8ca98cab-69db-4d26-9295-807a7a299c5a 6:03:43 PM: info Aqara vibration sensor: Vibration level reported at 5177344
8ca98cab-69db-4d26-9295-807a7a299c5a 6:03:43 PM: debug Aqara vibration sensor: Parsing ‘read attr - raw: C92E0101010E05052300004F00, dni: C92E, endpoint: 01, cluster: 0101, size: 0E, attrId: 0505, encoding: 23, value: 004f0000’
8ca98cab-69db-4d26-9295-807a7a299c5a 6:03:43 PM: debug Aqara vibration sensor: Parsing ‘read attr - raw: C92E0101010E05052300004F00, dni: C92E, endpoint: 01, cluster: 0101, size: 0E, attrId: 0505, encoding: 23, value: 004f0000’
I’ve seen that 004f0000 value a lot over the last days and only the first 4 digits change, the last 4 stay at zero. I’m not an expert at value encoding so I need some expertise there 
Aside from the 1,2 and 3 value for the 0055 attribute it also reports a larger value which now causes an error:
error java.lang.NumberFormatException: For input string: “00522105030002” @line 205 (parseReadAttrMessage)
debug Aqara vibration sensor: Parsing ‘read attr - raw: C92E0101011455002102000305215200, dni: C92E, endpoint: 01, cluster: 0101, size: 14, attrId: 0055, encoding: 21, value: 00522105030002’
Just received a battery report, that seems to work.
Axis measurement issue:
error java.lang.NumberFormatException: For input string: “02a” @line 223 (parseReadAttrMessage)
8ca98cab-69db-4d26-9295-807a7a299c5a 6:14:39 PM: debug Aqara vibration sensor: Parsing ‘read attr - raw: C92E010101120805252A000A00A704, dni: C92E, endpoint: 01, cluster: 0101, size: 12, attrId: 0508, encoding: 25, value: 04a7000a002a’
This gives somewhat meaningful values:
else if (attrId == "0508") {
//def x = (short)Integer.parseInt(value[9..11],2)
//def y = (short)Integer.parseInt(value[5..7],2)
//def z = (short)Integer.parseInt(value[1..3],2)
def z = zigbee.convertHexToInt(value.substring(0,3))
def y = zigbee.convertHexToInt(value.substring(4,7))
def x = zigbee.convertHexToInt(value.substring(8,11))