bachya/regenmaschine

View on GitHub
regenmaschine/endpoints/diagnostics.py

Summary

Maintainability
A
0 mins
Test Coverage
"""Define an object to interact with RainMachine diagnostics."""

from __future__ import annotations

from typing import Any, cast

from regenmaschine.endpoints import EndpointManager


class Diagnostics(EndpointManager):
    """Define a diagnostics object."""

    @EndpointManager.raise_on_gen1_controller
    async def current(self) -> dict[str, Any]:
        """Get current diagnostics.

        Returns:
            An API response payload.
        """
        return await self.controller.request("get", "diag")

    @EndpointManager.raise_on_gen1_controller
    async def log(self) -> str:
        """Get the device log.

        Returns:
            A log string.
        """
        data = await self.controller.request("get", "diag/log")
        return cast(str, data["log"])