获取保存数据API
通过此API可以获得JSON格式的服务器中保存的数据,参见数据保存设置。
以下参数用于检索日志数据。
| HTTP请求方法 | POST |
| URL | http://ortopiaj.jp/php/trend_api.php |
| BODY | JSON格式的配置 |
| JSON键 | 必须/可选 | 说明 |
|---|---|---|
| CID | 必须 | 企业ID (默认值:"con") |
| PID | 必须 | 工程项目ID |
| UID | 必须 | 用户ID(用户权限:仅限设备权限的用户) |
| PWD | 必须 | 哈希密码字符串[sha256] |
| DTYPE | 必须 | 数据源类型 0:实时(原始数据:data_native_device_data_[设备ID]_[云键] ) 1:历史数据(分钟数据:data_calc_minute_data_[设备ID]_[云键])。 |
| ST | 必须 | 数据的开始日期和时间 DTYPE=0:"YYYYMMDDHHMMSS" DTYPE=1:"YYYYMMDDHHMM" |
| ET | 必须 | 数据的结束日期和时间 DTYPE=0:"YYYYMMDDHHMMSS" DTYPE=1:"YYYYMMDDHHMM" |
| PARAM | 必须 | 指定标签名的数组,最多 8 个标签,用于检索数据 DID:设备ID CKEY:云键 TAG:标签名 |
| OTYPE | 可选 | 数据抽取方法 0:平均值 1:最大值 2:最小值 3:直接。 如果没有指定,就不进行抽取。 |
| OPERIOD | 如果设置数据抽取,则需要指定。 | 数据抽取的时间间隔,整数值,单位:秒 DTYPE=1的时候,用分单位的秒数指定(例:60,120,180...) |
| TS | 可选 | 1:为返回的每个数据添加一个时间戳(UNIX时间) 其他或没有项目:不添加 |
在指定日期和时间的参数中,请指定记录在保存数据库中的时间(设备发送数据的时间)。
请参考历史趋势曲线帮助,以获得参数规格值的指南,如数据变薄的时间间隔。
数据的数量由要获取的时间范围和时间间隔决定。
请求的例子:
|
{"CID":"con","PID":"XXX","UID":"XXX","PWD":"XXX","DTYPE":1,"ST":"202110040000","ET":"202110070000","OTYPE":0,"OPERIOD":120,"TS":1, "PARAM":[{"DID":"XXX","CKEY":"XXX","TAG":"XXX"},{"DID":"XXX","CKEY":"XXX","TAG":"XXX"}]} |
一次请求可获得的时间范围是1秒至30天;如果超过30天,则限定为30天。
此外,一次可获取的数据数量如下
| 标签名的数量 | 每个标签名的数据数量上限 |
|---|---|
| 1 | 80,000 |
| 2 | 70,000 |
| 3 | 60,000 |
| 4 | 50,000 |
| 5 | 40,000 |
| 6 | 30,000 |
| 7 | 20,000 |
| 8 | 10,000 |
响应的参数如下。
| HTTP状态代码 | 详细内容 |
|---|---|
| 200 | 数据的详细,请参考一下DATA的部分的说明。 |
| 400 | 指定的公司ID或项目ID不存在。 |
| 401 | 由于用户ID、密码或权限不正确,无法登录。 |
| 404 | 要检索数据的所有标签名称都不存在。 |
| 500 | 服务器内部错误 |
| JSON键 | 说明 |
|---|---|
| DATA |
应答数据的格式如下。 [ [[第一个标签名的数据的数组].[第二个标签名的数据的数组],[第三个标签名的数据的数组]・・・] ] |
| TS | 如果TS在请求中被设置为1,响应将是每个数据的时间戳阵列(UNIX时间)。 |
| ET | 获取的结束日期和时间。 如果你想获得超过限制数的数据,这可以用前次返回的结束时间,指定开始时间(ST),再次获取数据。 DTYPE=0:"YYYYMMDDHHMMSS" DTYPE=1:"YYYYMMDDHHMM" |
| OPERIOD | 如果设置了数据抽取,则返回实际用于数据抽取的时间间隔(以秒为单位)。 |
| ERROR | 如果响应内容中存在错误,则返回详细的错误内容。请参见以下“ERROR中包含的信息”部分。 |
答复的例子:
| {"DATA":[[],[]],"TS":[],"ET":"202110070000","OPERIOD":120} |
ERROR中包含的信息:
| ERROR信息 | 说明 |
|---|---|
| No json | 请求不是JSON格式的。 请检查请求的格式。 |
| No Key | 该请求不包含有效值的键。 请检查请求的格式和价值。 |
| Tags request over | 请求中的标签数量超过了8个,请减少到8个或更少。 |
| PARAM key contents error | 没有设置设备ID、云键(cloud key)或标签名称。 请检查请求的格式。 |
| Empty data: 设备ID.云键:标签名 | 如果检索到的一个以上的数据不存在的标签名,将显示最后一个标签名称。 请检查要求的标签名称。 |
| Empty data | 所有要获得的标签名的数据都不存在。 |
PowerShell的例子:
| $response = Invoke-WebRequest -Method POST -Uri "http://localhost/php/trend_api.php" -Body "{`"CID`":`"con`",`"PID`":`"XXX`",`"UID`":`"XXX`",`"PWD`":`"XXX`",`"DTYPE`":1,`"ST`":`"202110040000`",`"ET`":`"202110070000`",`"OTYPE`":0,`"OPERIOD`":120,`"TS`":1,`"PARAM`":[{`"DID`":`"XXX`",`"CKEY`":`"XXX`",`"TAG`":`"XXX`"},{`"DID`":`"XXX`",`"CKEY`":`"XXX`",`"TAG`":`"XXX`"}]}" |