Skip to main content

Python API to interact with Dexcom Share API

Project description

Donate PyPI GitHub Workflow Status

pydexcom

A simple Python API to interact with Dexcom Share service. Used to get real time Dexcom GCM sensor data.

Setup

  1. Download the Dexcom G6 / G5 / G4 mobile app and enable the Share service.

    Note: the service requires setup of at least one follower to enable the share service, but pydexcom will use your credentials, not the follower's.

  2. Install the pydexcom package.

    pip3 install pydexcom
    

Usage

>>> from pydexcom import Dexcom
>>> dexcom = Dexcom("username", "password") # add ous=True if outside of US
>>> bg = dexcom.get_current_glucose_reading()
>>> bg.value
85

>>> bg.mmol_l
4.7

>>> bg.trend
4

>>> bg.trend_description
'steady'

>>> bg.trend_arrow
'→'

>>> bg.time
datetime.datetime(2020, 5, 6, 18, 18, 42)

FAQ

What do I need to get started?
If you are currently on the Dexcom GCM system, all you need is the appropriate mobile app with the Dexcom Share service enabled.
Where is this package being used?
For now this package is mainly being used in the Dexcom home assistant integration, but is generic enough to be used in lots of applications. In fact, reddit user paulcole710 used it to track glucose levels using a Raspberry Pi and e-ink display.
Why not use the official Dexcom Developer API?
The official Dexcom API is a great tool to view trends, statistics, and day-by-day data, but is not suitable for real time fetching of glucose readings.
How can I let you know of suggestions or issues?
By all means submit a pull request if you have a feature you'd like to see in the next release, alternatively you may leave a issue if you have a suggestion or bug you'd like to alert me of.
Are there any features in development?
Sure, I'm thinking of implementing a session status checker, or maybe an asynchronus version. That being said, simplicity - getting real time blood glucose information - is most important to this package.

Development

Dexcom class
Method Input Output Description
__init__ username:str,
password:str,
ous:bool=True
Dexcom Dexcom constructor, stores authentication information
create_session Creates Dexcom Share API session by getting session id
verify_serial_number serial_number:str bool Verifies if a transmitter serial number is assigned to you
get_glucose_readings minutes:int=1440,
max_count:int=288
[GlucoseReading]/
None
Gets max_count glucose readings within the past minutes, None if no glucose reading in the past 24 hours
get_latest_glucose_reading GlucoseReading/
None
Gets latest available glucose reading, None if no glucose reading in the past 24 hours
get_current_glucose_reading GlucoseReading/None Gets current available glucose reading, None if no glucose reading in the past 6 minutes
GlucoseReading class
Attribute Definition Example
value Blood glucose value in mg/dL. 85
mg_dl Blood glucose value in mg/dL. 85
mmol_l Blood glucose value in mmol/L. 4.7
trend Blood glucose trend information as number 0 - 9 (see constants). 4
trend_description Blood glucose trend information description (see constants). 'steady'
trend_arrow Blood glucose trend information as unicode arrow (see constants). '→'
time Blood glucose recorded time as datetime. datetime.datetime(2020, 5, 6, 18, 18, 42)
Constants
Trend Trend description Trend arrow
0 '' ''
1 'rising quickly' '↑↑'
2 'rising' '↑'
3 'rising slightly' '↗'
4 'steady' '→'
5 'falling slightly' '↘'
6 'falling' '↓'
7 'falling quickly' '↓↓'
8 'unable to determine trend' '?'
9 'trend unavailable' '-'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydexcom-0.2.1.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

pydexcom-0.2.1-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file pydexcom-0.2.1.tar.gz.

File metadata

  • Download URL: pydexcom-0.2.1.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

File hashes

Hashes for pydexcom-0.2.1.tar.gz
Algorithm Hash digest
SHA256 77fd09ae56143f10620806fb3b63c735237abaded8c3d43fa5b70b3160f5b949
MD5 389da85685f7ab46f864d308333a4032
BLAKE2b-256 b2309f7bf337325c0de8e13f7480f8d7f5ac82b44c9dd4318617ba2f8b93a84a

See more details on using hashes here.

Provenance

File details

Details for the file pydexcom-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: pydexcom-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

File hashes

Hashes for pydexcom-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c3f543f85a166d1aceb613661d0677865081d70c4090a56e659bbbb4454da63e
MD5 e4972a23a3527fe9579f2a8abf6f9cf6
BLAKE2b-256 346e978249775b2a8ad2e7186cbfa18f7a8aeb785c713fb7bcdd901b0189f870

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page