CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-arduino-iot-client

Arduino IoT Cloud API Python Client for managing devices, things, properties, and timeseries data

Overview
Eval results
Files

lora.mddocs/

LoRa Connectivity

LoRa device management and frequency plan configuration for long-range IoT applications. Supports LoRaWAN device registration, management, and regional frequency plan selection.

Core Imports

from iot_api_client.api import (
    LoraDevicesV1Api,
    LoraFreqPlanV1Api,
    NetworkCredentialsV1Api
)
from iot_api_client.models import (
    CreateLoraDevicesV1Payload,
    ArduinoLoradevicev1,
    ArduinoLorafreqplanv1,
    ArduinoLorafreqplansv1,
    ArduinoCredentialsv1
)

Capabilities

LoRa Device Management

Create and manage LoRaWAN devices for long-range communication.

class LoraDevicesV1Api:
    def lora_devices_v1_create(self, create_lora_devices_v1_payload: CreateLoraDevicesV1Payload, x_organization: str = None) -> ArduinoLoradevicev1:
        """
        Create a new LoRa device.

        Args:
            create_lora_devices_v1_payload: LoRa device creation payload
            x_organization: Organization ID for organization-level access

        Returns:
            ArduinoLoradevicev1: Created LoRa device object
        """

    def lora_devices_v1_list(self, x_organization: str = None) -> List[ArduinoLoradevicev1]:
        """
        Returns the list of LoRa devices.

        Args:
            x_organization: Organization ID for organization-level access

        Returns:
            List[ArduinoLoradevicev1]: List of LoRa device objects
        """

    def lora_devices_v1_show(self, id: str, x_organization: str = None) -> ArduinoLoradevicev1:
        """
        Show LoRa device details.

        Args:
            id: LoRa device ID
            x_organization: Organization ID for organization-level access

        Returns:
            ArduinoLoradevicev1: LoRa device object
        """

Frequency Plan Management

Manage LoRaWAN frequency plans for different regions and regulatory requirements.

class LoraFreqPlanV1Api:
    def lora_freq_plan_v1_list(self) -> ArduinoLorafreqplansv1:
        """
        List available LoRa frequency plans.

        Returns:
            ArduinoLorafreqplansv1: Available frequency plans
        """

Network Credentials

Manage network credentials for LoRaWAN connectivity.

class NetworkCredentialsV1Api:
    def network_credentials_v1_show(self, connection: str, type: str = None) -> ArduinoCredentialsv1:
        """
        Show network credentials for a specific connection.

        Args:
            connection: Connection identifier
            type: Credential type filter

        Returns:
            ArduinoCredentialsv1: Network credentials
        """

Usage Examples

Creating a LoRa Device

from iot_api_client.models import CreateLoraDevicesV1Payload

# Create a new LoRa device
lora_device_payload = CreateLoraDevicesV1Payload(
    name="LoRa Sensor Node",
    device_eui="1234567890ABCDEF",
    app_eui="FEDCBA0987654321",
    app_key="00112233445566778899AABBCCDDEEFF",
    frequency_plan="EU_863_870",
    serial="LORA001"
)

lora_device = lora_devices_api.lora_devices_v1_create(lora_device_payload)
print(f"Created LoRa device: {lora_device.name} (ID: {lora_device.id})")

Listing LoRa Devices

# Get all LoRa devices
lora_devices = lora_devices_api.lora_devices_v1_list()

for device in lora_devices:
    print(f"Device: {device.name}")
    print(f"  EUI: {device.device_eui}")
    print(f"  Frequency Plan: {device.frequency_plan}")
    print(f"  Status: {device.last_seen_at}")

Getting Available Frequency Plans

# List available frequency plans
freq_plans = lora_freq_plan_api.lora_freq_plan_v1_list()

print("Available LoRa Frequency Plans:")
for plan in freq_plans.freq_plans:
    print(f"  {plan.id}: {plan.name}")
    print(f"    Region: {plan.region}")
    print(f"    Bands: {', '.join(plan.bands)}")

Retrieving Network Credentials

# Get network credentials for LoRa connection
credentials = network_credentials_api.network_credentials_v1_show(
    connection="lora-connection-id"
)

print(f"Connection Type: {credentials.type}")
print(f"Endpoint: {credentials.endpoint}")

Types

class CreateLoraDevicesV1Payload:
    app_eui: str
    app_key: str
    device_eui: str
    frequency_plan: str
    name: str
    serial: str

class ArduinoLoradevicev1:
    app_eui: str
    app_key: str
    connection_type: str
    created_at: datetime
    device_eui: str
    frequency_plan: str
    href: str
    id: str
    last_seen_at: datetime
    name: str
    organization_id: str
    serial: str
    type: str
    user_id: str

class ArduinoLorafreqplansv1:
    freq_plans: List[ArduinoLorafreqplanv1]

class ArduinoLorafreqplanv1:
    bands: List[str]
    id: str
    name: str
    region: str

class ArduinoCredentialsv1:
    endpoint: str
    secret: str
    type: str

Regional Frequency Plans

Common LoRaWAN frequency plans by region:

  • Europe: EU_863_870 - 863-870 MHz band
  • North America: US_902_928 - 902-928 MHz band
  • Asia Pacific: AS_923 - 923 MHz band
  • Australia: AU_915_928 - 915-928 MHz band
  • India: IN_865_867 - 865-867 MHz band
  • Korea: KR_920_923 - 920-923 MHz band
  • Russia: RU_864_870 - 864-870 MHz band

LoRaWAN Device Classes

LoRaWAN supports three device classes:

  • Class A: Bi-directional communication with scheduled receive windows
  • Class B: Bi-directional with scheduled receive slots synchronized with gateway beacons
  • Class C: Bi-directional with maximal receive slots (nearly continuous listening)

Most battery-powered IoT devices use Class A for optimal power consumption.

Install with Tessl CLI

npx tessl i tessl/pypi-arduino-iot-client

docs

dashboards.md

devices.md

index.md

lora.md

properties.md

series.md

things.md

tile.json