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
- 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.