Arduino IoT Cloud API Python Client for managing devices, things, properties, and timeseries data
LoRa device management and frequency plan configuration for long-range IoT applications. Supports LoRaWAN device registration, management, and regional frequency plan selection.
from iot_api_client.api import (
LoraDevicesV1Api,
LoraFreqPlanV1Api,
NetworkCredentialsV1Api
)
from iot_api_client.models import (
CreateLoraDevicesV1Payload,
ArduinoLoradevicev1,
ArduinoLorafreqplanv1,
ArduinoLorafreqplansv1,
ArduinoCredentialsv1
)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
"""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
"""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
"""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})")# 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}")# 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)}")# 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}")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: strCommon LoRaWAN frequency plans by region:
EU_863_870 - 863-870 MHz bandUS_902_928 - 902-928 MHz bandAS_923 - 923 MHz bandAU_915_928 - 915-928 MHz bandIN_865_867 - 865-867 MHz bandKR_920_923 - 920-923 MHz bandRU_864_870 - 864-870 MHz bandLoRaWAN supports three device classes:
Most battery-powered IoT devices use Class A for optimal power consumption.
Install with Tessl CLI
npx tessl i tessl/pypi-arduino-iot-client