PowerBI
功能概述
本篇說明如何在 Power BI 中使用 Power Query(M 語言)呼叫 Dashboard Data API,取得 HMI 標籤歷史資料並建立折線圖。
前置需求
- 已安裝 Power BI Desktop
- 已取得有效的 API 金鑰(於左側選單〔Dashboard〕→〔儀表板 API 金鑰〕建立),詳見 Dashboard Data API
操作步驟
設定 API 查詢
依序點擊 Get data -> Blank Query,開啟一個空白的 Query 進行編輯。

點擊 Advanced Editor。

輸入以下範例 Query,並將 hw_key、name 等參數替換為實際的標籤資訊:
m
let
// API 網址
apiUrl = "https://www.weincloud.net/dashboard/api/v2/open_api/history",
// 取得目前 UTC 時間
endDate = DateTimeZone.UtcNow(),
// 往前推 3 小時
startDate = endDate - #duration(0, 3, 0, 0),
// 轉換為 ISO8601 格式
formattedStartDate = DateTimeZone.ToText(startDate, "yyyy-MM-ddTHH:mm:ssZ"),
formattedEndDate = DateTimeZone.ToText(endDate, "yyyy-MM-ddTHH:mm:ssZ"),
// 組成 JSON 請求內容
requestBody = Json.FromValue([
start = formattedStartDate,
end = formattedEndDate,
tags = {
[
hw_key = "請在此輸入您的 HWKEY !!!",
name = "請在此輸入您的 Tag 名稱 !!!"
]
}
]),
// HTTP 請求標頭
requestHeaders = [
#"Content-Type" = "application/json",
#"X-API-KEY" = "請在此輸入您的 API KEY !!!"
],
// 送出 POST 請求
Source = Web.Contents(
apiUrl,
[
Headers = requestHeaders,
Content = requestBody,
Timeout = #duration(0, 0, 5, 0)
]
),
// 解析 JSON 回應
raw = Json.Document(Source),
dList = raw[d],
// 展開陣列
dTable = Table.FromList(dList, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
dExpanded = Table.ExpandRecordColumn(dTable, "Column1", {"hw_key", "name", "values"}),
valuesExpanded = Table.ExpandListColumn(dExpanded, "values"),
valuesFlattened = Table.ExpandRecordColumn(valuesExpanded, "values", {"value", "hmi_time"}),
// 將 value 轉換為數字類型
#"Changed Type" = Table.TransformColumnTypes(valuesFlattened, {{"value", type number}}),
// 將 hmi_time 轉換為日期時間類型
withDateTime = Table.AddColumn(
#"Changed Type",
"hmi_datetime",
each DateTime.From(#datetime(1970, 1, 1, 0, 0, 0) + #duration(0, 0, 0, [hmi_time] / 1000)),
type datetime
)
in
withDateTime編輯認證資訊(Credentials)。

依所使用的伺服器區域選擇對應的 API 網址:
- 全球服務區:
https://www.weincloud.net/dashboard/api/v2/open_api/history - 中國服務區:
https://www.weincloud.net.cn/dashboard/api/v2/open_api/history

關閉並儲存。

建立圖表
選擇 LineChart。

將 hmi_datetime 放入 X 軸。

選擇直接使用原始資料作為依據,不套用彙總方式。

將 value 放入 Y 軸,並選擇所需的彙總方式。

完成後即可顯示標籤歷史資料的趨勢圖。
