From b4e6895b28a94f9786d60604c29299f4a5cfadd0 Mon Sep 17 00:00:00 2001 From: dbsqp <5895806+dbsqp@users.noreply.github.com> Date: Fri, 15 Apr 2022 18:55:01 +0200 Subject: [PATCH 1/7] added sleep summary field --- withings_api/common.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/withings_api/common.py b/withings_api/common.py index 27f6c95..269f7d8 100644 --- a/withings_api/common.py +++ b/withings_api/common.py @@ -230,6 +230,7 @@ class GetSleepSummaryField(Enum): SLEEP_SCORE = "sleep_score" SNORING = "snoring" SNORING_EPISODE_COUNT = "snoringepisodecount" + TOTAL_IN_BED = "total_timeinbed" WAKEUP_COUNT = "wakeupcount" WAKEUP_DURATION = "wakeupduration" @@ -345,6 +346,7 @@ class GetSleepSummaryData( sleep_score: Optional[int] snoring: Optional[int] snoringepisodecount: Optional[int] + total_timeinbed: Optional[int] wakeupcount: Optional[int] wakeupduration: Optional[int] From fa3454569df839a16c29aa9399001cd3463e7ecb Mon Sep 17 00:00:00 2001 From: dbsqp Date: Fri, 15 Apr 2022 21:43:13 +0200 Subject: [PATCH 2/7] updated values --- withings_api/common.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/withings_api/common.py b/withings_api/common.py index 269f7d8..2c009ac 100644 --- a/withings_api/common.py +++ b/withings_api/common.py @@ -215,6 +215,8 @@ class GetSleepField(Enum): class GetSleepSummaryField(Enum): """Fields for get sleep summary api call.""" + APNEA_HYPOPNEA_INDEX = "apnea_hypopnea_index" + ASLEEP_DURATION = "asleepduration" BREATHING_DISTURBANCES_INTENSITY = "breathing_disturbances_intensity" DEEP_SLEEP_DURATION = "deepsleepduration" DURATION_TO_SLEEP = "durationtosleep" @@ -223,16 +225,23 @@ class GetSleepSummaryField(Enum): HR_MAX = "hr_max" HR_MIN = "hr_min" LIGHT_SLEEP_DURATION = "lightsleepduration" + OUT_OF_BED_COUNT = "out_of_bed_count" REM_SLEEP_DURATION = "remsleepduration" + REM_COUNT = "nb_rem_episodes" RR_AVERAGE = "rr_average" RR_MAX = "rr_max" RR_MIN = "rr_min" + SLEEP_EFFICENCY = "sleep_efficiency" + SLEEP_LATENCY = "sleep_latency" SLEEP_SCORE = "sleep_score" SNORING = "snoring" SNORING_EPISODE_COUNT = "snoringepisodecount" TOTAL_IN_BED = "total_timeinbed" + TOTAL_SLEEP = "total_sleep_time" WAKEUP_COUNT = "wakeupcount" WAKEUP_DURATION = "wakeupduration" + WAKEUP_LATENCY = "wakup_latency" + WASO = "waso" class AuthScope(Enum): @@ -331,6 +340,8 @@ class GetSleepSummaryData( ): # pylint: disable=too-many-instance-attributes """GetSleepSummaryData.""" + apnea_hypopnea_index: Optional[int] + asleepduration: Optional[int] breathing_disturbances_intensity: Optional[int] deepsleepduration: Optional[int] durationtosleep: Optional[int] @@ -339,16 +350,23 @@ class GetSleepSummaryData( hr_max: Optional[int] hr_min: Optional[int] lightsleepduration: Optional[int] + out_of_bed_count: Optional[int] remsleepduration: Optional[int] + nb_rem_episodes: Optional[int] rr_average: Optional[int] rr_max: Optional[int] rr_min: Optional[int] + sleep_efficiency: Optional[int] + sleep_latency: Optional[int] sleep_score: Optional[int] snoring: Optional[int] snoringepisodecount: Optional[int] + total_sleep_time: Optional[int] total_timeinbed: Optional[int] wakeupcount: Optional[int] wakeupduration: Optional[int] + wakup_latency: Optional[int] + waso: Optional[int] class GetSleepSummarySerie(ConfiguredBaseModel): From 4a12944fe14e002562bdd30c8ac537a2a59e880f Mon Sep 17 00:00:00 2001 From: dbsqp <5895806+dbsqp@users.noreply.github.com> Date: Fri, 15 Apr 2022 22:33:37 +0200 Subject: [PATCH 3/7] update --- withings_api/common.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/withings_api/common.py b/withings_api/common.py index 2c009ac..14bbee7 100644 --- a/withings_api/common.py +++ b/withings_api/common.py @@ -216,7 +216,6 @@ class GetSleepSummaryField(Enum): """Fields for get sleep summary api call.""" APNEA_HYPOPNEA_INDEX = "apnea_hypopnea_index" - ASLEEP_DURATION = "asleepduration" BREATHING_DISTURBANCES_INTENSITY = "breathing_disturbances_intensity" DEEP_SLEEP_DURATION = "deepsleepduration" DURATION_TO_SLEEP = "durationtosleep" @@ -240,7 +239,7 @@ class GetSleepSummaryField(Enum): TOTAL_SLEEP = "total_sleep_time" WAKEUP_COUNT = "wakeupcount" WAKEUP_DURATION = "wakeupduration" - WAKEUP_LATENCY = "wakup_latency" + WAKEUP_LATENCY = "wakeup_latency" WASO = "waso" @@ -341,7 +340,6 @@ class GetSleepSummaryData( """GetSleepSummaryData.""" apnea_hypopnea_index: Optional[int] - asleepduration: Optional[int] breathing_disturbances_intensity: Optional[int] deepsleepduration: Optional[int] durationtosleep: Optional[int] From 5e38292117f2190ad95a8ae4fd2ac1d81cc3affb Mon Sep 17 00:00:00 2001 From: dbsqp <5895806+dbsqp@users.noreply.github.com> Date: Fri, 15 Apr 2022 22:39:31 +0200 Subject: [PATCH 4/7] Update common.py --- withings_api/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/withings_api/common.py b/withings_api/common.py index 14bbee7..1eed9b1 100644 --- a/withings_api/common.py +++ b/withings_api/common.py @@ -363,7 +363,7 @@ class GetSleepSummaryData( total_timeinbed: Optional[int] wakeupcount: Optional[int] wakeupduration: Optional[int] - wakup_latency: Optional[int] + wakeup_latency: Optional[int] waso: Optional[int] From e7fb5cc8ff75c0dd91fd3542ab7dff6723d25097 Mon Sep 17 00:00:00 2001 From: dbsqp <5895806+dbsqp@users.noreply.github.com> Date: Sat, 16 Apr 2022 17:42:12 +0200 Subject: [PATCH 5/7] added sdnn_1 and rmssd to SleepGetSerie --- withings_api/common.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/withings_api/common.py b/withings_api/common.py index 1eed9b1..f1503ef 100644 --- a/withings_api/common.py +++ b/withings_api/common.py @@ -284,6 +284,8 @@ class SleepGetSerie(ConfiguredBaseModel): hr: Tuple[SleepGetTimestampValue, ...] = () # pylint: disable=invalid-name rr: Tuple[SleepGetTimestampValue, ...] = () # pylint: disable=invalid-name snoring: Tuple[SleepGetTimestampValue, ...] = () + sdnn_1: Tuple[SleepGetTimestampValue, ...] = () + rmssd: Tuple[SleepGetTimestampValue, ...] = () @validator("hr", pre=True) @classmethod @@ -300,6 +302,16 @@ def _rr_to_tuple(cls, value: Dict[str, int]) -> Tuple: def _snoring_to_tuple(cls, value: Dict[str, int]) -> Tuple: return SleepGetSerie._timestamp_value_to_object(value) + @validator("sdnn_1", pre=True) + @classmethod + def _sdnn_1_to_tuple(cls, value: Dict[str, int]) -> Tuple: + return SleepGetSerie._timestamp_value_to_object(value) + + @validator("rmssd", pre=True) + @classmethod + def _rmssd_to_tuple(cls, value: Dict[str, int]) -> Tuple: + return SleepGetSerie._timestamp_value_to_object(value) + @classmethod def _timestamp_value_to_object( cls, value: Any From 121331809adb994ab490641bb4411929a0977cba Mon Sep 17 00:00:00 2001 From: dbsqp <5895806+dbsqp@users.noreply.github.com> Date: Sat, 16 Apr 2022 17:43:57 +0200 Subject: [PATCH 6/7] updated getSleepField for sdnn_1 and rmssd --- withings_api/common.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/withings_api/common.py b/withings_api/common.py index f1503ef..6521fe9 100644 --- a/withings_api/common.py +++ b/withings_api/common.py @@ -210,6 +210,8 @@ class GetSleepField(Enum): HR = "hr" RR = "rr" SNORING = "snoring" + SDNN_1 = "sdnn_1" + RMSSD = "rmssd" class GetSleepSummaryField(Enum): From 89ed568ef69f38561a0cce3325a75be1889011f9 Mon Sep 17 00:00:00 2001 From: dbsqp <5895806+dbsqp@users.noreply.github.com> Date: Fri, 22 Apr 2022 19:19:34 +0200 Subject: [PATCH 7/7] ahi as float --- withings_api/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/withings_api/common.py b/withings_api/common.py index 6521fe9..7fa3c44 100644 --- a/withings_api/common.py +++ b/withings_api/common.py @@ -353,7 +353,7 @@ class GetSleepSummaryData( ): # pylint: disable=too-many-instance-attributes """GetSleepSummaryData.""" - apnea_hypopnea_index: Optional[int] + apnea_hypopnea_index: Optional[float] breathing_disturbances_intensity: Optional[int] deepsleepduration: Optional[int] durationtosleep: Optional[int]