Page:
ZeTime Protocol Analysis
Pages
Activity Analysis
Activity Sessions List
Activity and Sleep Charts
Amazfit Active Edge
Amazfit Active
Amazfit Balance
Amazfit Band 5 Firmware Update
Amazfit Band 5
Amazfit Band 7
Amazfit Bip 3 Pro
Amazfit Bip 5
Amazfit Bip Firmware Update
Amazfit Bip Getting Started
Amazfit Bip Lite
Amazfit Bip OS
Amazfit Bip S Firmware Update
Amazfit Bip S
Amazfit Bip U Firmware Update
Amazfit Bip U
Amazfit Bip
Amazfit Cheetah Pro
Amazfit Cheetah
Amazfit Cor 2 Firmware Update
Amazfit Cor 2
Amazfit Cor Firmware Update
Amazfit Cor
Amazfit Falcon
Amazfit GTR 3 Pro
Amazfit GTR 3
Amazfit GTR 4
Amazfit GTR Mini
Amazfit GTR
Amazfit GTS 3
Amazfit GTS 4 Mini
Amazfit GTS 4
Amazfit GTS
Amazfit Neo
Amazfit T Rex 2
Amazfit T Rex Ultra
BT Protocol Reverse Engineering
Bangle.js
Bluetooth Intent API
Brainstorming new UI
Calls and SMS
Casio GB 5600B/GB 6900B/GB X6900B/STB 1000
Casio GBX 100/GBD 200
Casio
Companion Device pairing
Configuration
Data Export Import Merging Processing
Developer Documentation
FAQ
Failed to start background service
Femometer Vinca II
Find phone
Firmware Update
FitPro
Flipper Zero
Fossil Hybrid HR
Galaxy Buds
Garmin devices
HPlus Protocol
HPlus
HUAMI GPS
Heart Rate data sharing
Home
How to Release
Huami 2021 Issues
Huami Alarms
Huami Button Actions
Huami Deep Sleep Detection
Huami Device Actions
Huami Heartrate measurement
Huami Server Pairing
Incoming call notification on Lineage OS
Integrating with Sports Tracking apps
Intent API
Log Files
Mi Band 1
Mi Band 2 Firmware Update
Mi Band 2 HMZK Font Format
Mi Band 2
Mi Band 3 Firmware Update
Mi Band 3
Mi Band 4 Firmware Update
Mi Band 4
Mi Band 5 Firmware Update
Mi Band 5
Mi Band 6 Firmware Update
Mi Band 6
Mi Band 7
Mi Band Compatibility Issues
Mi Band Firmware Information
Mi Band Firmware Update
Mi Band
Miscellaneous Pebble Tips
Multiple devices
Music info
MyKronoz ZeTime
New Device Tutorial
New Website
Nothing Ear (1)
Notifications
Nut
OpenTracks API
Pairing types and Auth Key
Pairing
Pebble 2 BTLE specifics
Pebble Datalog
Pebble Firmware updates
Pebble Getting Started
Pebble Language Packs
Pebble Links
Pebble Pairing
Pebble System Apps
Pebble Watchfaces
Pebble
PebbleKit Android App Compatibility
Permissions Explained
PineTime
Restore from Titanium Backup
SMA
SMS notifications are lost somewhere
Sony Headphones
Sony Wena 3
Sports Activities Workouts
SuperCars
Support for a new Device
Test
Translating Gadgetbridge
Watchfaces
Weather
When will a new release appear on f droid
Widget
WithingsSteel
ZeTime Protocol Analysis
Zepp OS
iTag
2
ZeTime Protocol Analysis
José Rebelo edited this page 2023-12-22 17:27:55 +00:00
Table of Contents
- This page has moved
- Watch to phone requests: [Message] sent by notification to handle 0x001e (UUID 0x6006-0x8004)Reply by writting to handle 0x001a (UID 0x6006-0x8003)
- Message have to be splitted into 20 bytes chunks!
- HEADER CODES: 2 bytes: "subject" + "type"subjects:01: general (used for "return codes")02: S/N03:04: time synchronization05:08:0a:0b: (idle??? again???!!)0c: (idle???)16:30: user info50: goals52: information availability53: (idle?? too??)54: activity55: delete sleep data56: sleep5a: (idle one more time?? Seriously?)61: heartbeat rate sensor63: delete blood pressure data64: get blood pressure data76: phone notifications77: weather90: switch setting93: bind start94: bind end98: calendar month view99: calendar day viewd0: musicd8: upload nfc
- types:70: request71: notification80: response81: return code when in 01
- ============S/N:(watch to phone)(request: 6f02700100008f)
- 6f PREAMBLE0280 TYPE: TIME S/N RESPONSEpayload size (2 bytes) (0c00)S/N, ASCII encoded (12 bytes)8f END
- 6f PREAMBLE0471 TYPE: TIME SYNCHRONIZATION NOTIFICATIONpayload size (2 bytes) (0c00)year (2 bytes)mont (1 byte)day (1 byte)hour (1 byte)minutes (1 byte)seconds (1 byte)"0000010100" (5 bytes) I don't know the utility of these bytes. Anyway, it works when they're set to this value.8f END
- activity info avail. (2 bytes)
- sleep (2 bytes)heart (2 bytes)?? (2 bytes)8f END
- 6f PREAMBLE5480 TYPE: ACTIVITY RESPONSEpayload size (2 bytes)packet number (2 bytes)unix epoch (4 bytes)steps (4 bytes)calories burnt (4 bytes)meters walked (4 bytes)minutes of activity (4 bytes)8f END
- SLEEP:(watch to phone)(request: 6f5670020000008f)
- 6f PREAMBLE5680 TYPE: SLEEP RESPONSEpayload size (2 bytes)packet number (2 bytes)unix epoch (4 bytes)01 sleep type8f END
- sleep types:10: begin11: end00: deep sleep01: light sleep02: awake03: awake (beginning)
- 6f PREAMBLE6180 TYPE: HEARBEAT RESPONSEpayload size (2 bytes) (0700)packet number (2 bytes)unix epoch (4 bytes)heart rate measure (1 byte)8f END
- notif same type (1 byte) //message count
- Notification types:00: missed call01: SMS02: Yellow buble (unknown notification)03: e-mail04: nothing05: incomming call06: stop incomming call (don't forget to send it, otherwise the watch doesn't stop ringing)07: Multi-users message (I think, from the icon)08: Viber09: Snapchat0a: Whatsapp0b: I don't know what this is0c: Facebook0d: Hangout0e: GMail0f: FB Messenger10: Instagramand others...
- 6f PREAMBLE9971 TYPE: CALENDAR EVENT NOTIFICATIONpayload size (2 bytes)event number (1 byte) (1-3 ?)year (2 bytes)month (1 byte)day (1 byte)hour (2 bytes)minutes (2 bytes)text size (1 byte)TEXT (UTF-8 encoded)8f END
- WEATHER:(phone to watch)
- 6f PREAMBLE7771 TYPE: WEATHER NOTIFICATIONcurrent weather (5 bytes)d+1 weather (5 bytes)d+2 weather (5 bytes)d+3 weather (5 bytes)Location name (UTF-8 encoded)8f END
- weather (5 bytes):"00" ? always 00 (unit: 0 = °C)current temperatureminmax"icon"
- icons:01: cloudy04: rainy06: stormy
- Requests:00: return simple status.Notifications:00: play; reply with simple status01: pause; reply with simple status02: precedent song; reply with simple status03: next song; reply with simple status04 set volume to + arg; reply with volume statusReplies:simple status: status + title (UTF-8)00: playing01: pausedvolume status: "02" + current volume (1 byte)
This page has moved
⚠ The wiki has been replaced by the new website - this page has been moved: https://gadgetbridge.org/internals/specifics/zetime-protocol/
Write [message] to handle 0x0012 (UUID 0x6006-0x8001) then "0x03" @0x0016 (0x6006-0x8002) to validate The reply is sent by notification from @0x0016
Watch to phone requests: [Message] sent by notification to handle 0x001e (UUID 0x6006-0x8004) Reply by writting to handle 0x001a (UID 0x6006-0x8003)
Messages composition: '6f' + "subject" + "type" + payload size (2 bytes) + payload + '8f'
Message have to be splitted into 20 bytes chunks!
HEADER CODES: 2 bytes: "subject" + "type" subjects: 01: general (used for "return codes") 02: S/N 03: 04: time synchronization 05: 08: 0a: 0b: (idle??? again???!!) 0c: (idle???) 16: 30: user info 50: goals 52: information availability 53: (idle?? too??) 54: activity 55: delete sleep data 56: sleep 5a: (idle one more time?? Seriously?) 61: heartbeat rate sensor 63: delete blood pressure data 64: get blood pressure data 76: phone notifications 77: weather 90: switch setting 93: bind start 94: bind end 98: calendar month view 99: calendar day view d0: music d8: upload nfc
types: 70: request 71: notification 80: response 81: return code when in 01
return codes (0181): 00: OK 01: NOK???
============ S/N: (watch to phone) (request: 6f02700100008f)
6f PREAMBLE 0280 TYPE: TIME S/N RESPONSE payload size (2 bytes) (0c00) S/N, ASCII encoded (12 bytes) 8f END
TIME SYNCHRONIZATION: (phone to watch)
6f PREAMBLE 0471 TYPE: TIME SYNCHRONIZATION NOTIFICATION payload size (2 bytes) (0c00) year (2 bytes) mont (1 byte) day (1 byte) hour (1 byte) minutes (1 byte) seconds (1 byte) "0000010100" (5 bytes) I don't know the utility of these bytes. Anyway, it works when they're set to this value. 8f END
INFORMATION AVAILABILITY: (watch to phone) (request: 6f52700100008f)
6f PREAMBLE 5280 TYPE: INFORMATION AVAILABILITY ANSWER payload size (2 bytes)
activity info avail. (2 bytes)
sleep (2 bytes) heart (2 bytes) ?? (2 bytes) 8f END
ACTIVITY REPORT: (watch to phone) (request: 6f5470020000008f)
6f PREAMBLE 5480 TYPE: ACTIVITY RESPONSE payload size (2 bytes) packet number (2 bytes) unix epoch (4 bytes) steps (4 bytes) calories burnt (4 bytes) meters walked (4 bytes) minutes of activity (4 bytes) 8f END
SLEEP: (watch to phone) (request: 6f5670020000008f)
6f PREAMBLE 5680 TYPE: SLEEP RESPONSE payload size (2 bytes) packet number (2 bytes) unix epoch (4 bytes) 01 sleep type 8f END
sleep types: 10: begin 11: end 00: deep sleep 01: light sleep 02: awake 03: awake (beginning)
HEARBEAT SENSOR (watch to phone) (request: 6f6170020000008f)
6f PREAMBLE 6180 TYPE: HEARBEAT RESPONSE payload size (2 bytes) (0700) packet number (2 bytes) unix epoch (4 bytes) heart rate measure (1 byte) 8f END
PHONE NOTIFICATIONS: (phone to watch)
6f PREAMBLE 7671 TYPE: PHONE NOTIFICATION NOTIFICATION payload size (2 bytes) Notification type (1 byte)
notif same type (1 byte) //message count
subject size (1 byte) text size (1 byte) subject (UTF-8 encoded) text (UTF-8 encoded) timestamp (YYYYMMDDTHHmmSS, ASCII encoded, 1 byte per character) 8f END
Notification types: 00: missed call 01: SMS 02: Yellow buble (unknown notification) 03: e-mail 04: nothing 05: incomming call 06: stop incomming call (don't forget to send it, otherwise the watch doesn't stop ringing) 07: Multi-users message (I think, from the icon) 08: Viber 09: Snapchat 0a: Whatsapp 0b: I don't know what this is 0c: Facebook 0d: Hangout 0e: GMail 0f: FB Messenger 10: Instagram and others...
CALENDAR EVENT: (phone to watch)
6f PREAMBLE 9971 TYPE: CALENDAR EVENT NOTIFICATION payload size (2 bytes) event number (1 byte) (1-3 ?) year (2 bytes) month (1 byte) day (1 byte) hour (2 bytes) minutes (2 bytes) text size (1 byte) TEXT (UTF-8 encoded) 8f END
WEATHER: (phone to watch)
6f PREAMBLE 7771 TYPE: WEATHER NOTIFICATION current weather (5 bytes) d+1 weather (5 bytes) d+2 weather (5 bytes) d+3 weather (5 bytes) Location name (UTF-8 encoded) 8f END
weather (5 bytes): "00" ? always 00 (unit: 0 = °C) current temperature min max "icon"
icons: 01: cloudy 04: rainy 06: stormy
MUSIC PROTOCOL: (both ways)
Requests: 00: return simple status. Notifications: 00: play; reply with simple status 01: pause; reply with simple status 02: precedent song; reply with simple status 03: next song; reply with simple status 04 set volume to + arg; reply with volume status Replies: simple status: status + title (UTF-8) 00: playing 01: paused volume status: "02" + current volume (1 byte)
NEW WEBSITE
General
- Home
- FAQ
- ReadMe
- Configuration
- Notifications
- ChangeLog
- Widget
- Weather
- Data Backup
- Pairing
- Find phone
- Music info
- Permissions Explained
- Firmware Update
- Automation via Intents
Sports/Activities
- Sports Activities Workouts
- Activity Sessions List
- Activity and Sleep Charts
- Heartrate measurement
- Integrating Sports Tracking apps with Gadgetbridge Sports Activities/Workouts
Smart Device Related
- Bangle.js
- Casio devices
- FitPro
- Fossil Hybrid HR
- Garmin devices
- HPlus
- Huami devices
- Amazfit Active
- Amazfit Active Edge
- Amazfit Balance
- Amazfit Band 5
- Amazfit Band 7
- Amazfit Bip
- Amazfit Bip Lite
- Amazfit Bip S
- Amazfit Bip U
- Amazfit Bip 3 Pro
- Amazfit Bip 5
- Amazfit Cheetah
- Amazfit Cheetah Pro
- Amazfit Cor
- Amazfit Cor 2
- Amazfit Falcon
- Amazfit GTR
- Amazfit GTR 3
- Amazfit GTR 3 Pro
- Amazfit GTR 4
- Amazfit GTR Mini
- Amazfit GTS
- Amazfit GTS 3
- Amazfit GTS 4
- Amazfit GTS 4 Mini
- Amazfit Neo
- Amazfit T-Rex
- Amazfit T-Rex 2
- Amazfit T-Rex Ultra
- Mi Band 1
- Mi Band 2
- Mi Band 3
- Mi Band 4
- Mi Band 5
- Mi Band 6
- Mi Band 7
- MyKronoz ZeTime
- Pebble
- PineTime
- Sony Wena 3
- SMA
- WithingsSteel
Wireless Earbuds
Others
- iTag Keyring trackers
- Nut Keyring trackers
- UM25 USB Voltage meter
- VESC BLDC controller VESC
- Flipper Zero Multi-tool Device for Geeks
- Roidmi Roidmi/Mojietu FM Trans.
- Vibratissimo Private toy
- Shell Racing Toy RC cars
- Femometer Vinca II
Full list of supported devices
Development
- How to Release
- Developer Documentation
- BT Protocol Reverse Engineering
- Support for a new Device
- New Device Tutorial
- Translating Gadgetbridge
- OpenTracks-API
- Intent-API
Feature Discussion
FAQ