Pythgon API for GShock Watches using BLE
Project description
gshock_api
Announcement
The library now supports sending application-level notifications to watches that support it, namely:
DW-H5600
GBD-H2000
GBD-200
GBD-100
GBD-800
GBD-100BAR
GBX-100
The new API is send_app_notification function. See the examples/api_test.py file for usage examples.
Only the DW-H5600 watch has been tested. If you have any of the watches supporting notifications, please let me know your findings.
Overview
This is a Python API library for G-Shock watches that support Bluetooth Low Energy (BLE) communication.
G(M)W-5600, G(M)W-5000, GA-B2100, GA-B001-1AER, GST-B500, GST-B200, MSG-B100, G-B001, GBD-H1000 (Partial support), MRG-B5000, GCW-B5000, GG-B100, ABL-100WE, Edifice ECB-30, ECB-10, ECB-20, most Edifice watches, most Protrek models.
It can perform the following tasks:
Set watch’s time
Set Home Time (Home City)
Set Alarms
Set Reminders
Set watch’s settings.
Get watch’s name
Get watch’s battery level
Get Watch’s temperature
Get/Set watch’s Timer
Send notifications to watch (supported models)
Dependencies
This project requires the following Python packages: .. code-block:: sh
pytz bleak
So you can install them using the following command: .. code-block:: sh
pip3 install -r requirements.txt
To understand how to use the library, please refer to the `src/examples` folder.
Virtual Environment Setup
It is recommended that you create a virtual environment to run the tests:
Create a virtual environment:
# Create a virtual environment python3 -m venv venv # Activate it (Mac/Linux) source venv/bin/activate # Install dependencies pip3 install -e .Run the tests:
python3 src/examples/api_tests.py [--multi-watch]
The optional `–multi-watch` parameter forces the library to scan for watches every time it tries to connect to a watch. If not provided, the library will try to connect to the last connected watch only. If you have multiple watches, you should use this parameter.
The optional `–multi-watch` parameter forces the library to scan for watches every time it tries to connect to a watch. If not provided, the library will try to connect to the last connected watch only. If you have multiple watches, you should use this parameter.
Installing the library for your project:
pip3 install gshock-api
See this project using this library to run a time server for G-Shock watches.
See also this blog for using the library in the SXMO mobile environment.
Troubleshooting:
If your watch cannot connect, and the `–multi-watch` parameter is not used, remove the `config.ini` file and try again.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gshock_api-2.0.25.tar.gz.
File metadata
- Download URL: gshock_api-2.0.25.tar.gz
- Upload date:
- Size: 29.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d003f0701e72adf650a09ffe5caa946d2c7a94044e1dc7e0120548dad83d1f3f
|
|
| MD5 |
0c289ccae61d88fb997dc1dc4ae4d7e5
|
|
| BLAKE2b-256 |
0cf5bd823120014a7aec9d517de6bc9934e083bdf035d06719fabc626d39ef89
|
File details
Details for the file gshock_api-2.0.25-py3-none-any.whl.
File metadata
- Download URL: gshock_api-2.0.25-py3-none-any.whl
- Upload date:
- Size: 37.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57ea4355bd203328bd9cad16b9f95b07903c1df4cdf180b8f12aa95c331bb244
|
|
| MD5 |
70ec2c3ae624a5f8fd8adf49a7f61817
|
|
| BLAKE2b-256 |
5042bc287fe0a0f127d198a7384ba2b5fb06e84ebed18a8d854d2be1eb8bdb78
|