【问题标题】:Device integration using MQTT使用 MQTT 进行设备集成
【发布时间】:2019-09-19 19:05:02
【问题描述】:

您好,我是 cumulocity 的新手,需要以下情况的帮助

  1. 我正在尝试使用以下代码创建子设备:
public static void main(String[] args) {

        final MqttConnectOptions connOpts = new MqttConnectOptions();
        connOpts.setUserName(TENANT + "/" + USERNAME);
        connOpts.setPassword(PASSWORD.toCharArray());

        final MqttClient client;

        try {
            client = new MqttClient(SERVERURL, CLIENTID, null);
            client.connect(connOpts);

            client.publish("s/us", ("100," + DEVICE_NAME + ",c8y_MQTTDevice").getBytes(), 2, false);

            // set device's hardware information
            client.publish("s/us", "110,101010203,MQTT test model,Rev0.1".getBytes(), 2, false);
            //create Child device
            client.publish("s/us", ("101, 9999,ivelin13, c8y_MQTTChildDevice").getBytes(), 2, false);
} catch (
        MqttException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

上面的代码创建了子设备,但我想设置它-硬件信息。该操作的模板是

110,serialNumber,hardwareModel,revision

但我找不到如何在当前子设备上设置硬件信息。也许我必须选择那个子设备——但我不知道怎么做?

  1. 我还想将温度测量值发送到当前的子设备。如何选择子设备?

提前致谢

【问题讨论】:

    标签: cumulocity


    【解决方案1】:

    如果您想向子设备发送命令,只需将子设备的 ID 添加到消息的主题中即可。在这两种示例情况下(设置硬件信息和添加测量值),您都必须将消息发布到主题 s/us/9999

    [编辑]示例代码:

    string registerTopic = "s/us/" + parentId; }
    await mqtt.PublishAsync(registerTopic, $"101,{childId},{deviceName},{deviceType}").ConfigureAwait(false);
    
    string configTopic = "s/us/" + childId;
    await mqtt.PublishAsync(configTopic, $"114,c8y_Command").ConfigureAwait(false);
    await mqtt.PublishAsync(configTopic, $"117,11").ConfigureAwait(false);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 2017-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      相关资源
      最近更新 更多