Skip to content

Commit ee3d433

Browse files
committed
allow setting wake up sleep schedule
1 parent 4752333 commit ee3d433

File tree

3 files changed

+34
-2
lines changed

3 files changed

+34
-2
lines changed

lmcloud/client_cloud.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
SmartStandbyMode,
2727
)
2828
from .exceptions import AuthFail, RequestNotSuccessful
29-
from .models import LaMarzoccoFirmware, LaMarzoccoDeviceInfo
29+
from .models import LaMarzoccoFirmware, LaMarzoccoDeviceInfo, LaMarzoccoWakeUpSleepEntry
3030

3131
_LOGGER = logging.getLogger(__name__)
3232

@@ -274,6 +274,25 @@ async def set_dose_hot_water(
274274
# return True
275275
# return False
276276

277+
async def set_wake_up_sleep(
278+
self, serial_number: str, wake_up_sleep_entry: LaMarzoccoWakeUpSleepEntry
279+
) -> bool:
280+
"""Enable or disable wake-up sleep mode"""
281+
282+
url = f"{GW_MACHINE_BASE_URL}/{serial_number}/wake-up-sleep/{wake_up_sleep_entry.entry_id}"
283+
data = {
284+
"days": [day.value for day in wake_up_sleep_entry.days],
285+
"enable": wake_up_sleep_entry.enabled,
286+
"id": wake_up_sleep_entry.entry_id,
287+
"steam": wake_up_sleep_entry.steam,
288+
"timeOff": wake_up_sleep_entry.time_off,
289+
"timeOn": wake_up_sleep_entry.time_on,
290+
}
291+
response = await self._rest_api_call(url=url, method=HTTPMethod.PUT, data=data)
292+
if await self._check_cloud_command_status(serial_number, response):
293+
return True
294+
return False
295+
277296
async def set_smart_standby(
278297
self,
279298
serial_number: str,

lmcloud/lm_machine.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
LaMarzoccoCoffeeStatistics,
3636
LaMarzoccoMachineConfig,
3737
LaMarzoccoSmartStandby,
38+
LaMarzoccoWakeUpSleepEntry,
3839
)
3940

4041
_LOGGER = logging.getLogger(__name__)
@@ -333,6 +334,18 @@ async def start_backflush(self) -> None:
333334
# schedule.days[day] = day_settings
334335
# return await self.set_schedule(schedule)
335336

337+
async def set_wake_up_sleep(self, wake_up_sleep_entry: LaMarzoccoWakeUpSleepEntry):
338+
"""Set wake up sleep"""
339+
340+
if await self.cloud_client.set_wake_up_sleep(
341+
self.serial_number, wake_up_sleep_entry
342+
):
343+
for idx, entry in enumerate(self.config.wake_up_sleep_entries):
344+
if entry.entry_id == wake_up_sleep_entry.entry_id:
345+
self.config.wake_up_sleep_entries[idx] = wake_up_sleep_entry
346+
return True
347+
return False
348+
336349
async def set_smart_standby(
337350
self, enabled: bool, minutes: int, mode: SmartStandbyMode
338351
) -> bool:

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
setuptools.setup(
99
name="lmcloud",
10-
version="1.1.6",
10+
version="1.1.7",
1111
description="A Python implementation of the new La Marzocco API",
1212
long_description=readme,
1313
long_description_content_type="text/markdown",

0 commit comments

Comments
 (0)