OpenRemote文档图文---连接你的mqtt客户端
在本教程中,我们将使用 MQTT API 订阅资产属性值的更改,并从 MQTT 客户端向其发布数据。OpenRemote Manager 充当 MQTT 代理。在本教程中,您可以使用桌面 MQTT 客户端(例如 MQTT Explorer 或 MQTT X),或者最好使用要连接的设备。
我们将创建一个事物资产,但您可以随意使用与您的物理设备匹配的 AssetType
1、在资产页面上,点击左侧资产树中的 +

2、选择 Thing 资产类型,为其指定一个友好名称,然后单击“Add”

3、在 Edit asset (编辑资产) 模式下添加两个新属性:
![]()
i、 subscribeAttribute
type: Custom Attribute(自定义属性)
name: subscribeAttribute
Valuetype: Boolean
ii、 writeAttribute
type: Custom Attribute(自定义属性)
name: writeAttribute
Valuetype: Number



Create a service user 创建服务用户
服务用户将以编程方式授予对 MQTT 客户端的访问权限。
1、转到 users 页面并创建新的服务用户(页面上的第二个面板)


2、为方便起见,将服务用户命名为 mqttuser,并赋予该用户读写角色。建议为您的服务用户配置更受限制的角色。

3、点击 'Create',将自动生成一个 secret。

4、打开 mqttuser 用户以查看并复制密钥
fU4JH63dMJAMCXWfD0IxCoadfAZZGTyV
建立从客户端到 broker 的连接
在您的 MQTT 客户端中设置一个新连接:
1、host:mqtt://localhost(192.168.2.82)
2、端口:启用 TLS/SSL 的 8883;大多数客户端将使用我们自行生成的 Let's Encrypt 证书,但如果使用自签名证书或您的客户端无法验证证书链,则可能需要将证书显式加载到客户端中或禁用/放宽客户端的 TLS 验证设置(请参阅特定客户端的文档)。通过在 Docker Compose 文件中的 Manager 服务上为该代理创建端口映射,可以在端口 1883 上公开未加密的代理
3、password:为 MQTT 服务用户生成的密钥(您可以在 MQTT User 用户页面找到)
用户名:master:mqttuser ({realm}:{user})注意英文半角:
4、clientID: client123 (这可以是您喜欢的任何内容,但必须是唯一的 - 具有相同客户端 ID 的任何现有连接都将被替换。确保此 clientID 保持相同。

连接就可以连接上了。
使用 MQTT API 订阅属性
在本教程中,我们将了解特定资产的特定属性。订阅 assets 和 attributes 的 (所有) 更新还有更多选项 。您将订阅的资产属性可以由用户、规则写入,也可以是通过与现场其他设备的 Agent 链接收集的实时值。您可以想象这个布尔值可以切换订阅了该属性的设备的功能
1、通过导航到事物资产页面并复制 URL 中的 ID 来获取事物资产的 ID(例如 https://192.168.2.82/manager/#/assets/false/3IEs4aduCjNr1VHbd9Bhnz => 3IEs4aduCjNr1VHbd9Bhnz)

2、在 MQTT 客户端中为 subscribeAttribute 创建主题为: {realm}/{clientId}/attribute/{attributeName}/{assetId} 的订阅。因此,在我们的例子中,这将是 master/client123/attribute/subscribeAttribute/3IEs4aduCjNr1VHbd9Bhnz

3、在 OpenRemote Manager 中事物资产的查看模式下,通过单击复选框将新值写入“Subscribe attribute”。

4、验证您是否在 MQTT 客户端上看到传入的值 (true/false)!
(看mqttx返回消息)

另一个参数也是一样订阅路径:
master/client123/attribute/writeAttribute/3IEs4aduCjNr1VHbd9Bhnz
从 MQTT 客户机发布属性值
您可以将数据从 MQTT 客户端(设备)发布到 OpenRemote 管理器,以便监控设备并创建规则。
1、定义正确的主题。对于直接写入属性值: {realm}/{clientID}/writeattributevalue/{attributeName}/{assetID} .因此,在我们的例子中,这将是 master/client123/writeattributevalue/writeAttribute/3IEs4aduCjNr1VHbd9Bhnz

2、通过此主题发送 JSON。对于数字,这真的很简单:23
3、转到 Manager 并检查值是否已更新!

更多推荐



所有评论(0)