Skip to content

Commit 1a9b50f

Browse files
committed
Enable support for snoo sleepytime timeout levels with enum provide values
1 parent b1eb4a1 commit 1a9b50f

3 files changed

Lines changed: 48 additions & 6 deletions

File tree

python_snoo/baby.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
from datetime import datetime
22

3-
from python_snoo.containers import Activity, BabyData, BreastfeedingActivity, DiaperActivity, DiaperTypes
4-
from python_snoo.exceptions import SnooBabyError
5-
from python_snoo.snoo import Snoo
3+
from .containers import Activity, BabyData, BreastfeedingActivity, DiaperActivity, DiaperTypes
4+
from .exceptions import SnooBabyError
5+
from .snoo import Snoo
66

77

88
class Baby:

python_snoo/containers.py

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
#maybe we dont need this
2+
from __future__ import annotations
3+
14
import dataclasses
25
import datetime
3-
from enum import StrEnum
6+
from enum import StrEnum, IntEnum
47
from typing import Any, Union
58

69
from mashumaro.mixins.json import DataClassJSONMixin
@@ -15,6 +18,44 @@ class SnooLevels(StrEnum):
1518
level4 = "LEVEL4"
1619
stop = "ONLINE"
1720

21+
class SnooNoiseTimeoutLevels(IntEnum):
22+
_5_minutes = 5
23+
_10_minutes = 10
24+
_15_minutes = 15
25+
_20_minutes = 20
26+
_25_minutes = 25
27+
_30_minutes = 30
28+
_35_minutes = 35
29+
_40_minutes = 40
30+
_45_minutes = 45
31+
_50_minutes = 50
32+
_55_minutes = 55
33+
_60_minutes = 60
34+
_65_minutes = 65
35+
_70_minutes = 70
36+
_75_minutes = 75
37+
_80_minutes = 80
38+
_85_minutes = 85
39+
_90_minutes = 90
40+
_95_minutes = 95
41+
_100_minutes = 100
42+
_105_minutes = 105
43+
_110_minutes = 110
44+
_115_minutes = 115
45+
_120_minutes = 120
46+
_125_minutes = 125
47+
_130_minutes = 130
48+
_135_minutes = 135
49+
_140_minutes = 140
50+
_145_minutes = 145
51+
_150_minutes = 150
52+
_155_minutes = 155
53+
_160_minutes = 160
54+
_165_minutes = 165
55+
_170_minutes = 170
56+
_175_minutes = 175
57+
_180_minutes = 180
58+
1859

1960
class SnooStates(StrEnum):
2061
baseline = "BASELINE"

python_snoo/snoo.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
SnooData,
2020
SnooDevice,
2121
SnooStates,
22+
SnooNoiseTimeoutLevels
2223
)
2324
from .exceptions import InvalidSnooAuth, SnooAuthException, SnooBabyError, SnooCommandException, SnooDeviceError
2425
from .pubnub_async import SnooPubNub
@@ -233,11 +234,11 @@ async def set_level(self, device: SnooDevice, level: SnooStates, hold: bool = Fa
233234

234235
await self.send_command("go_to_state", device, **{"state": level.value, "hold": hold})
235236

236-
async def set_sticky_white_noise(self, device: SnooDevice, on: bool):
237+
async def set_sticky_white_noise(self, device: SnooDevice, on: bool, timeout_value: SnooNoiseTimeoutLevels = SnooNoiseTimeoutLevels._15_minutes):
237238
await self.send_command(
238239
"set_sticky_white_noise",
239240
device,
240-
**{"state": "on" if on else "off", "timeout_min": 15},
241+
**{"state": "on" if on else "off", "timeout_min": timeout_value},
241242
)
242243

243244
async def get_status(self, device: SnooDevice):

0 commit comments

Comments
 (0)