[OCPP Charge Point #1] Steve와 Websocket 연결 테스트
2024. 1. 10. 20:56ㆍ프로젝트 로그/OCPP 프로젝트
반응형
mobilityhouse/ocpp 프로젝트
OCPP(Open Charge Point Protocol)와 관련된 Python 라이브러리르 제공하는 GitHub 프로젝트입니다.
https://github.com/mobilityhouse/ocpp
Steve OCPP Server와 Websocket 연결 테스트
mobilityhouse/ocpp 프로젝트를 Steve OCPP Server와 연동하는 방법 및 테스트 과정을 문서로 정리 합니다.
Steve OCPP Server에 Charge Point 등록
[Number of Charge Points]-[Add New] 버튼 클릭 하여 테스트 할 Charge Point(충전기 측 OCPP)를 등록 합니다.
아래와 같이 ChargeBox ID를 입력하고 Add 버튼을 눌러 Charge Box를 등록 합니다.
정상적으로 등록되면 아래 사진과 같이 Number of Charge points 메뉴에 1개의 ChargeBoxID를 출력됩니다.
mobilityhouse/ocpp Websocket 연결 테스트
프로젝트를 github에서 다운로드 합니다.
$ git clone https://github.com/mobilityhouse/ocpp.git
OCPP/examples/v16/charge_point.py를 아래와 같이 수정 합니다.
아래 코드의 ws://Steve IP Address 부분에 Steve Server의 공인 IP 주소를 입력하고 해당 코드를 수행 합니다.
import asyncio
import logging
try:
import websockets
except ModuleNotFoundError:
print("This example relies on the 'websockets' package.")
print("Please install it by running: ")
print()
print(" $ pip install websockets")
import sys
sys.exit(1)
from ocpp.v16 import ChargePoint as cp
from ocpp.v16 import call
from ocpp.v16.enums import RegistrationStatus
logging.basicConfig(level=logging.INFO)
class ChargePoint(cp):
async def send_boot_notification(self):
request = call.BootNotificationPayload(
charge_point_model="Optimus", charge_point_vendor="The Mobility House"
)
response = await self.call(request)
if response.status == RegistrationStatus.accepted:
print("Connected to central system.")
async def main():
async with websockets.connect(
"ws://Steve IP Address:8080/steve/websocket/CentralSystemService/CP-Test1", subprotocols=["ocpp1.6"]
) as ws:
cp = ChargePoint("CP-Test1", ws)
await asyncio.gather(cp.start(), cp.send_boot_notification())
if __name__ == "__main__":
# asyncio.run() is used when running this example with Python >= 3.7v
asyncio.run(main())
정상적으로 수행 되었다면 아래와 같은 로그 메시지를 볼 수 있습니다.
(venv_ocpp) C:\Workspace\git_ocpp\ocpp>python examples\v16\charge_point.py
INFO:ocpp:CP-Test1: send [2,"e027aeb1-0367-4485-b4a4-82570c362f30","BootNotification",{"chargePointModel":"Optimus","chargePointVendor":"The Mobility House"}]
INFO:ocpp:CP-Test1: receive message [3,"e027aeb1-0367-4485-b4a4-82570c362f30",{"status":"Accepted","currentTime":"2024-01-07T04:53:49.979Z","interval":14400}]
Connected to central system.
그리고 Steve Server에서도 아래 화면과 같이 OCPP Protocol과 Last Heartbeat 시간이 업데이트 된 것을 확인 할 수 있습니다.
반응형
'프로젝트 로그 > OCPP 프로젝트' 카테고리의 다른 글
[OCPP Gateway] TW_OCPP (0) | 2024.02.12 |
---|---|
[Steve 서버 구축 #2] VM 설정 (0) | 2024.01.09 |
[Steve 서버 구축 #1] AWS Lightsail 인스턴스 & DB 인스턴스 생성 (0) | 2024.01.08 |