2025 年 6 月 12 日

EnergyKit iOS iPadOS System Services WWDC WWDC25

掌握節能趨勢:深度解析 WWDC25 全新 EnergyKit 框架

已複製到剪貼板


現代開發者的綠能挑戰

在全球邁向碳中和與能源轉型的大背景下,家庭用電優化已從單純的省錢行為轉向環境責任。隨著電動車(EV)普及與智慧家居設備的增加,開發者正面臨一個關鍵戰略轉捩點:我們如何利用技術手段,讓使用者在不犧牲生活品質的前提下,實現更環保、更具成本效益的用電模式?

WWDC 2025:Optimize home electricity usage with EnergyKit
WWDC 2025:Optimize home electricity usage with EnergyKit

Apple 推出 EnergyKit 框架,正是為了回應這一需求。這項技術承襲自 Home App 中的「電網預測 Grid Forecast」功能,將複雜的電力數據轉化為開發者可用的標準化 API。對於獨立開發者而言,EnergyKit 的出現意味著「電力透明化」不再是遙不可及的夢想,而是提升 App 競爭力的核心關鍵。

技術背景備註:

目前 EnergyKit 的功能根植於電網預測,初期主要適用於美國本土(Contiguous U.S.),且要求使用者必須具備 Home App 或透過 EnergyKit 引導流程建立「家庭 Home」環境。

基礎建設:EnergyVenue 與使用者引導 Onboarding

整合 EnergyKit 的起點在於建立設備與實體電力環境的關聯。開發者必須引導使用者進入「清潔能源充電 Clean Energy Charging」流程,這是所有後續調度邏輯的基石。

EnergyVenue 的核心定義

在 EnergyKit 中,EnergyVenue 代表設備消耗電力的實體地點。根據 Source Context,這個地點必須與一個「家庭」關聯。若使用者尚未在 Home App 中建立家庭,開發者可以透過 EnergyKit 的引導流程協助其建立。

引導流程與架構建議

  1. 使用者授權:使用者必須主動選擇開啟清潔能源充電體驗
  2. 地點選定:系統會檢索該位置附近的 EnergyVenue。一旦選定,開發者應將該 unique identifier 本地持久化儲存
  3. 狀態驗證:資深開發者應在 App 每次啟動時驗證此識別碼的存在性,以確保後續電力調度邏輯的連續性

實作參考

開發者應設計明確的切換開關 (Toggle) 供使用者開啟功能,並提供清單讓使用者將設備(如 EV)映射至特定的充電地點 (EnergyVenue)。

分析:

持久化儲存識別碼 (Unique Identifier) 並非僅是數據記錄,更是確保使用者體驗穩定性的關鍵。對於架構師而言,這一步確保了自動化電力管理邏輯不會因地點資訊缺失而失效,是後續所有「智慧調度」的先決條件。

智慧調度核心:Electricity Guidance 的運行機制

建立地點關聯後,App 的核心價值在於根據電網狀態調整用電行為。這主要透過電力引導(Electricity Guidance)預測模型來實現。

電力引導的生成邏輯

這套引導指令結合了家庭位置、實時電網排放數據(再生能源發電比例)以及公用事業帳戶 (Utility Account) 的費率方案。EnergyKit 提供兩類引導動作:

  • Reduce 減少:適用於智慧恆溫器等可直接降低總用電量的設備
  • Shift 轉移:適用於 EV 等用電總量不變、但可彈性調整時段的設備

Guidance 的數值介於 0 到 1(Y 軸),數值越低代表電力越清潔,且若綁定費率方案,通常代表成本越低。

電力引導圖表模型:橫軸為時間,縱軸為 0~1 的清潔度/成本指標。例如:避免在下午 4 點至 9 點的尖峰時段充電,改為在凌晨電力較清潔且便宜時段進行
Optimize home electricity usage with EnergyKit|電力引導圖表模型:橫軸為時間,縱軸為 0~1 的清潔度/成本指標。例如:避免在下午 4 點至 9 點的尖峰時段充電,改為在凌晨電力較清潔且便宜時段進行

如果充電排程未應用引導指令,車輛可能會在 6:30pm 立即開始充電,這從清潔度和成本角度來看並非最優解。

程式碼實作:非同步獲取數據

開發者應利用 AsyncSequence 持續監聽電力引導的更新。

// 實作非同步引導數據流
func streamGuidance(for venue: EnergyVenue) async {
    let query = ElectricityGuidance.Query(suggestedAction: .shift) // 適用於 EV 的轉移動作
    do {
        // 使用 sharedService 獲取持續更新的序列
        for try await guidance in ElectricityGuidance.sharedService.guidance(using: query, at: venueID) {
            self.currentGuidance = guidance
            // 根據最新的 guidance 更新充電邏輯或 Widget 狀態
        }
    } catch {
        // 處理網路或授權錯誤
    }
}

分析:

利用 AsyncSequence 實現動態響應是開發者的挑戰。對於 EV 應用程式,建議結合 互動式小工具 (Interactive Widgets) 來保持引導數據的最新狀態,即使 App 處於後台。這能讓 App 在不頻繁喚醒的情況下,依然能精準執行能源管理任務。

數據回饋機制:利用 LoadEvents 實現精準分析

若要產出有價值的分析數據,App 必須將實際電力消耗回報給系統,這稱為 LoadEvents。這是生成「洞察 Insights」的必要閉環。

LoadEvents 生命週期與關鍵 Token

  1. 開始 Start:記錄初始電池狀態與 Guidance Token
  2. 活動中 Active:建議每 15 分鐘建立一次事件,或在狀態大幅改變(如暫停、變更排程)時建立
  3. 結束 End:記錄最終狀態並關閉 Session

核心技術點:Guidance Token 的獨特性

Guidance Token 是履行引導指令的「履約證明」。關鍵在於:此 Token 與獲取引導的特定裝置(手機)唯一綁定。這意味著回饋數據必須從同一台裝置提交,否則系統將無法正確歸功於該設備的節能貢獻。

提交規範與效能優化

  • 批次提交 Batch Submitting:建議在充電結束後或定期批次提交以優化效能
  • 嚴格限制:切勿在充電間隔期間提交事件,以避免破壞數據模型的準確性

價值具現化:透過 Insights 提升用戶體驗

當數據回傳後,EnergyKit 會生成洞察(Insights)。這不僅是數據,更是將抽象節能轉化為「使用者成就感」的關鍵。

Insights 的分層結構

  • 清潔度 Cleanliness:分為 Clean、Reduce、Avoid 三類
  • 相對成本 Relative Cost:分為 Super Off Peak 至 Critical Peak 五個等級
    • 關鍵前提:相對成本洞察僅在使用者於 Home App 中成功連結電力公司帳號(Utility Account)後方可提供

隱私與家庭共享

所有數據儲存於本地 Core Data 並透過端到端加密同步至 CloudKit。值得注意的是,這些數據會自動與該 EnergyVenue 關聯的所有家庭成員共享。

let insightsQuery = ElectricityInsightQuery(
    options: .cleanliness.union(.tariff), // .cleanliness 清潔度、.tariff 相對成本
    range: Calendar.current.dateInterval(of: .day, for: date) ?? DateInterval(),
    granularity: .daily,
    flowDirection: .imported
)
let insightStream = try? await ElectricityInsightService.shared.energyInsights(
    forDeviceID: deviceID,
    using: insightsQuery,
    atVenue: venueID
)

分析:

將電網數據轉化為「省了多少錢」或「減了多少碳」,能極大化用戶的參與感。對於開發者而言,這不僅是功能增加,更是將 App 從單純的硬體控制工具,升級為「家庭能源理財顧問」,從而顯著提升留存率。

能源管理的新紀元

EnergyKit 的推出標誌著智慧家庭生態系的新階段。開發者不再只是設備的操作者,而是連結電網、環境與使用者的橋樑。透過 EnergyVenue 的精準定位、Electricity Guidance 的智慧調度、以及 LoadEvents 的數據回饋,我們得以建構一個完整的綠色用電閉環。

未來,最成功的 App 將能利用這些數據實現「無感節能」,在使用者幾乎感覺不到干預的情況下,默默優化電費支出與碳排。

啟發性思考:

作為開發者,你將如何利用 EnergyKit 的數據,在你的 App 中創造出讓使用者「無感節能」卻能「有感獲利」的創新體驗?

分享文章

已複製到剪貼板

追蹤網站

透過 Google 追蹤

超級感謝

關於 XcodeProject

XcodeProject 創立於 2023,致力於協助開發者探索 Apple 的創新世界,學習在 iOS、iPadOS、macOS、tvOS、visionOS 與 watchOS 上開發 App,發現眾多技術與框架,讓開發者獲得更多能力。


Contacts

Ricky Chuang

XcodeProject

RickyChuang.xcodeproj@gmail.com

XcodeProject 聯絡

contact.xcodeproj@gmail.com

XcodeProject 的最新文章