diff --git a/ttls/client.py b/ttls/client.py index b4ac5cd..9807084 100644 --- a/ttls/client.py +++ b/ttls/client.py @@ -213,9 +213,10 @@ async def detect_api_version(self) -> int: self._api_version = None return None - async def _post(self, endpoint: str, **kwargs) -> Any: + async def _post(self, endpoint: str, require_token: bool = True, **kwargs) -> Any: await self.get_api_version() - await self.ensure_token() + if require_token: + await self.ensure_token() _LOGGER.debug("POST endpoint %s", endpoint) if "json" in kwargs: _LOGGER.debug("POST payload %s", kwargs["json"]) @@ -237,9 +238,10 @@ async def _post(self, endpoint: str, **kwargs) -> Any: else: raise e - async def _get(self, endpoint: str, **kwargs) -> Any: + async def _get(self, endpoint: str, require_token: bool = True, **kwargs) -> Any: await self.get_api_version() - await self.ensure_token() + if require_token: + await self.ensure_token() _LOGGER.debug("GET endpoint %s", endpoint) headers = kwargs.pop("headers", self._headers) retry_num = kwargs.pop("retry_num", 0) @@ -334,7 +336,7 @@ async def get_firmware_version(self) -> Any: return self._valid_response(await self._get(endpoint)) async def get_details(self) -> Any: - return self._valid_response(await self._get("gestalt")) + return self._valid_response(await self._get("gestalt", require_token=False)) async def is_on(self) -> bool | None: mode = await self.get_mode()