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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pydexcom-0.2.2.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 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.2.tar.gz
Algorithm Hash digest
SHA256 9282a7d099de2fd59167dbbd90ad35ca5a09ef5cf5facd3a67b1659e87390dea
MD5 d966349ca80ce2a3d6df9e1b7dc6a900
BLAKE2b-256 b6800e8068304f97ab9d4a7060e2a3d3b6c6b5a6a0a88f0301428dbb893e2a6d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pydexcom-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cfaafa6ea949ceaac816e9a1892640ff92bba80854370fd95a6f384082fee1da
MD5 bc94dea82c5fc268c83c77b4d4fa16b7
BLAKE2b-256 1244ac3d0b75ce1a93c6a993c63f3cb6ded8399bf3aad107975f93b8af19cb77

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