Skip to content

Python · asyncio · read only

aiosynologysrm

Reads what your Synology router knows: its own state, the devices on your network, DHCP, Wi-Fi, firewall and more. Through SRM's Web API, without changing a setting.

pip install aiosynologysrm

Get started Source on GitHub

  • Getting started
    Install, first connection, certificate pinning.
  • What it can read
    Every getter, one per SRM call, and the helpers.
  • Errors
    What can go wrong and how an integration should react.
  • Diagnostics
    A report for an issue, without personal data.
  • Compatibility
    Devices, firmware, operating modes.
  • Design
    Read-only by construction, sessions, privacy.

Why this library?

synology-srm by aerialls pioneered Python access to SRM and is what Home Assistant's built-in integration uses. It is synchronous and has not changed since 2023. This library starts fresh for today's needs:

aiosynologysrm
Async built on aiohttp; shares your application's session, ready for Home Assistant
Read only the client only sends allowlisted read calls; logging in still leaves a session and a log entry on the router
Credentials sent in the POST body, never in a URL or an error message
Firmware differences checks what each router offers: supports() tells you up front, and a call the router lacks raises SrmUnsupportedError instead of guessing
Mesh and standalone access points in scope, including telling which device a client is on; mesh setups are not tested yet
SRM's own data model one getter per SRM call, fields named as SRM names them; derived values in a separate helpers module
Typed and tested strict typing, tests against anonymized answers of real routers

Which devices work?

✅ Tested RT2600ac and MR2200ac with SRM 1.3.2
🟡 Expected to work RT6600ax, WRX560, RT1900ac with SRM 1.3 (not confirmed yet)
❔ Unknown SRM 1.2 and older
❌ Not in scope Synology NAS (DSM), other vendors' routers, changing settings

Router and standalone access point are tested; mesh setups are in scope but not tested yet (help wanted). If the router lacks a feature, the library raises SrmUnsupportedError instead of guessing. Details and how to report your model: docs/compatibility.md.

Unofficial. Not affiliated with, endorsed by or supported by Synology Inc. "Synology" and "SRM" are trademarks of Synology Inc.