一、云API概述:
1、机智云是一个开放的物联网设备平台,它为企业和个人开发者提供设备接入、用户账号管理、用户与设备绑定管理、设备远程监控、定时任务以及设备高级数据等服务。
2、这些数据都是存储在机智云的数据库中的,Open API 就是机智云对外提供这些数据的访问接口。
二、接口列表:
1、用户管理:用户的注册、登录、密码重置等
2、消息中心:用户查看消息、标记已读和删除系统消息等
3、绑定管理:用户与设备的绑定、解绑等
4、设备远程监控:获取设备的当前状态、设备上报的原始数据、设备的上下线记录、设备的远程控制等
5、设备分享:比如用户把自己的绑定设备分享给其他用户,解绑其他用户对自己设备的绑定等
6、设备分组:对多个设备进行分组,发送一次指令就能控制分组下的多个设备
7、设备联动:通过创建设备间联动规则,当设备触发规则后,联动控制其他设备
8、用户场景:用户可通过场景功能预设的一系列设备动作并在需要时触发
9、定时任务管理:设备定时任务的增删改查等
10、通用定时任务:可对单个设备、设备分组和场景设置定时任务
11、高级数据接口:比如对设备上报的数据按天取最大值、平均值等
12、系统信息:比如查看当前 Open API 版本,获取所有可能的错误列表等
三、协议约定:
1、请求方式
机智云 Open API 是 RESTful 风格的 HTTP API,您可以使用任何标准的 HTTP 客户端访问机智云 Open API。
2、HTTP头部请求说明
【a】X-Gizwits-Application-Id:一个应用在机智云平台中的唯一标识,所有 OpenAPI 接口都需要传入这个头部参数。
【b】X-Gizwits-User-token:简称 UserToken,它代表着接口调用中的用户上下文。
3、加密参数
选择md5,32位[小]进行加密,填入product_secret和X-Gizwits-Timestamp,无需“+”号,如下 所示:
lower(md5(product_secret + X-Gizwits-Timestamp ))
四、在线调试Open API:
机智云提供了在线 API 调试工具,在每个接口描述中,都会给出对应的调试接口链接。
五、用户管理:
1、创建用户: http://api.gizwits.com/app/users(GET请求方式)
2、获取用户信息: http://api.gizwits.com/app/users(GET请求方式)
3、修改用户信息: http://api.gizwits.com/app/users(PUT请求方式)
4、用户登录: http://api.gizwits.com/app/login(默认:POST请求方式)
5、获取APP Token: http://api.gizwits.com/app/request_token
6、请求重置密码: http://api.gizwits.com/app/reset_password
7、验证码的获取和校验: http://api.gizwits.com/app/sms_code
8、获取图片验证码: http://api.gizwits.com/app/verify/codes(GET请求方式)
9、校验图片验证码并发送验证码: http://api.gizwits.com/app/verify/codes
10、校验短信验证码 https://api.gizwits.com/app/verify/codes(GET请求方式)
六、消息中心:
1、查询消息列表: https://api.gizwits.com/app/messages?type=1&limit=20&skip=0(GET请求方式)
2、标记已读和删除消息: https://api.gizwits.com/app/messages/{id}?status=1(PUT请求方式)
七、绑定管理:
绑定角色分为4种类,首绑用户: special ;拥有者: owner ;访客: guest ;普通用户: normal)
1、绑定设备
2、通过 MAC 地址绑定设备: http://api.gizwits.com/app/bind_mac
3、解绑设备: https://api.gizwits.com/app/bindings(DELETE请求方式)
4、获取绑定列表: https://api.gizwits.com/app/bindings(GET请求方式)
5、通过二维码绑定设备: https://api.gizwits.com/app/bind_latest
6、修改绑定信息: https://api.gizwits.com/app/bindings/{did}(PUT请求方式)
7、查询设备绑定的Guest用户: https://api.gizwits.com/app/{did}/bindings(GET请求方式)
8、解绑 Guest 用户: https://api.gizwits.com/app/{did}/bindings(DELETE请求方式)
八、远程设备监控:
1、获取设备最新状态: https://api.gizwits.com/app/devdata/{did}/latest(GET请求方式)
2、获取产品数据点定义: https://api.gizwits.com/app/datapoint?product_key={product_key}(GET请求方式)
3、获取设备详情: https://api.gizwits.com/app/devices/{did}(GET请求方式)
4、获取设备的通信日志和上下线记录: https://api.gizwits.com/app/devices/{did}/raw_data?type={type}&start_time={start_time}&end_time={end_time} (GET请求方式)
5、远程控制设备(原始指令、数据点方式): https://api.gizwits.com/app/control/{did}
九、设备分享:
设备分享的两种方式为:普通设备分享,二维码分享设备
1、创建分享邀请: https://api.gizwits.com/app/sharing
2、查询分享邀请: https://api.gizwits.com/app/sharing?sharing_type={sharing_type}(GET请求方式)
3、取消/收回分享: https://api.gizwits.com/app/sharing/{id}(DELETE请求方式)
4、接受/拒绝分享: https://api.gizwits.com/app/sharing/{id}(PUT请求方式)
5、获取二维码分享信息: https://api.gizwits.com/app/sharing/code/{code}(GET请求方式)
6、接受二维码分享邀请: https://api.gizwits.com/app/sharing/code/{code}
7、修改用户备注信息: https://api.gizwits.com/app/sharing/{id}/alias?user_alias={user_alias}(PUT请求方式)
8、owner 权限转移: https://api.gizwits.com/app/sharing/1/transfer?uid=1
十、设备分组:
设备分组常用场景,第一个可以将多个设备归类到某一个物理空间,如:房间、客厅。对相同产品的多个设备进行统一控制,如:走廊的全部灯开关
1、查询用户所有的分组: https://api.gizwits.com/app/group(GET请求方式)
2、创建分组: https://api.gizwits.com/app/group
3、删除设备分组: https://api.gizwits.com/app/group/{id}(DELETE请求方式)
4、修改设备分组: https://api.gizwits.com/app/group/{id}(PUT请求方式)
5、查询分组的设备信息: https://api.gizwits.com/app/group/{id}/devices(GET请求方式)
6、将设备列表添加到分组: https://api.gizwits.com/app/group/{id}/devices?show_detail={show_detail}
7、将设备列表从分组中移除: https://api.gizwits.com/app/group/{id}/devices(DELETE请求方式)
8、对设备分组内的设备统一控制: https://api.gizwits.com/app/group/{id}/control
十一、设备联动:
创建设备联动的规则,实现一个或多个设备的状态变化时,自动控制一个或多个设备的状态改变。
1、查询规则可用变量: https://api.gizwits.com/app/rules/params?product_key={product_key}(GET请求方式)
2、查询联动规则列表: https://api.gizwits.com/app/rules?limit=20&skip=0(GET请求方式)
3、创建联动规则: https://api.gizwits.com/app/rules
4、删除联动规则: https://api.gizwits.com/app/rules/{rule_id}(DELETE请求方式)
5、修改联动规则: https://api.gizwits.com/app/rules/{rule_id}(PUT请求方式)
十二、用户场景:
1、查询用户所有的场景: https://api.gizwits.com/app/scene(GET请求方式)
2、创建场景: https://api.gizwits.com/app/scene
3、删除场景: https://api.gizwits.com/app/scene/{id}(DELETE请求方式)
4、修改场景信息: https://api.gizwits.com/app/scene/{id}(PUT请求方式)
5、查询场景任务执行状态: https://api.gizwits.com/app/scene/{id}/task(GET请求方式)
6、执行场景任务:https://api.gizwits.com/app/scene/{id}/task
十三、定时任务管理:
1、获取定时任务: https://api.gizwits.com/app/devices/{did}/scheduler?limit=20&skip=0(GET请求方式)
2、创建定时任务: https://api.gizwits.com/app/devices/{did}/scheduler
3、修改定时任务: https://api.gizwits.com/app/devices/{did}/scheduler/{id}(PUT请求方式)
4、删除定时任务: https://api.gizwits.com/app/devices/{did}/scheduler/{id}(DELETE请求方式)
十四、通用定时任务:
1、获取定时任务: https://api.gizwits.com/app/common_scheduler?did={did}&group_id={group_id}&scene_id={scene_id}&limit={limit}&skip={skip}(GET请求方式)
2、创建定时任务: https://api.gizwits.com/app/common_scheduler
3、修改定时任务: https://api.gizwits.com/app/common_scheduler/{id}(PUT请求方式)
4、删除定时任务: https://api.gizwits.com/app/common_scheduler/{id}(DELETE请求方式)
十五、高级数据接口:
1、获取设备聚合数据: https://api.gizwits.com/app/devdata/{did}/agg_data(PUT请求方式)
十六、系统信息:
1、查询open API版本: https://api.gizwits.com/status(GET请求方式)
2、获取open API所有的错误代码: https://api.gizwits.com/errors(GET请求方式)