From fc02beefaf477f91735e8b93b70447054d63485a Mon Sep 17 00:00:00 2001 From: Tom Goetz Date: Mon, 7 Mar 2022 12:18:07 -0500 Subject: [PATCH] Issue #150: better way to handle sleep data from garmin connect vs sleep data from FIT files. Needs no config --- garmindb/GarminConnectConfig.json.example | 3 +-- garmindb/garmin_connect_config_manager.py | 4 ---- scripts/garmindb_cli.py | 12 ++++++------ 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/garmindb/GarminConnectConfig.json.example b/garmindb/GarminConnectConfig.json.example index 712189d..616024c 100644 --- a/garmindb/GarminConnectConfig.json.example +++ b/garmindb/GarminConnectConfig.json.example @@ -10,8 +10,7 @@ "rhr_start_date" : "01/01/2019", "monitoring_start_date" : "01/01/2019", "download_latest_activities" : 25, - "download_all_activities" : 1000, - "sleep_from_fit" : false + "download_all_activities" : 1000 }, "copy": { "mount_dir" : "/Volumes/GARMIN" diff --git a/garmindb/garmin_connect_config_manager.py b/garmindb/garmin_connect_config_manager.py index b4d8ad2..396d91b 100644 --- a/garmindb/garmin_connect_config_manager.py +++ b/garmindb/garmin_connect_config_manager.py @@ -85,10 +85,6 @@ def stat_start_date(self, stat_type): days = (datetime.datetime.now().date() - date).days return (date, days) - def sleep_from_fit(self): - """Return a boolean. True means sleep data comes from FIT files. False means sleep data comes from Garmin Connect downloads.""" - return self.__get_node_value('data', 'sleep_from_fit') - def device_mount_dir(self): """Return the directory where the Garmin USB device is mounted.""" return self.__get_node_value('copy', 'mount_dir') diff --git a/scripts/garmindb_cli.py b/scripts/garmindb_cli.py index b4a7412..a7637a3 100755 --- a/scripts/garmindb_cli.py +++ b/scripts/garmindb_cli.py @@ -195,15 +195,15 @@ def import_data(debug, latest, stats): gfd.process_files(MonitoringFitFileProcessor(db_params_dict, plugin_manager, debug)) if Statistics.sleep in stats: - if gc_config.sleep_from_fit(): + # If we have sleep data from Garmin connect, use it, otherwise process FIT sleep files. + sleep_dir = ConfigManager.get_or_create_sleep_dir() + gsd = GarminSleepData(db_params_dict, sleep_dir, latest, debug) + if gsd.file_count() > 0: + gsd.process() + else: gsd = GarminSleepFitData(monitoring_dir, latest=False, measurement_system=measurement_system, debug=2) if gsd.file_count() > 0: gsd.process_files(SleepFitFileProcessor(db_params_dict)) - else: - sleep_dir = ConfigManager.get_or_create_sleep_dir() - gsd = GarminSleepData(db_params_dict, sleep_dir, latest, debug) - if gsd.file_count() > 0: - gsd.process() if Statistics.rhr in stats: rhr_dir = ConfigManager.get_or_create_rhr_dir()