home-energy-manager은(는) 무엇을 하나요?
LP 기반 가정용 에너지 플래너. PuLP MILP 솔버를 통해 Fox ESS 배터리 + Daikin Altherma 히트펌프를 Octopus Agile 30분 단위 요금제에 맞게 최적화하며, 폐쇄형 재생, 시나리오 견고성 및 OpenClaw/Claude용 MCP 도구 인터페이스를 제공합니다.
개요
home-energy-manager는 가정의 에너지 사용을 최적화하는 명령줄 도구입니다. Fox ESS 배터리 저장 시스템과 Daikin Altherma 공기-물 히트펌프를 모델링하여, Octopus Agile의 동적 전기 요금(30분 단위로 변동)에 맞춰 비용을 최소화합니다.
주요 기능
- 선형 계획법 기반 최적화: PuLP MILP 솔버를 사용하여 24시간 전망 기간에 대한 최적의 배터리 충전/방전 및 히트펌프 작동 스케줄을 계산합니다.
- 폐쇄형 재생: 실제 실행 후 계획을 보정하여 다음 최적화에 반영함으로써 정확성을 지속적으로 개선합니다.
- 시나리오 견고성: 다양한 가격 및 날씨 시나리오에서 계획의 강건성을 평가합니다.
- MCP 도구 인터페이스: OpenClaw 및 Claude 에이전트가 도구로 호출할 수 있도록 MCP(Model Context Protocol) 서버를 제공합니다.
지원 플랫폼
- Linux (x86_64, aarch64)
- macOS (Intel, Apple Silicon)
- Windows (WSL2 권장)
필수 조건
- Python 3.8 이상
- pip 패키지 관리자
- 인터넷 연결 (Octopus Agile 요금 데이터 및 날씨 정보 API 호출용)
설치
# 저장소 복제
git clone https://github.com/albinati/home-energy-manager.git
cd home-energy-manager
# 가상 환경 생성 (권장)
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 종속성 설치
pip install -r requirements.txt
# 구성 파일 복사
cp config.example.yaml config.yaml
# config.yaml을 편집하여 Fox ESS, Daikin, Octopus API 자격 증명 입력
사용법
명령줄 실행
# 오늘의 최적 계획 생성
python plan.py --today
# 특정 날짜에 대해 실행
python plan.py --date 2024-01-15
# 폐쇄형 재생 실행
python replay.py --date 2024-01-14
# 시나리오 테스트 실행
python scenario.py --scenarios high_price,cold_weather
MCP 서버로 실행
MCP 서버를 시작하면 Claude 또는 OpenClaw 에이전트가 도구로 호출할 수 있습니다.
python mcp_server.py
API 참조
Fox ESS API
Fox ESS 클라우드 API를 사용하여 배터리 상태(SOC, 충전/방전 전력)를 가져옵니다.
환경 변수:
FOX_ESS_API_KEY: API 키FOX_ESS_SERIAL: 인버터 시리얼 번호
Daikin Altherma API
Daikin Altherma 히트펌프의 작동 모드 및 온도 설정을 제어합니다.
환경 변수:
DAIKIN_HOST: 히트펌프 IP 주소DAIKIN_PASSWORD: API 비밀번호
Octopus Agile API
Octopus Energy의 공개 API를 사용하여 30분 단위 전기 요금을 가져옵니다.
환경 변수:
OCTOPUS_API_KEY: API 키OCTOPUS_MPAN: MPAN 번호OCTOPUS_SERIAL: 미터 시리얼 번호
구성 파일
config.yaml 예시:
battery:
capacity_kwh: 10.0 # Fox ESS 배터리 용량 (kWh)
max_charge_power_kw: 3.0
max_discharge_power_kw: 3.0
min_soc: 0.10
max_soc: 0.95
octopus:
region: "E" # Octopus Energy 지역 코드
daikin:
min_flow_temp_c: 25
max_flow_temp_c: 55
cop_curve: [3.5, 3.2, 2.8, 2.2] # 외기 온도별 COP
문제 해결
- API 연결 오류: 인터넷 연결 확인 및 API 키가 올바른지 확인
- 솔버 오류:
pip install pulp로 PuLP 재설치 - MCP 연결 문제:
python mcp_server.py --verbose로 디버그 모드 실행
라이선스
MIT 라이선스. 자세한 내용은 LICENSE 파일 참조.