目录
如何使用内置GET/SET RPC方法
内置GET/SET RPC方法可在无需额外配置的情况下读写遥测与属性参数值。以下连接器支持内置GET/SET RPC方法:
每个遥测和属性参数开箱即用 GET 和 SET RPC 方法,无需手动配置。
例如,若有如下遥测参数:
1
2
3
4
5
6
| "timeseries": [
{
"key": "temperature",
"path": "${ns=3;i=1001}"
}
]
|
要获取温度遥测的当前值,请运行以下查询:
响应:
要设置温度遥测值,请运行以下查询:

要为 “model” 属性设置新值(T3000),请运行以下查询:
1
| set ns=3;i=1008; T3000;
|
响应:
1
| {"success":"true","code": 200}
|

|
GET 方法
使用 GET 方法可读取 Modbus 从站寄存器的值。
1
| get type=<type>;functionCode=<functionCode>;objectsCount=<objectsCount>;address=<address>;
|
其中:
<type> - 要读取的值类型;
<functionCode> - Modbus 功能码;
<objectsCount> - 要读取的对象数量;
<address> - 要读取的寄存器地址。
例如,本示例中可从地址为 1 的 Modbus 从站读取 16 位整数值(室外温度)。
要读取地址 1 的寄存器值,请运行以下查询:
1
| get type=16int;functionCode=3;objectsCount=1;address=1;
|
响应:
1
| {"result":{"value":13}}
|

SET 方法
使用 SET 方法可向 Modbus 从站寄存器写入值。
1
| set type=<type>;functionCode=<functionCode>;objectsCount=<objectsCount>;address=<address>;value=<value>;
|
其中:
<type> - 要写入的值类型;
<functionCode> - Modbus 功能码;
<objectsCount> - 要写入的对象数量;
<address> - 要写入的寄存器地址;
<value> - 要写入的值。
例如,本示例中可向地址为 2 的 Modbus 从站(房间光照度)写入 16 位整数值。
要写入地址 2 的寄存器值,请运行以下查询:
1
| set type=16int;functionCode=6;objectsCount=1;address=2;value=80;
|
响应:
1
| {"result":{"value":"80"}}
|

检查结果。要读取地址 2 的寄存器值,请运行以下查询:
1
| get type=16int;functionCode=3;objectsCount=1;address=2;
|
响应:
1
| {"result":{"value":80}}
|

可见值已成功写入。
|
GET 方法
使用 GET 方法可订阅 MQTT topic 并接收消息。
1
| get requestTopicExpression=<requestTopicExpression>;responseTopicExpression=<responseTopicExpression>;value=<value>;
|
其中:
<requestTopicExpression> - 发布请求的 topic;
<responseTopicExpression> - 订阅响应的 topic;
<value> - 要发送的值。
例如,本示例中可从 MQTT topic “data/light_level” 读取房间光照度值,并需订阅 “data/response” topic 接收响应。
要读取房间光照度值,请运行以下查询:
1
| get requestTopicExpression=data/get_light_level;responseTopicExpression=data/response;value=${params};
|
下面查看从 MQTT topic “data/response” 接收到的数据:

SET 方法
使用 SET 方法可向 MQTT topic 发布消息。
1
| set requestTopicExpression=data/set_light_level;value=${params};
|
其中:
<requestTopicExpression> - 发布请求的 topic;
<value> - 要发送的值。
例如,本示例中可将房间光照度值写入 MQTT topic “data/light_level”。
要设置房间光照度值,请运行以下查询:
1
| set requestTopicExpression=data/set_light_level;value=80;
|
下方截图中可见已成功向 MQTT topic “data/set_light_level” 发送 SET 请求:

通过发送双向 GET RPC 请求,查看 SET 方法在 “data/light_level” MQTT topic 中的结果。
要读取房间光照度值以确认已更新,请运行以下查询:
1
| get requestTopicExpression=data/get_light_level;responseTopicExpression=data/response;value=${params};
|
下方截图中可见 SET 请求后房间光照度值已更新为 80:

|
GET 方法
使用 GET 方法可从 BACnet 设备读取数据。
1
| get objectType=<objectType>;objectId=<objectId>;propertyId=<propertyId>;
|
其中:
<objectType> - 要读取的对象类型;
<objectId> - 要读取的对象 ID;
<propertyId> - 要读取的属性 ID。
例如,本示例中可从 BACnet 设备读取房间光照度值。
要读取房间光照度值,请运行以下查询:
1
| get objectType=analogValue;objectId=1;propertyId=presentValue;
|
Response:

SET 方法
使用 SET 方法可向 BACnet 设备写入数据。
1
| set objectType=<objectType>;objectId=<objectId>;propertyId=<propertyId>;priority=<priority>;value=<value>;
|
其中:
<objectType> - 要写入的对象类型;
<objectId> - 要写入的对象 ID;
<propertyId> - 要写入的属性 ID;
<priority> - 要写入值的优先级(可选);
<value> - 要写入的值(可选,1 到 16 的整数)。
若 value 为空,BACnet connector 将发送带 Null 值的 relinquish 命令。
SET RPC 应包含 value 或 priority,或两者兼有。
例如,本示例中可将房间光照度值设置到 BACnet 设备。
要设置房间光照度值,请运行以下查询:
1
| set objectType=analogValue;objectId=1;propertyId=presentValue;value=30.9;
|
Response:
1
| {"result": "{\"status\":\"ok\"}"}
|

使用 GET 方法检查设置后的房间光照度值。只需运行上述 GET RPC 方法即可:
1
| get objectType=analogValue;objectId=1;propertyId=presentValue;
|
Response:

|
GET 方法
使用 GET 方法可向 REST API 发送 GET 请求。
1
| get requestUrlExpression=<requestUrlExpression>;value=<value>;
|
其中:
<requestUrlExpression> - REST API 的 URL;
<value> - 要发送的值。
例如,本示例中可从 URL 为 “http://127.0.0.1:8000/light-level” 的 REST API 获取房间光照度。
要获取房间光照度值,请运行以下查询:
1
| get requestUrlExpression=http://127.0.0.1:8000/light-level;value=${params};
|
Response:
1
| {"result": {"light-level":30}}
|

SET 方法
使用 SET 方法可向 REST API 发送 POST 请求。
1
| set requestUrlExpression=<requestUrlExpression>;value=<value>;HTTPMethod=<HTTPMethod>;
|
其中:
<requestUrlExpression> - REST API 的 URL;
<value> - 要发送的值;
<HTTPMethod> - 要使用的 HTTP 方法。
例如,本示例中可将房间光照度设置到 URL 为 “http://127.0.0.1:8000/light-level” 的 REST API。
要设置房间光照度值,请运行以下查询:
1
| set requestUrlExpression=http://127.0.0.1:8000/light-level;value=80;HTTPMethod=POST;
|
Response:
1
| {"result": {"status":"ok"}}
|

使用 GET 方法查看设置后的光照度。只需运行上述 GET RPC 方法即可:
1
| get requestUrlExpression=http://127.0.0.1:8000/light-level;value=${params};
|
Response:
1
| {"result": {"light-level":80}}
|

|
GET 方法
使用 GET 方法可向外部 API 发送 GET 请求。
1
| get requestUrlExpression=<requestUrlExpression>;
|
其中:
<requestUrlExpression> - 外部 API 的 URL。
例如,本示例中可从 URL 为 “http://127.0.0.1:8000/light-level” 的外部 API 获取房间光照度。
要获取房间光照度值,请运行以下查询:
1
| get requestUrlExpression=light-level;
|
响应:
1
| {"result":"{\"light-level\":30}"}
|

SET 方法
使用 SET 方法可向外部 API 发送 POST 请求。
1
| get requestUrlExpression=<requestUrlExpression>;value=<value>;HTTPMethod=<HTTPMethod>;
|
其中:
<requestUrlExpression> - 外部 API 的 URL;
<value> - 要发送的值;
<HTTPMethod> - 要使用的 HTTP 方法。
例如,本示例中可将房间光照度设置到 URL 为 “http://127.0.0.1:8000/light-level” 的外部 API。
要设置房间光照度值,请运行以下查询:
1
| set requestUrlExpression=light-level;value=80;httpMethod=POST;
|
响应:
1
| {"result":"{\"status\":\"ok\"}"}
|

使用 GET 方法查看设置后的光照度。只需运行上述 GET RPC 方法即可:
1
| get requestUrlExpression=light-level;
|
响应:
1
| {"result": {"light-level":80}}
|

|
GET 方法
使用 GET 方法可从 FTP 服务器读取数据。
1
| get filePath=<filePath>;
|
其中:
<filePath> - FTP 服务器上的文件路径。
例如,本示例中 light_level.txt 文件在 FTP 服务器上存储房间光照度。
要读取房间光照度值,请运行以下查询:
1
| get filePath=./light_level.txt;
|
响应:

SET 方法
使用 SET 方法可向 FTP 服务器写入数据。
1
| set filePath=<filePath>;value=<value>;
|
其中:
<filePath> - FTP 服务器上的文件路径;
<value> - 要写入的值。
例如,本示例中 light_level.txt 文件在 FTP 服务器上存储房间光照度。
要写入房间光照度值,请运行以下查询:
1
| set filePath=./light_level.txt;value=80;
|
响应:
1
| {"result": "{\"success\": true}"}
|

使用 GET 方法检查设置后的房间光照度值。只需运行上述 GET RPC 方法即可:
1
| get filePath=./light_level.txt;
|
响应:

|
SET 方法
使用 SET 方法可向 socket 发送数据。
1
| set address=<address>;port=<port>;value=<value>;
|
其中:
<address> - socket 地址;
<port> - socket 端口;
<value> - 要发送的值。
例如,本示例中可向使用 TCP 连接并在 50003 端口监听的传感器发送房间光照度。
要向传感器发送房间光照度值,请运行以下查询:
1
| set address=192.168.0.200;port=50003;value=80;
|
响应:

下面查看传感器端的结果:

|
下一步
探索ThingsBoard主要功能相关指南: