OpenADR介紹


Posted by oowe on 2021-07-20

  OpenADR是由美國的實驗室(LBNL)在西元2008年發表OpenADR1.0所誕生。全名為Open Source Auto Demand Resonse(自動需量反應)。
  目的是一種通訊的協定,定義能源互相操控各式訊息,用以傳遞價格、可靠度及在緊急時的通訊。此類訊息可以在任何可用的通訊界面上進行交換,此定義和技術通訊無關。
  台電目前,今年七月開始導入OpenADR和國中小學的EMS系統溝通,主要希望能夠改善用戶的負載型態,提高能源的使用率,平衡尖峰與離峰負仔和減少電能消耗。諸多國外市場已採用需量反應制度。

名詞定義:

  • VTN: Virtrul Top Node (電力供應者:台電的角色)
  • VEN: Virtrul End Node (終端設備:國中小學的EMS系統)

OpenADR運作原理:

  • 通常會由VTN發起事件(Event)到VEN請裝置配合。
  • VEN會回報(report)到VTN,提供VTN進行分析與判斷。
  • 實際的溝通訊息,由台電和供應商之間所協議。 (ADR聯盟有初版定義仍可自訂)
  • 台電需要提供各學校的ven_name的名稱對應表,才會拿到對的ven_id。

    OpenADR2.0b規格包含:

  • Pull/Push Model (SimpleHttp使用)
  • SimpleHTTP/XMPP (VTN都必須支援、VEN可支援其一)
  • Security(ECC/RCA) (至少要LTS1.2版本)
  • EiEvent (VTN發出事件給VEN)
  • EiReport (VEN向VTN回報)
  • EiOpt (VEN收到Event回覆Opt-in或Opt-out)
  • EiRegistor (VEN向VTN註冊)

Pull/Push Model 部分

  • 由VTN到VTN是Push
  • 由VEN到VTN是Pull
      絕大多數的情況是Pull(VEN傳訊息到VTN),優點是安全性高及便利性,VEN可以不需要有實體對外IP位置;缺點是溝通效率較差,有Poll去問才知道新的訊息。

SimpleHTTP/XMPP 部分
  openleadr是主要採用SimpleHttp,EPRI是XMPP協定。但其實兩者都可以更換。依OpenADR聯盟規定,VTN需要同時支援兩者,而VEN可同時支援或擇一。

Security(ECC/RCA) 部分

EiEvent 部分
  是OpenADR的核心服務,VTN透過此服務將需量反應的必要資訊傳送到各個VEN設備。VTN可以建立多個Event,指派給不同的 ven_id、group_id、source_id等目標Target。

※ 待了解EiEvent的訊號時間軸,怎麼在程式上設定

  • Notification time: 事件前的通知時間,在Active state之前。
  • Rampup time: VEN收到Event若回覆同意之後逐步卸除負載的時間。
  • Active time: 事件啟動時間,搭配Duration參數。
  • Recovery time: 當事件結束後,VEN逐步恢復負載的時間。

main function (add_event):

EiReport 部分
報表回覆功能,可自訂成一次性報告或是定期性兩種。
報表類型包含METADATA、DATA REPORTS
DATA REPORTS包含

  • History (歷史資料)
  • telemetey (定期資料)
    MATADATA是說明DATA REPORT的格式
    DATA REPORT是回報資料點的數據,可以同時包含一個或多個資料點。

main function (add_report):

EiOpt 部分
Opt服務是讓

EiRegistor 部分
運作原理:先Query得到VTN資訊在傳送Create註冊,最後VTN回傳Created給VEN回傳成功。

  1. 查詢註冊
    VEN先運行oadrQueryRegistartion()傳到VTN,接著VTN再傳oadrCreatedPartyRegistration(VTN Info)給VEN。

  2. 註冊創建
    VEN再運行oadrCreatePartyRegistration(VEN Info)傳到VTN,接著VTN再傳oadrCreatedPartyRegistration(VTN Info, registrationID)接著VEN。
    完成註冊

  3. 重新註冊
    可由
    VTN先運行oadrRequestRegistration(VEN ID)傳到VEN,接著VTN傳oadrRespose()傳到VEN。
    或者
    VEN再運行oadrCreatedPartyRegistration(VEN Info, registrationID)傳到VTN,接著VTN再傳oadrCreatedPartyRegistration(VTN Info, registrationID)

  4. 取消註冊
    雙方都可以執行
    運行oadrCancellPartyRegistration(registrationID)傳到VTN,接著對方再傳oadrCancelledPartyRegistration()

參數:

備註:
openleadr使用的環境

  • openleadr版本: 0.5.24
  • python3.7以上
  • 有使用到的套件
  • xmltodict
  • aiohttp
  • apscheduler
  • jinja2
  • signxml-openadr-2.9.1

#openADR







Related Posts

交作業流程 Week1-hw1

交作業流程 Week1-hw1

[7] 專業品質工程師

[7] 專業品質工程師

Vue.js 學習旅程Mile 4 – 模板語法之一:Mustache 語法

Vue.js 學習旅程Mile 4 – 模板語法之一:Mustache 語法


Comments