Inaccurate gyro readings

i am making a simple app that gets gyroscope data from my watch and sends it back to a server.
the code is as follows:

i know the code inst very good i slapped it together quickly.
i check the server to see what data is sent back. and all the values are weird. for example i rotate the watch along the x axis (yaw) and i jumps from 0.63 to -0.50 and these values are not consistent either sometimes it will just jump back to some value not even close to the original.

i’m pretty sure this isn’t a watch fault i have two identical galaxy watch active 1 and both report back weird values.

i want to extract roll pitch and yaw from the watch but the values are inaccurate.