Async, typed API client for Teltonika routers, built for Home Assistant
Project description
teltasync
teltasync is an async python library for interfacing with Teltonika routers via their HTTP API.
[!NOTE] Please report issues and open pull requests only at Codeberg: https://codeberg.org/dmho/teltasync
Installation
You can install the library using pip:
pip install teltasync
Usage
This is a simple example of how to use the library:
import asyncio
from teltasync import Teltasync
async def main():
# Create client
client = Teltasync(
base_url="https://192.168.1.1/api", # Full API URL
username="admin", # Admin username
password="YOUR_PASSWORD", # Admin password
verify_ssl=False # Most Teltonika devices use self-signed certs
)
try:
# Get basic device info (no authentication required)
device_info = await client.get_device_info()
print(f"Device: {device_info.device_name} ({device_info.device_model})")
# Validate credentials
if await client.validate_credentials():
print("Credentials are valid!")
# Get detailed system information
system_info = await client.get_system_info()
print(f"Firmware version: {system_info.static.fw_version}")
# Get modem status
modems = await client.get_modem_status()
for modem in modems:
print(f"Modem {modem.id}: {modem.operator} ({modem.conntype})")
print(f" Signal: {modem.rssi} dBm")
else:
print("Invalid credentials!")
finally:
# Always close the session
await client.close()
# Using as async context manager (recommended)
async def context_manager_example():
async with Teltasync(
base_url="https://192.168.1.1/api",
username="admin",
password="YOUR_PASSWORD",
verify_ssl=False
) as client:
device_info = await client.get_device_info()
print(f"Device: {device_info.device_name}")
# Session automatically closed when exiting context
# Run the example
if __name__ == "__main__":
asyncio.run(main())
Supported Devices
Although it was currently only tested against a RUTX50, this library should work with most Teltonika routers that support the HTTP API, including:
- RUT series (RUT240, etc.)
- RUTX series (RUTX09, RUTX11, RUTX12, etc.)
- TRB series gateways
- Other Teltonika devices with HTTP API support
There are fixtures for a few other devices (RUTX12, RUT241, RUT950, TRB140, TRB500), but no real-world testing against them was done yet.
Known issues
The Unauthorized models seems to not have some fields for some devices, like the RUT95x, which currently leads to validation errors. Modem and auth endpoints should still work fine.
This is a known issue and will be fixed in a later release, as the change will break downstream implementations and thus requires further attention.
Requirements
- Python 3.13+
- aiohttp
- pydantic
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file teltasync-0.2.0.tar.gz.
File metadata
- Download URL: teltasync-0.2.0.tar.gz
- Upload date:
- Size: 18.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf526e3ca722b8c2e1c7ac6a2cefd3534093bd3b4c8deeca421c67e749cf5a48
|
|
| MD5 |
445ecc255dfc100f23c3eff9cf1a989b
|
|
| BLAKE2b-256 |
15bcd03688a332e49695dc352849486e5069c4a9f7d0a51ce9749b4cefe86aee
|
File details
Details for the file teltasync-0.2.0-py3-none-any.whl.
File metadata
- Download URL: teltasync-0.2.0-py3-none-any.whl
- Upload date:
- Size: 22.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f58b95d3b0f66930591fed2f82fcca94f3e1219ddee9ce4932578564d3bad06b
|
|
| MD5 |
4d5e6eea7c4c50afac565ef5584ddfdf
|
|
| BLAKE2b-256 |
4f0edca3267d8a1142a5591ecd4f91bcc9322d20c0eda48ea825c1d13f97be54
|