pylibrelinkup
is a Python client for the LibreLinkUp API, which allows you to interact with the LibreLinkUp service to retrieve glucose data and other related information. This project is a Python implementation inspired by the libre-link-up-api-client project.
To install pylibrelinkup
, you can use pip
:
pip install pylibrelinkup
First, you need to import the necessary modules, initialize the client, and authenticate with your LibreLinkUp credentials:
from pylibrelinkup import PyLibreLinkUp
client = PyLibreLinkUp(email='your_username', password='your_password')
client.authenticate()
You can fetch the list of patients using the get_patients
method:
patient_list = client.get_patients()
print(patient_list)
PyLibreLinkUp provides three methods to retrieve patient data: current
, graph
, and logbook
.
- The
current
method retrieves the most recent glucose measurement reported by the LLU api for a patient. - The
graph
method retrieves the glucose measurements for the previous 12 hours which are used to display the recent history graph in the LLU app. - The
logbook
method retrieves the glucose event data for approximately the last two weeks.
All three methods accept a patient_identifier
parameter in the form of a UUID
, str
, or Patient
object.
Note: The read
method also exists as a way to retrieve both recent and latest patient data, but it is deprecated and will be removed in a future release. Use the graph
method for retrieving graph data and latest
to access the most recent glucose measurement.
latest_glucose = client.latest(patient_identifier=patient_list[0])
print(latest_glucose)
graph_data = client.graph(patient_identifier=patient_list[0])
print(graph_data)
logbook_data = client.logbook(patient_identifier=patient_list[0])
print(logbook_data)
full example:
from pylibrelinkup import PyLibreLinkUp
client = PyLibreLinkUp(email='your_username', password='your_password')
client.authenticate()
patient_list = client.get_patients()
print(patient_list)
patient = patient_list[0]
print(f"latest: {client.latest(patient_identifier=patient)}")
graph_data = client.graph(patient_identifier=patient)
print(f"graph data ({len(graph_data)} measurements):")
for measurement in graph_data:
print(f"{measurement.value} {measurement.timestamp} {measurement.factory_timestamp}")
logbook_data = client.logbook(patient_identifier=patient)
print(f"logbook data: ({len(logbook_data)} entries)")
for measurement in logbook_data:
print(f"{measurement.value} {measurement.timestamp} {measurement.factory_timestamp}")