teltasync
teltasync is an async python library for interfacing with Teltonika routers via their HTTP API.
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 (RUT240, RUT241, RUT950, RUTX12, TRB140, TRB500), but no real-world testing against them was done yet.
Compatibility notes
Some Teltonika devices and firmware versions omit fields that are present on others. For example, older unauthenticated status responses may not include device_model or device_identifier, and some system/device/status responses may omit board.modems. These values are parsed as None, so downstream code should handle them as optional.
Requirements
- Python 3.13+
- aiohttp
- pydantic
Release files for teltasync 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| teltasync-0.4.0.tar.gz | 19.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| teltasync-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 42.5 kB
Release files / teltasync-0.4.0.tar.gz
| Download URL | teltasync-0.4.0.tar.gz |
|---|---|
| Size | 19.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f8fa8b77f93905e286153da607ac110b581743fe53a7e17eb7fccbf0cd764773
|
|
BLAKE2b-256 checksum How to use checksums |
2a88a1ca3d602716f876b38913cb62bf91d412cd1650416274abc513f6fe8cd0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.14
|
Release files / teltasync-0.4.0-py3-none-any.whl
| Download URL | teltasync-0.4.0-py3-none-any.whl |
|---|---|
| Size | 23.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
43b45b3c53503b761639dd113d30fca6274d04b9ec504f16a3602d72bd85fec3
|
|
BLAKE2b-256 checksum How to use checksums |
9d4aa6c8c920984bab39cad5167e5ca61bacbdc9398f1c11b7723a1a543ee829
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.14
|