전원만 넣으면 충전기가 뜬다 — 자동 시작, 그리고 하나씩 죽여 보며 찾은 다섯 가지 (M7-6)
손으로 실행하던 충전기 소프트웨어를 systemd 서비스로 바꿨다. 그리고 충전 중에 프로그램을 하나씩 죽여 봤다. kill -9 한 번에 릴레이가 붙은 채 남았고, EVerest를 다시 시작하자 승인 없이 릴레이가 1초 붙었다. EVerest가 ‘충전 멈추는 중’에서 영원히 맴돈...
손으로 실행하던 충전기 소프트웨어를 systemd 서비스로 바꿨다. 그리고 충전 중에 프로그램을 하나씩 죽여 봤다. kill -9 한 번에 릴레이가 붙은 채 남았고, EVerest를 다시 시작하자 승인 없이 릴레이가 1초 붙었다. EVerest가 ‘충전 멈추는 중’에서 영원히 맴돈...
코드 읽기 1편에서 BSP(sc6-bsp.c)를 봤다. 2편에서는 전력량계 프로그램 sc6-meter, EVerest 안쪽의 충전 상태 머신 EvseManager, 그리고 사건이 OCPP 메시지가 되어 서버로 가는 길을 따라갔다.
기능을 더 붙이기 전에 지금 돌아가는 코드를 이해하는 날로 정했다. 프로그램이 뜨는 순서, EVerest 구성 YAML, EVerest와 우리 프로그램이 MQTT로 주고받는 것, 그리고 BSP(sc6-bsp.c)의 구조·CP 판정·명령 처리를 정리했다.
OCPP 거래의 meterStop이 늘 0이었다. 보드의 전력량계 JSY-MK-163T를 EVerest에 연결하려 했는데, EVerest의 범용 전력량계 모듈은 레지스터 값을 무조건 실수(float)로 해석했다. 정수로 값을 주는 JSY는 읽을 수 없었다. sc6-bsp와 같은 방...
지금까지 충전기는 평문 WebSocket으로 서버에 붙어 있었다. 시험용 인증서를 만들고 SteVe를 HTTPS로 바꾼 뒤, 보드를 OCPP 보안 프로파일 2(TLS + Basic 인증)로 접속시켰다. 틀린 비밀번호와 평문 접속이 거절되는 것까지 확인했다.