Arduino IoT Cloud API Python Client for managing devices, things, properties, and timeseries data
Dashboard creation, sharing, widget linking, template management, and access control for visualizing and interacting with IoT data.
from iot_api_client.api import DashboardsV2Api
from iot_api_client.models import (
Dashboardv2,
ArduinoDashboardv2,
ArduinoDashboardv2template,
Sharerequest,
Widgetlink,
Clone
)Core dashboard management operations for creating, reading, updating, and deleting dashboards.
class DashboardsV2Api:
def dashboards_v2_create(self, dashboardv2: Dashboardv2, x_organization: str = None) -> ArduinoDashboardv2:
"""
Create a new dashboard.
Args:
dashboardv2: Dashboard creation payload
x_organization: Organization ID for organization-level access
Returns:
ArduinoDashboardv2: Created dashboard object
"""
def dashboards_v2_list(self, x_organization: str = None) -> List[ArduinoDashboardv2]:
"""
Returns the list of dashboards.
Args:
x_organization: Organization ID for organization-level access
Returns:
List[ArduinoDashboardv2]: List of dashboard objects
"""
def dashboards_v2_show(self, id: str, x_organization: str = None) -> ArduinoDashboardv2:
"""
Show dashboard details.
Args:
id: Dashboard ID
x_organization: Organization ID for organization-level access
Returns:
ArduinoDashboardv2: Dashboard object
"""
def dashboards_v2_update(self, id: str, dashboardv2: Dashboardv2, x_organization: str = None) -> ArduinoDashboardv2:
"""
Updates a dashboard.
Args:
id: Dashboard ID
dashboardv2: Dashboard update payload
x_organization: Organization ID for organization-level access
Returns:
ArduinoDashboardv2: Updated dashboard object
"""
def dashboards_v2_delete(self, id: str, x_organization: str = None) -> None:
"""
Delete a dashboard.
Args:
id: Dashboard ID
x_organization: Organization ID for organization-level access
"""Clone existing dashboards with their widgets and configurations.
class DashboardsV2Api:
def dashboards_v2_clone(self, dashboard_id: str, x_organization: str = None) -> ArduinoDashboardv2:
"""
Clone a dashboard.
Args:
dashboard_id: Dashboard ID to clone
x_organization: Organization ID for organization-level access
Returns:
ArduinoDashboardv2: Cloned dashboard object
"""Share dashboards with other users and manage access permissions.
class DashboardsV2Api:
def dashboards_v2_share(self, id: str, sharerequest: Sharerequest, x_organization: str = None) -> None:
"""
Share a dashboard.
Args:
id: Dashboard ID
sharerequest: Share request payload
x_organization: Organization ID for organization-level access
"""
def dashboards_v2_list_shares(self, id: str, x_organization: str = None) -> List[ArduinoDashboardshare]:
"""
List users that have access to the dashboard.
Args:
id: Dashboard ID
x_organization: Organization ID for organization-level access
Returns:
List[ArduinoDashboardshare]: List of users with access
"""
def dashboards_v2_request_access(self, id: str, sharerequest: Sharerequest, x_organization: str = None) -> None:
"""
Request access to a dashboard.
Args:
id: Dashboard ID
sharerequest: Access request payload
x_organization: Organization ID for organization-level access
"""
def dashboards_v2_delete_share(self, id: str, user_id: str, x_organization: str = None) -> None:
"""
Delete a dashboard share.
Args:
id: Dashboard ID
user_id: User ID to remove access from
x_organization: Organization ID for organization-level access
"""Link widget variables to thing properties for dynamic data visualization.
class DashboardsV2Api:
def dashboards_v2_link(self, id: str, widget_id: str, widgetlink: Widgetlink, x_organization: str = None) -> None:
"""
Link widget variables to thing properties.
Args:
id: Dashboard ID
widget_id: Widget ID to link
widgetlink: Widget link configuration
x_organization: Organization ID for organization-level access
"""Generate and manage dashboard templates.
class DashboardsV2Api:
def dashboards_v2_template(self, id: str, x_organization: str = None) -> ArduinoDashboardv2template:
"""
Get dashboard template.
Args:
id: Dashboard ID
x_organization: Organization ID for organization-level access
Returns:
ArduinoDashboardv2template: Dashboard template
"""from iot_api_client.models import Dashboardv2
dashboard_data = Dashboardv2(
name="My IoT Dashboard",
description="Temperature monitoring dashboard",
widgets=[]
)
dashboard = dashboards_api.dashboards_v2_create(dashboard_data)
print(f"Created dashboard: {dashboard.name} (ID: {dashboard.id})")from iot_api_client.models import Sharerequest
share_request = Sharerequest(
message="Please access this dashboard",
user_id="user@example.com"
)
dashboards_api.dashboards_v2_share("dashboard-id", share_request)from iot_api_client.models import Widgetlink
widget_link = Widgetlink(
thing_id="thing-id",
property_id="property-id",
variable_name="temperature"
)
dashboards_api.dashboards_v2_link("dashboard-id", "widget-id", widget_link)cloned_dashboard = dashboards_api.dashboards_v2_clone("original-dashboard-id")
print(f"Cloned dashboard: {cloned_dashboard.name}")class Dashboardv2:
name: str
description: str
widgets: List[ArduinoWidgetv2]
class ArduinoDashboardv2:
created_at: datetime
description: str
href: str
id: str
name: str
organization_id: str
owner_id: str
shared_by: List[ArduinoDashboardshare]
updated_at: datetime
user_id: str
widgets: List[ArduinoWidgetv2]
class ArduinoDashboardv2template:
name: str
description: str
widgets: List[ArduinoWidgetv2template]
class Sharerequest:
message: str
user_id: str
class Widgetlink:
thing_id: str
property_id: str
variable_name: str
class ArduinoWidgetv2:
height: int
id: str
name: str
options: Dict[str, Any]
type: str
variables: List[ArduinoLinkedvariable]
width: int
x: int
y: intInstall with Tessl CLI
npx tessl i tessl/pypi-arduino-iot-client