

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS IoT SiteWise Edge 上的 EMQX 代理程式的訊息承載格式
<a name="connect-broker-payload-format"></a>

若要讓 IoT SiteWise 發佈者元件取用外部應用程式的資料並將其發佈至 AWS IoT SiteWise 雲端，傳送至代理程式的承載必須符合特定需求。

了解承載格式是與 AWS IoT SiteWise Edge 成功進行 MQTT 通訊的關鍵。雖然稍後章節涵蓋連線設定程序，但我們會先提供承載需求，協助您規劃實作。

## MQTT 主題需求
<a name="connect-broker-mqtt-requirements"></a>

MQTT 主題結構沒有限制，包括使用的關卡或字元數。不過，我們建議主題符合承載中的 `propertyAlias` 欄位。

**Example 屬性別名範例**  
如果 MQTT 主題是 `site1/line1/compressor1/temperature`，請確保`propertyAlias`相符。  

```
{
  "assetId": "compressor_asset_01",
  "propertyAlias": "site1/line1/compressor1/temperature",
  "propertyId": "temperature_sensor_01",
  "propertyValues": [
    {
      "quality": "GOOD",
      "timestamp": {
        "offsetInNanos": 0,
        "timeInSeconds": 1683000000
      },
      "value": {
        "doubleValue": 23.5
      }
    }
  ]
}
```

## JSON 承載結構
<a name="connect-broker-json-payload"></a>

MQTT 訊息承載是以 JSON 撰寫，並遵循 [AWS IoT SiteWise API 參考](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_PutAssetPropertyValueEntry.html)中定義的`PutAssetPropertyValueEntry`訊息格式。

```
{
   "assetId": "string",
   "propertyAlias": "string",
   "propertyId": "string",
   "propertyValues": [
      {
         "quality": "string",
         "timestamp": {
            "offsetInNanos": number,
            "timeInSeconds": number
         },
         "value": {
            "booleanValue": boolean,
            "doubleValue": number,
            "integerValue": number,
            "stringValue": "string"
         }
      }
   ]
}
```

**注意**  
若要讓訊息視為有效，只有下列其中一個條件可以是 true：  
`propertyAlias` 已設定 ，或
`assetId` 和 `propertyId` 都已設定
`PutAssetPropertyValueEntry` 具有在此內容中不需要`entryId`的欄位。