Source code for pylocal_akuvox.config
# SPDX-FileCopyrightText: 2026 Andrew Grimberg <tykeal@bardicgrove.org>
# SPDX-License-Identifier: Apache-2.0
"""Device configuration operations for Akuvox devices."""
from __future__ import annotations
from typing import TYPE_CHECKING
from pylocal_akuvox.exceptions import AkuvoxValidationError
if TYPE_CHECKING:
from pylocal_akuvox._http import AkuvoxHttpClient
from pylocal_akuvox.models import DeviceConfig
[docs]
async def get_device_config(http: AkuvoxHttpClient) -> DeviceConfig:
"""Retrieve full device configuration.
Args:
http: The HTTP client for device communication.
Returns:
A DeviceConfig object with all configuration key-value pairs.
"""
from pylocal_akuvox.models import DeviceConfig as _DeviceConfig
data = await http.get("/api/config/get")
return _DeviceConfig.from_api_response(data)
[docs]
async def set_device_config(http: AkuvoxHttpClient, settings: dict[str, str]) -> None:
"""Update device configuration settings.
Args:
http: The HTTP client for device communication.
settings: Dict of autop-format keys to new string values.
Raises:
AkuvoxValidationError: If settings is empty.
"""
if not settings:
msg = "settings must contain at least one key-value pair"
raise AkuvoxValidationError(msg)
body = {"target": "config", "action": "set", "data": dict(settings)}
await http.post("/api/config/set", data=body)