Skip to main content

Teltonika Device API Client

Project description

Ponika

Ponika is a Python library for interacting with the Teltonika devices.

Installation

You can install Ponika using pip:

pip install ponika

Usage

To use Ponika, you need to create an instance of PonikaClient with the appropriate parameters. Here's a basic example:

from ponika import PonikaClient

client = PonikaClient(
    host="192.168.1.1",
    username="your_username",
    password="your_password",
    # port=80,       # Optional, default is 443 if tls=True else 80
    # tls=False,     # Optional, default is True
    # verify_tls=False,  # Optional, default is True
)

The library follows the structure of the Teltonika API endpoints. For example, to get the internet status from the endpoint /api/v1/internet_connection/status, you can do the following:

response = client.internet_connection.get_status()

if response.success and response.data:
    print("Internet Status:")
    print("IPv4:", response.data.ipv4_status)
    print("IPv6:", response.data.ipv6_status)
    print("DNS: ", response.data.dns_status)
else:
    print("Error:", response.errors)

[!NOTE] Not all endpoints are implemented. If you need a specific endpoint that's missing, the existing endpoints should be a good reference for how to implement new ones.

Examples

Get Internet Status

response = client.internet_connection.get_status()

if response.success and response.data:
    print("Internet Status:")
    print("IPv4:", response.data.ipv4_status)
    print("IPv6:", response.data.ipv6_status)
    print("DNS: ", response.data.dns_status)
else:
    print("Error:", response.errors)

Get GPS Position

response = client.gps.position.get_status()

if response.success and response.data:
    print("GPS Position:")
    print("Latitude:", response.data.latitude)
    print("Longitude:", response.data.longitude)
    print("Altitude:", response.data.altitude)
else:
    print("Error:", response.errors)

Contributing

If you want to contribute to Ponika, feel free to open a pull request on the GitHub repository. Contributions are welcome!

The project is setup to use uv for development and requires prior installation. Once you've cloned the repository, you can set up the development environment by running:

uv sync

To run the tests, you can use the following command, updating the environment variables as needed:

# Required variables
# ---------------------
export TELTONIKA_HOST=192.168.1.1
export TELTONIKA_USERNAME=admin
export TELTONIKA_PASSWORD=password

# Optional variables
# ---------------------
# Enables SMS sending tests
export MOBILE_NUMBER=441234567890

# Run the tests
uv run pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ponika-0.5.0.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ponika-0.5.0-py3-none-any.whl (14.9 kB view details)

Uploaded Python 3

File details

Details for the file ponika-0.5.0.tar.gz.

File metadata

  • Download URL: ponika-0.5.0.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.20 {"installer":{"name":"uv","version":"0.11.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for ponika-0.5.0.tar.gz
Algorithm Hash digest
SHA256 dbd23dd71a65aa003c957132cfc4d886687b8c18c0383888167f9ed74ceb54af
MD5 b709515f00a1f3b0a8880311c1e8146b
BLAKE2b-256 6bf7a363a44aff90175543dddd1491e739cc14c1a7da26071d53911bbe073553

See more details on using hashes here.

File details

Details for the file ponika-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: ponika-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 14.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.20 {"installer":{"name":"uv","version":"0.11.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for ponika-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a7b4b2c63dc8c609b5e003646dc7f9d3b3a663f1a724041d35830f328bc75dd1
MD5 4eca35c1b4d96bb20c6f9dcfb61ec2bc
BLAKE2b-256 ed12ed91beceb3a87c4a32da13253124de128b2a9cb84a12ed9abd5d4f14df6c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page