What it can read¶
Each getter sends one SRM call and returns its answer as a typed model. Field names are SRM's own
keys in snake_case, including SRM's spelling (is_baned), so SRM's documentation and the web
interface's requests map 1:1. Values keep SRM's units and formats; raw holds the complete object.
| Method | SRM API | Returns |
|---|---|---|
get_system_info() |
SYNO.Core.System |
model, firmware, CPU, RAM, uptime, clock, USB devices |
get_utilization() |
SYNO.Core.System.Utilization |
CPU and memory load, traffic per interface |
get_network_devices() |
SYNO.Core.Network.NSM.Device |
every known client: online state, addresses, Wi-Fi band and signal |
get_topology() |
SYNO.Core.Network.Router.Topology |
router or standalone access point |
get_connection_status() |
SYNO.Core.Network.Router.ConnectionStatus |
WAN state and the WAN interface's own address, live |
get_external_ip() |
SYNO.Core.DDNS.ExtIP |
the addresses the internet sees, as SRM last recorded them |
get_ipv6_prefixes() |
SYNO.Core.Network.IPv6.Router.Prefix |
delegated prefixes and the local network using each |
get_dhcp_servers() |
SYNO.Core.Network.DHCPServer |
DHCP ranges, gateway, DNS, lease time per local network |
get_dhcp_clients() |
SYNO.Core.Network.DHCPServer.ClientList |
handed-out addresses with remaining lease time |
get_dhcp_reservations() |
SYNO.Core.Network.DHCPServer.Reservation |
fixed address assignments |
get_firewall_rules() |
SYNO.Core.Security.Firewall.Rules |
default policies and the rule list |
get_firewall_hit_counts() |
SYNO.Core.Security.Firewall.Rules.HitCount |
packet counters per kernel rule |
get_forward_rules() |
SYNO.Core.Security.Firewall.Forward.Rules |
firewall openings for port forwards, DMZ, UPnP |
get_port_forwards() |
SYNO.Core.Network.Router.PortForward |
port forwards, including UPnP |
get_port_triggers() |
SYNO.Core.Network.Router.PortTrigger |
port triggering rules |
get_allow_srm_from_wan() |
SYNO.Core.Security.Firewall.AllowSrmFromWan |
whether SRM itself is reachable from the internet |
get_firewall_conf() |
SYNO.Core.Security.Firewall.Conf |
general firewall settings |
get_forward_conf() |
SYNO.Core.Security.Firewall.Forward.Conf |
automatic openings for port forwards, DMZ, UPnP |
get_auto_block() |
SYNO.Core.Security.AutoBlock |
blocking after failed logins |
get_wifi_radio_settings() |
SYNO.Wifi.Radio.Setting |
channel (0 = automatic), width, power per radio |
get_wifi_radio_status() |
SYNO.Wifi.Radio.Status |
channel in use and BSSID per radio |
get_wifi_devices() |
SYNO.Wifi.Device |
signal, link rate, connection time, traffic of each Wi-Fi client |
get_eth_port_info() |
SYNO.Mesh.Network.EthPortInfo |
link state and speed of every Ethernet port |
get_mesh_nodes() |
SYNO.Mesh.Node.List |
the router and its mesh points |
get_usb_volumes() |
SYNO.Core.Storage.Volume |
USB storage: file system, size, free space |
Anything derived is in aiosynologysrm.helpers, kept apart from the models on purpose:
locate_clients() tells for each client which router or access point it is attached to, by Wi-Fi
(which radio) or cable, from the lists of several devices; the classification of an address (address_scope: public, private, carrier-grade NAT), summed hit
counters per rule (hits_by_rule), radio settings paired with their live state (pair_radios),
durations and dates from SRM's text (up_time, lease_remaining, firmware_date), used space,
and config_hash() to detect configuration changes from the models' raw.
See the changelog for what each release adds.