From 0417fb9fd85ef237251c50d741b5d33429f09b50 Mon Sep 17 00:00:00 2001 From: James Woglom Date: Sat, 5 Oct 2024 12:55:59 -0400 Subject: [PATCH] add IGNORE_ZERO_UNIT_BASAL --- tconnectsync/secret.py | 1 + tconnectsync/sync/tandemsource/process_basal.py | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/tconnectsync/secret.py b/tconnectsync/secret.py index e6511a9..8d33149 100644 --- a/tconnectsync/secret.py +++ b/tconnectsync/secret.py @@ -79,6 +79,7 @@ NIGHTSCOUT_PROFILE_UPLOAD_MODE = get_one_of('NIGHTSCOUT_PROFILE_UPLOAD_MODE', 'a # Default Nightscout profile segment fields which aren't stored by Tandem NIGHTSCOUT_PROFILE_CARBS_HR_VALUE = get('NIGHTSCOUT_PROFILE_CARBS_HR_VALUE', '20') NIGHTSCOUT_PROFILE_DELAY_VALUE = get('NIGHTSCOUT_PROFILE_DELAY_VALUE', '20') +IGNORE_ZERO_UNIT_BASAL = get_bool('IGNORE_ZERO_UNIT_BASAL', 'false') ENABLE_TESTING_MODES = get_bool('ENABLE_TESTING_MODES', 'false') SKIP_NS_LAST_UPLOADED_CHECK = get_bool('SKIP_NS_LAST_UPLOADED_CHECK', 'false') diff --git a/tconnectsync/sync/tandemsource/process_basal.py b/tconnectsync/sync/tandemsource/process_basal.py index de8427f..b8135ef 100644 --- a/tconnectsync/sync/tandemsource/process_basal.py +++ b/tconnectsync/sync/tandemsource/process_basal.py @@ -1,6 +1,7 @@ import logging import arrow +from ...secret import IGNORE_ZERO_UNIT_BASAL from ...features import DEFAULT_FEATURES from ... import features from ...eventparser.generic import Events, decode_raw_events, EVENT_LEN @@ -54,7 +55,9 @@ class ProcessBasal: ns_entries = [] for item in with_duration: - ns_entries.append(self.basal_to_nsentry(*item)) + ns = self.basal_to_nsentry(*item) + if ns: + ns_entries.append(ns) return ns_entries @@ -73,16 +76,24 @@ class ProcessBasal: def basal_to_nsentry(self, start, duration, event): if type(event) == eventtypes.LidBasalRateChange: + value = insulin_float_round(event.commandedbasalrate) + if IGNORE_ZERO_UNIT_BASAL and value < 0.01: + logger.info("Ignoring basal entry with %.2f unit basal because IGNORE_ZERO_UNIT_BASAL=true: %s" % (value, event)) + return None return NightscoutEntry.basal( - value = insulin_float_round(event.commandedbasalrate), + value = value, duration_mins = duration.seconds / 60, created_at = start.format(), reason = ', '.join(bitmask_to_list(event.changetype)), pump_event_id = "%s" % event.eventId ) if type(event) == eventtypes.LidBasalDelivery: + value = insulin_milliunits_to_real(event.commandedRate) + if IGNORE_ZERO_UNIT_BASAL and value < 0.01: + logger.info("Ignoring basal entry with %.2f unit basal because IGNORE_ZERO_UNIT_BASAL=true: %s" % (value, event)) + return None return NightscoutEntry.basal( - value = insulin_milliunits_to_real(event.commandedRate), + value = value, duration_mins = duration.seconds / 60, created_at = start.format(), reason = ', '.join(bitmask_to_list(event.commandedRateSource)),