Community코딩 & 개발github.com

albinati/home-energy-manager

LP 기반 가정용 에너지 플래너. PuLP MILP 솔버를 통해 Fox ESS 배터리 + Daikin Altherma 히트펌프를 Octopus Agile 30분 단위 요금제에 맞게 최적화하며, 폐쇄형 재생, 시나리오 견고성 및 OpenClaw/Claude용 MCP 도구 인터페이스를 제공합니다.

home-energy-manager란 무엇인가요?

이 기술은 가정용 에너지 관리를 위해 선형 계획법(LP) 기반 최적화를 수행합니다. Fox ESS 배터리와 Daikin Altherma 히트펌프를 결합하여 Octopus Agile의 변동성이 큰 30분 단위 전기 요금에 맞춰 에너지 사용을 최적화합니다. PuLP MILP 솔버를 사용하여 비용을 최소화하는 충전/방전 및 난방 스케줄을 계산하며, 폐쇄형 재생(closed-loop replay) 기능으로 실제 환경에서의 성능을 지속적으로 개선합니다. 또한 시나리오 견고성 분석을 통해 다양한 가격 및 날씨 조건에서도 안정적인 계획을 수립합니다. OpenClaw 및 Claude와 같은 AI 에이전트와 통합하기 위한 MCP(Model Context Protocol) 도구 인터페이스를 제공하여 에너지 관리 작업을 자동화할 수 있습니다. 지원 플랫폼으로는 Linux, macOS, Windows에서 실행 가능하며, Python 3.8+ 환경과 PuLP, Pandas, Requests 라이브러리가 필요합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add albinati/home-energy-manager

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

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 파일 참조.

관련 스킬