An attempt at describing the Hipee Posture UP BLE protocol
Unexplored:
- Offline record upload
- Game Modes
- OTA Upgrade (TI)
name "JZ-" or "jiaozi-"
0000FFF0-0000-1000-8000-00805F9B34FB
Notify - 0000fff1-0000-1000-8000-00805f9b34fb
Write - 0000fff2-0000-1000-8000-00805f9b34fb
All communication is big endian.
[0x09 , PARAMETER_LENGTH, CMDID, PARAMETER_DATA, CHECKSUM]
Last byte must satisfy that the sum of all bytes in message % 256 == 0
ba += bytearray([256 - (sum(ba) % 256)])
CMDID | DIR | DESCRIPTION |
---|---|---|
0x01 | W | Request User device confirmation |
0x02 | R | User Confirmed Device |
0x03 | W | Request info - Power Level , Remaining Space, Version |
0x04 | R | Reply with Power Level, Remaining Space, version |
0x05 | W | Set the device time |
0x06 | R | Returns the newly set time |
0x30 | W | Set Device Configuration |
0x31 | R | return Device Configuration |
0x32 | W | Reset current position to zero |
0x33 | W | Current zero position information |
0x34 | W | enable/disable Live position update |
0x35 | R | Live position information |
0x44 | W | Request battery charge state/status |
0x45 | R | Respond with battery charge state/status |
0x46 | W | Get Device Configuration |
0x47 | R | Returns the device configuration |
0x50 | W | Set button double tap options |
0x51 | R | Reply to set double tap options, unknown |
0xff | R | Error response |
Parameter Length: 0
Parameter Length: 1
Byte | Length | Value |
---|---|---|
00 | 1 | Bool - was device confirmed by user |
Parameter Length: 0
Parameter Length: 7
Byte | Length | Value |
---|---|---|
00 | 1 | Battery in percent |
01 | 2 | Version |
03 | 2 | Storage space remaining on device out of 1024 |
Parameter Length: 4
Byte | Length | Value |
---|---|---|
00 | 4 | The current time in seconds since the Epoch. hex(round(time.time())) |
Parameter Length: 4
Byte | Length | Value |
---|---|---|
00 | 4 | The current time stored on the device in seconds since the Epoch |
Parameter Length: 14
Byte | Length | Value |
---|---|---|
00 | 1 | Shake mode (0=Long, 1=Short) |
01 | 1 | Shake power < 100 (over 100 will cause device reboot) |
02 | 1 | Shake reminder for forward back angle in degrees |
03 | 1 | Shake reminder for sideways back angle in degrees (does not trigger shake) |
04 | 1 | Unknown - constant value 1 |
05 | 1 | Unknown - constant value 244 |
06 | 1 | Unknown - constant value 7 |
07 | 1 | Unknown - constant value 208 |
08 | 1 | Sitting time in seconds for log sit reminder |
09 | 1 | Special number (unknown) |
0A | 1 | Shake delay reminder in seconds |
0B | 1 | Do not disturb (suppress shakes) |
0C | 1 | Exercise angle reminder |
0D | 1 | Unknown - constant value 15 |
Parameter Length: 4
Byte | Length | Value |
---|---|---|
00 | 4 | Device time |
Parameter Length: 0
Parameter Length: 3
Byte | Length | Value |
---|---|---|
00 | 1 | Left right angle |
01 | 1 | Front back angle with a 90 degree offset (?) |
02 | 1 | Front back angle |
Parameter Length: 3
Byte | Length | Value |
---|---|---|
00 | 2 | Time in milliseconds between each posture notification |
02 | 1 | Bool - start/stop sending live updates |
Parameter Length: 16
Byte | Length | Value |
---|---|---|
00 | 4 | Current time |
04 | 1 | Back forward angle |
05 | 1 | Back left right angle |
06 | 2 | Number of shake alerts |
08 | 2 | Long sit counter (?) |
0A | 1 | Mode (?) |
0B | 1 | Do not disturb |
0C | 4 | Daily challenge progress |
Parameter Length: 0
Parameter Length: 2
Byte | Length | Value |
---|---|---|
00 | 1 | Battery level in percent |
01 | 1 | Charge state in (0=Charging, 1=Full, 2=Discharging) |
Parameter Length: 0
Parameter Length: 15
Byte | Length | Value |
---|---|---|
00 | 1 | Shake mode (0=Long, 1=Short) |
01 | 1 | Shake power < 100 (over 100 will cause device reboot) |
02 | 1 | Shake reminder for forward back angle in degrees (0-90) |
03 | 1 | Shake reminder for sideways back angle in degrees (does not trigger shake) |
04 | 1 | unknown - constant value 1 |
05 | 1 | Unknown - constant value 244 |
06 | 1 | Unknown - constant value 7 |
07 | 1 | Unknown - constant value 208 |
08 | 1 | Sitting time in seconds for log sit reminder |
09 | 1 | Special number (unknown) |
0A | 1 | Shake delay reminder in seconds |
0B | 1 | Do not disturb (suppress shakes) |
0C | 1 | Exercise angle reminder |
0D | 1 | Unknown - constant value 15 |
Parameter Length: 4
Byte | Length | Value |
---|---|---|
00 | 1 | Enable / Disable do not disturb double tap |
01 | 1 | unknown - constant value 0 |
02 | 1 | Minutes after disabling double tap to reenable shake alerts |
03 | 1 | unknown - constant value 1 |
Parameter Length: 5
Byte | Length | Value |
---|---|---|
00 | 1 | Unknown (?) |
01 | 1 | Unknown (?) |
02 | 1 | Unknwon (?) |
03 | 1 | Unknwon (?) |
04 | 1 | Unknwon (?) |