轻松上手 ThingsCloud API Python 工具集

12/4/2024

articles/2024/20241204120336_4328502b9f747136196d8f839a344f12.png

ThingsCloud API 提供了一个极为灵活、强大且易于集成的物联网平台接口,旨在助力不同行业和企业开发并部署独具个性的物联网解决方案。有了 ThingsCloud API,各类物联网应用的开发过程得以显著加速,企业在开发定制化解决方案时面临的技术难题大幅减少,开发成本也有效降低。

总的来说,ThingsCloud API 为各行业客户打开了通向物联网世界的大门,帮助他们能够以前所未有的方式连接和智能化各种产品和服务,推动业务创新和增长。

今天,我们在此基础上,推出了 ThingsCloud API 工具集,它基于平台的开放 API 体系,实现了多种扩展工具,可用于数据导入导出、自动化、数据处理、数据分析等。

👋🏻 已实现的工具包括:

  • ✨ 批量创建设备
  • ✨ 批量导出设备信息,以及生成设备二维码
  • ✨ 批量导出设备属性历史数据

🔨 计划实现的工具包括:

  • ✨ 批量创建用户
  • ✨ 实时接收设备最新数据
  • ✨ 实时接收设备在线状态变化
  • ✨ 实时接收设备告警消息
  • ✨ 批量移除设备
  • ✨ 批量导出设备属性聚合统计数据

工具集开源代码地址: https://github.com/IoT-ThingsCloud/thingscloud-api-python-tools

工具集持续更新中,欢迎使用,欢迎贡献代码。

同时,该工具集也提供了快速开发的框架,您可以自行扩展和定制开发需要的功能。

环境准备

该工具集使用 Python 语言编写,运行在您的电脑上,需要安装 Python 环境。

Python 环境安装方法,网上教程非常丰富,请自行学习。

下载工具代码库

推荐方法

点击以下链接,下载代码压缩包,解压缩。

https://github.com/IoT-ThingsCloud/thingscloud-api-python-tools/archive/refs/heads/main.zip

高级方法

或使用 git 命令下载代码库。

git clone https://github.com/IoT-ThingsCloud/thingscloud-api-python-tools.git

安装依赖库

下载代码库后,进入 thingscloud-api-python-tools 代码目录的根目录,执行以下命令,安装依赖库:

pip install -r requirements.txt

修改配置

进入 config 目录,将 project_api.template.ini 复制到 project_api.ini,填写 API 参数,如下:

[API]# 请在下方填写项目应用API信息base_url=app_id=access_key=secret_key=

以上信息可以在 ThingsCloud 平台控制台中获取,方法如下:

参数名获取方法
base_url进入项目 > 连接信息,查看 应用端 API 接入点。
app_id创建项目应用 > API,查看应用 AppID。
access_key创建项目应用 > API,查看应用 AccessKey。
secret_key创建项目应用 > API,查看应用 SecretKey。

运行工具

查看帮助

python main.py --help

获得使用帮助信息如下:

Usage: main.py [OPTIONS] COMMAND [ARGS]...Options:  --log   开启日志  --help  Show this message and exit.Commands:  create_devices  export_devices  export_devices_attributes_history  ...

以上列出的每个命令(Command),对应一个工具名称,可以查询工具的帮助信息,例如:

python main.py create_devices --help

获得帮助信息如下:

Usage: main.py create_devices [OPTIONS]Options:  --path TEXT     指定导入的 CSV 文件路径  [default:                  import/create_devices_template.csv]  --type_id TEXT  为创建的设备指定设备类型 ID  [required]  --help          Show this message and exit.

批量创建设备

该工具使用 CSV 文件中的设备信息,批量创建设备。

示例 1

默认导入 import/create_devices_template.csv 文件中的设备信息,执行命名:

python main.py create_devices --type_id=<type_id>

请将 <type_id> 替换为创建设备所关联的设备类型 ID。

您可以修改该文件内容,格式如下:

name,device_key
设备名称1,100001
设备名称2,100002
设备名称3,100003

工具运行后,会显示导入进度,如下图:

示例 2

自定义导入 CSV 文件的路径,执行命名:

python main.py create_devices --type_id=<type_id> --file_path=<file_path>

<file_path> 替换为您电脑上的 CSV 文件路径,例如 C:\Users\Join\Desktop\devices.csv

批量导出设备信息

该工具用于批量导出设备信息到本地 CSV 文件,也同时批量生成设备二维码。

示例 1

导出项目中的所有设备,执行命令:

python main.py export_devices

导出的 CSV 文件将保存在 export 目录下,以当前时间命令,例如: export/2024-10-01-10-08-31.csv

示例 2

导出项目中的所有设备,同时生成设备二维码,执行命令:

python main.py export_devices --qrcode

工具运行时显示导出进度,如下:

生成二维码图片文件,如下:

示例 3

导出项目中指定设备类型下的所有设备,执行命令:

python main.py export_devices --type_id=<type_id>

<type_id> 替换为您要导出的设备类型 ID。

示例 4

导出项目中指定设备组下的所有设备,执行命令:

python main.py export_devices --group_id=<group_id>

<group_id> 替换为您要导出的设备组 ID。支持多个组,以逗号分隔。例如:--group_id=<group_id1>,<group_id2>,<group_id3>

示例 5

导出项目中指定设备组下的所有设备,并包含子组下的所有设备,执行命令:

python main.py export_devices --group_id=<group_id> --include_sub_groups

批量导出设备属性历史数据

该工具用于批量导出多个设备的属性历史数据到一个 CSV 文件,生成规范结构化数据(也称为 Tidy Data)。

示例 1

导出项目中所有设备的属性历史数据,执行命令:

python main.py export_devices_attributes_history

该命令默认导出最近 30 天的属性历史数据。

工具运行时显示导出进度,如下:

导出的 CSV 文件在 Excel 中打开如下:

示例 2

指定导出时间范围,执行命令:

python main.py export_devices_attributes_history  --start_time=<开始时间> --end_time=<结束时间>

<开始时间><结束时间> 替换为实际时间,时间格式为:YYYYMMDDHHmmss

例如,导出 2024 年 12 月 1 日 00:00:00 到 12 月 2 日 20:00:00 的属性历史数据:

python main.py export_devices_attributes_history  --start_time=20241201000000 --end_time=20241202200000

示例 3

指定导出的设备,执行命令:

python main.py export_devices_attributes_history --device_id=<device_id>

<device_id> 替换为您要导出的设备 ID。

示例 4

指定设备类型下的所有设备,执行命令:

python main.py export_devices_attributes_history --type_id=<type_id>

<type_id> 替换为您要导出的设备类型 ID。

示例 5

指定设备组下的所有设备,执行命令:

python main.py export_devices_attributes_history --group_id=<group_id>

<group_id> 替换为您要导出的设备组 ID。支持多个组,以逗号分隔。例如:--group_id=<group_id1>,<group_id2>,<group_id3>

示例 6

指定设备组下的所有设备,并包含子组下的所有设备,执行命令:

python main.py export_devices_attributes_history --group_id=<group_id> --include_sub_groups

您学会了吗?不妨跟着以上步骤,实战起来吧!

如果您打算将物联网设备接入 ThingsCloud ,请参考 设备接入指南

关于 ThingsCloud

ThingsCloud 是新一代物联网设备统一接入平台,帮助企业在极短的时间内搭建个性化的物联网平台和应用,并适应不断变化的发展需求。目前广泛应用于制造、电力、能源、环境、农业、楼宇、家居、教育、交通、物流、自动化等领域。

ThingsCloud 可接入各类网关,传感器、执行器、控制器、通信模组、智能硬件等,实现数据采集、远程控制,数据分析、告警通知、智能联动。还可以零代码生成项目应用 SaaS 和用户应用 App,并开放 API 和实时消息,便于业务系统集成和扩展开发。

通过使用 ThingsCloud,企业可以大大缩短搭建物联网系统的时间,节省软件开发费用,降低定制开发的风险,快速落地数字化和智能化项目。我们的客户遍布各行业,包括中国石化、中国铁塔、中国燃气、吉林大学、北控水务、ACE、中国民航大学、西安交通大学、精量电子、大秦铁路、宁波水利局等。

立即搭建您的物联网平台?

接入物联网设备,搭建可视化看板,生成 App,仅需不到 30 分钟。

进入控制台

5000+ 企业在使用 ThingsCloud

更多博客

应用场景

全球 80% 的数据将来自物联网,不论是传统行业还是新兴行业,都将利用更多有价值的数据来驱动业务,实现降本增效。