Async Python client for the Swisscom Internet-Box local API (/ws endpoint).
pip install python-swisscom-internet-boximport asyncio
import aiohttp
from swisscom_internet_box import SwisscomClient
async def main():
async with aiohttp.ClientSession() as session:
client = SwisscomClient(session, "192.168.1.1", "admin", "your-password")
# Device info & WAN status (unauthenticated)
info = await client.get_box_info()
print(f"{info.model_name} — FW {info.software_version}")
wan = await client.get_wan_status()
print(f"WAN: {wan.connection_state} ({wan.protocol})")
# WiFi access points (includes guest network)
for ap in await client.get_access_points():
label = "guest" if ap.is_guest else "main"
print(f"[{label}] {ap.ssid} — {ap.frequency_band} — {'on' if ap.enabled else 'off'}")
# Connected LAN devices
for device in await client.get_devices():
if device.active:
print(f"{device.name} — {device.ip_address} — {'wifi' if device.is_wireless else 'eth'}")
asyncio.run(main())| Method | Auth required | Description |
|---|---|---|
get_box_info() |
No | Manufacturer, model, firmware, MAC, uptime |
get_wan_status() |
No | Link type/state, protocol, connection state |
get_nmc_info() |
No | WAN mode, active interface, provisioning state |
get_wifi_status() |
No | WiFi global enable/active state |
get_access_points() |
Yes | All VAPs (main + guest); use ap.is_guest to filter |
get_devices(expression) |
Yes | LAN devices; default expression: "lan and not self" |
| Expression | Result |
|---|---|
"lan and not self" |
All LAN clients (default) |
"wifi" |
Wireless clients only |
"eth" |
Wired clients only |
BoxInfo—manufacturer,model_name,software_version,base_mac,up_time,device_statusWANStatus—link_type,link_state,protocol,connection_state,.is_connectedNMCInfo—wan_mode,active_wan_interface,provisioning_stateWiFiStatus—enabled,active,wps_enabled,scheduler_enabledAccessPoint—key,ssid,bssid,enabled,frequency_band,channel,.is_guestDevice—key,name,phys_address,ip_address,active,interface_name,.is_wireless,ipv4_addresses,ipv6_addresses,bandwidth
Tested on Internet-Box 4 (IB4-00, firmware 14.20.40). Should work on IB2, IB3 and IB5 running similar firmware.
MIT