Skip to main content

vilfo-api-client-python

This is the initial version of a python module and API client for the Vilfo router. The module is targeted towards compatibility with Python3.

Currently, the client is quite limited but will be extended with support for additional endpoints over time.

See vilfo/client.py for additional information about available methods. A short usage example is available in this README as well.

Please note that this software is not affiliated with Vilfo AB, is not an official client for the Vilfo router API and the developers take no legal responsibility for the functionality or security of your Vilfo router. Support is only offered on a community basis.

Information about the Vilfo router and API

You can find more information about the Vilfo router on www.vilfo.com.

From there you can also find information about the API in the form of the official API documentation: https://www.vilfo.com/apidocs/

Installation

The preferred installation method is by using pip:

pip install vilfo-api-client

Usage

The API client is available through the class vilfo.Client. To establish a connection and make the API calls, you will need the hostname or IP of your router (admin.vilfo.com is the default one) as well as an API access token.

Obtaining an access token

Information about how to get an access token is described in the official API documentation: https://www.vilfo.com/apidocs/#header-authorization

Note: In version 1.0.13 of the Vilfo firmware, access tokens are invalidated when a new login to the web UI is made. To prevent web UI logins from interfering with the API calls, you can create a separate user solely for API purposes and use its access token.

Creating the client and making calls

This is a basic sample of how you can use the vilfo-api-client.

import vilfo

client = vilfo.Client(
    host='admin.vilfo.com',
    token='YOUR_ACCESS_TOKEN'
)

# Ping to check if router is online
result = client.ping()
print(result)

try:
    # Get the last reported load
    result = client.get_load()
    print(result)

    # Get a list of all devices
    result = client.get_devices()
    print(result)

    # Get a boolean indicating if a device is online or not
    result = client.is_device_online(
        mac_address='08:00:27:8e:ac:31'
    )
    print(result)

    # Get detailed information about a specific device
    result = client.get_device(
        mac_address='08:00:27:8e:ac:31'
    )
    print(result)

except vilfo.exceptions.AuthenticationException:
    print("Authentication Exception")

Exceptions and error handling

The vilfo-api-client library defines a set of exceptions that can be used to handle errors. These exception classes are located under vilfo.exceptions.

Additional information about the exceptions will be added and exception and error handling will be improved further.

Changelog

Version 0.3.1

Minor adjustment in Client constructor to allow for better mocking during testing.

Version 0.3

Initial stable release.

Metadata

Release files for vilfo-api-client 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vilfo-api-client 0.5.0
File Size Uploaded
vilfo-api-client-0.5.0.tar.gz 14.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vilfo-api-client 0.5.0
File Interpreter ABI Platform
vilfo_api_client-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 21.4 kB

Release files / vilfo-api-client-0.5.0.tar.gz

Download URL vilfo-api-client-0.5.0.tar.gz
Size 14.9 kB
Tags Source
SHA-256 checksum
How to use checksums
9bae7c4385ac894e20b171f5f96a602f0dc4d00d8c0528347fa1d5401c40e54a
BLAKE2b-256 checksum
How to use checksums
e956201d04ef265a0fd267169863192b2f431de6d33a154272779aac312429d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / vilfo_api_client-0.5.0-py3-none-any.whl

Download URL vilfo_api_client-0.5.0-py3-none-any.whl
Size 6.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c1c551559c9015700dcb8021adac907f7990fb468daa8797feb9f643e0dbbedd
BLAKE2b-256 checksum
How to use checksums
2a045c22d9c0262b27473dc887d1fe2183e5e45205c1b5bf1d0258357903068e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.2

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page