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.0.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

pydexcom-0.2.0-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pydexcom-0.2.0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for pydexcom-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e0d6ca22d0e145c515f56490ad642a18fde02f920541f73c109cd45eadaea115
MD5 bca0607e0a65aa10be4d288f8c42a249
BLAKE2b-256 2f2c6e5a0b94e768f00d17a4dd4df11ca3e003c7fe06114c1d17446f859303a1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pydexcom-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for pydexcom-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 17ee3941c974df7f4e7fb5604e4b2e4fbeb5929eaf3f886645985bff9dd587aa
MD5 1bfd46a4a471a6283b1e74aa4a520f07
BLAKE2b-256 7a1604e12c182d09d6273dff447da152fa3981570190eeff6296cdd4f3df2307

See more details on using hashes here.

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