1
0
mirror of https://github.com/natekspencer/hacs-oasis_mini.git synced 2025-12-06 18:44:14 -05:00

Add additional helpers

This commit is contained in:
Nathan Spencer
2025-11-23 06:45:01 +00:00
parent 2a92212aad
commit 83de1d5606
10 changed files with 82 additions and 104 deletions

View File

@@ -2,7 +2,7 @@
from __future__ import annotations
from datetime import timedelta
from datetime import datetime, timedelta
import logging
from typing import Any
from urllib.parse import urljoin
@@ -37,7 +37,7 @@ class OasisCloudClient:
_access_token: str | None
# these are "cache" fields for tracks/playlists
_playlists_next_refresh: float
_playlists_next_refresh: datetime
playlists: list[dict[str, Any]]
_playlist_details: dict[int, dict[str, str]]
@@ -52,7 +52,7 @@ class OasisCloudClient:
self._access_token = access_token
# simple in-memory caches
self._playlists_next_refresh = 0.0
self._playlists_next_refresh = now()
self.playlists = []
self._playlist_details = {}

View File

@@ -143,8 +143,9 @@ class OasisMqttClient(OasisClientProtocol):
async def _resubscribe_all(self) -> None:
"""Resubscribe to all known devices after (re)connect."""
self._subscribed_serials.clear()
for serial in list(self._devices):
for serial, device in self._devices.items():
await self._subscribe_serial(serial)
await self.async_get_all(device)
def start(self) -> None:
"""Start MQTT connection loop."""
@@ -316,9 +317,6 @@ class OasisMqttClient(OasisClientProtocol):
payload = f"WRIJOBLIST={track_str}"
await self._publish_command(device, payload)
# local state optimistic update
device.update_from_status_dict({"playlist": playlist})
async def async_send_set_repeat_playlist_command(
self,
device: OasisDevice,