Giter Site home page Giter Site logo

vilfo-api-client-python's Introduction

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.

Legal Disclaimer

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.

vilfo-api-client-python's People

Contributors

mannew avatar dotlambda avatar scop avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.