Examples
Read system state and telemetry
import asyncio
import aiohttp
from aiopnsense import OPNsenseClient
async def main() -> None:
async with aiohttp.ClientSession() as session:
client = OPNsenseClient(
url="https://opnsense.example.com",
username="YOUR_API_KEY",
password="YOUR_API_SECRET",
session=session,
)
try:
await client.validate()
system_info = await client.get_system_info()
telemetry = await client.get_telemetry()
print(f"Firewall name: {system_info.get('name')}")
print(f"CPU telemetry: {telemetry.get('cpu')}")
print(f"Filesystem telemetry: {telemetry.get('filesystems')}")
finally:
await client.async_close()
asyncio.run(main())
Check firmware or control a service
import asyncio
import aiohttp
from aiopnsense import OPNsenseClient
async def main() -> None:
async with aiohttp.ClientSession() as session:
async with OPNsenseClient(
url="https://opnsense.example.com",
username="YOUR_API_KEY",
password="YOUR_API_SECRET",
session=session,
opts={"verify_ssl": True},
) as client:
firmware = await client.get_firmware_update_info()
services = await client.get_services()
print(f"Current firmware: {firmware.get('product', {}).get('product_version')}")
print(f"Available services: {[service.get('name') for service in services[:5]]}")
restarted = await client.restart_service_if_running("unbound")
print(f"Restarted unbound: {restarted}")
asyncio.run(main())