Skip to content

thingsboard/thingsboard-python-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ThingsBoard Python Client

Auto-generated Python REST clients for ThingsBoard IoT platform. Available for Community Edition (CE), Professional Edition (PE), and PaaS.

Quickstart

Install

pip install tb-ce-client       # Community Edition
# pip install tb-pe-client     # Professional Edition
# pip install tb-paas-client   # PaaS

Authenticate

from tb_ce_client import ThingsboardClient

client = ThingsboardClient(
    "http://localhost:9090",
    username="tenant@thingsboard.org",
    password="tenant",
)

Make an API call

devices = client.get_tenant_devices(page_size=10, page=0)
for device in devices.data:
    print(device.name, device.id.get_id())

Handle errors

from tb_ce_client.exceptions import ApiException, NotFoundException

try:
    device = client.get_device_by_id(device_id="nonexistent-id")
except NotFoundException:
    print("Device not found")
except ApiException as e:
    print(f"API error {e.status}: {e.body}")

Authentication modes

Username and password (JWT): Authenticates at construction time via /api/auth/login.

from tb_ce_client import ThingsboardClient

client = ThingsboardClient(
    "http://localhost:9090",
    username="tenant@thingsboard.org",
    password="tenant",
)

API key: Sets X-Authorization: ApiKey <key> header on every request; no login call is made.

client = ThingsboardClient("http://localhost:9090", api_key="your-api-key")

Pre-existing token: Injects an externally obtained JWT; no login call is made.

client = ThingsboardClient(
    "http://localhost:9090",
    token="eyJhbGciOi...",
    refresh_token="eyJhbGciOi...",
)

Resource cleanup

Use the client as a context manager so close() is called automatically on exit:

with ThingsboardClient("http://localhost:9090", username="tenant@thingsboard.org", password="tenant") as client:
    devices = client.get_tenant_devices(page_size=10, page=0)

Available editions

Edition Package Install
Community Edition tb-ce-client pip install tb-ce-client
Professional Edition tb-pe-client pip install tb-pe-client
PaaS tb-paas-client pip install tb-paas-client

Links

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages