Community이미지github.com

HC3 기기 아이콘 생성기

Fibaro Home Center 3 / Yubii Home용 실제 기기를 사실적으로 묘사한 디바이스 아이콘을 생성합니다. 투명 배경에 작은 원형 상태 배지가 포함된 128×128 PNG(+SVG)를 상태별로 만들고, HC3에 업로드/적용합니다.

HC3 기기 아이콘 생성기란 무엇인가요?

이 스킬은 Fibaro Home Center 3(HC3) 또는 Yubii Home 시스템에서 사용할 실제 디바이스 아이콘을 생성하고 관리하는 전문 도구입니다. 사용자가 QuickApp, Z-Wave 모듈, 하위 기기, 셔터(11단계), 센서 등을 위한 아이콘이 필요하거나, 상태 변경에도 아이콘이 바뀌지 않는 문제, 또는 단순히 '보기 좋게 만들어 달라'는 요청을 할 때 이 스킬을 사용합니다. 이 스킬은 Python 스크립트(`scripts/icon_kit.py`)를 기반으로 동작하며, HC3 UI 스타일에 맞춰 사실적인 디바이스 드로잉, 투명 배경, 오른쪽 하단의 작은 상태 배지(녹색 켜짐/회색 꺼짐/빨간색 경보 등)를 자동 생성합니다. 128×128 viewBox를 기준으로 하며, 미리보기 이미지를 제공하여 조정을 거친 후 최종 파일을 업로드합니다. HC3 규칙에 따라 기기 타입별로 필요한 이미지 개수(이진 기기: 2개, 멀티레벨: 11개 등)를 정확히 준수하며, `POST /api/icons` API를 통해 업로드하고 `PUT /api/devices/<id>`로 적용합니다. 또한 Lua 스크립트를 통한 동적 아이콘 전환(`self:updateProperty`)도 지원합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/KoBa-beep/ClaudeCode-Skill/tree/HEAD/fibaro-hc3/hc3-icons

Installed? Explore more 이미지 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

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

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

문서

HC3 기기 아이콘

사용자의 언어로 답변하세요. scripts/icon_kit.py(Python, pip install cairosvg pillow)를 사용하여 아이콘을 생성합니다: 이 스크립트에는 스타일 도우미(그라데이션, 부드러운 그림자, 배지, ~35개의 배지 글리프), 예제 장치 드로잉(천창 + 롤러 셔터, 11단계) 및 미리보기 생성기가 포함되어 있습니다.

스타일 (이 아이콘들이 HC3 UI에 적합한 이유)

  • 실제 장치의 사실적인 드로잉(모양, 색상, 재질, 시야각). 사용자에게 정확한 모델의 사진을 요청하고 재현하세요. 사진을 트레이싱하거나 제조사 로고/상표를 복사하지 마세요(아이콘을 공유 가능하게 유지합니다). 사용자가 개인 용도로 브랜드 로고를 명시적으로 원하는 경우, 해당 아이콘을 공개된 곳에 게시하지 마세요.
  • 투명 배경, 상태당 하나의 파일 — 라이트/다크 변형 없음. 두 테마에서 모두 읽기 쉽도록 어두운 장치에는 밝은 테두리(stroke="#FFFFFF" 1–2px 또는 밝은 베벨)을 주고 배경판을 절대 칠하지 마세요.
  • 오른쪽 하단의 작은 원형 배지(중심 100,100, 반경 ~22, 흰색 링): 상태(녹색 켜짐/회색 대기 또는 꺼짐/빨간색 경보/주황색 경고/파란색 열림 또는 레벨/보라색 자동…) 또는 측정된 값(온도계, 물방울, CO₂, 바람…). 장치 드로잉은 이 모서리를 비워둡니다.
  • 128 × 128 viewBox, 드로잉은 ~10–118px 범위 내, 바닥 설치 장치 아래에는 부드러운 타원형 그림자.
  • 미리보기(preview.png: 각 아이콘이 라이트/다크 대각선 배경에 한 번씩 표시됨)를 확인한 후 전달하세요.

장치당 이미지 개수 (HC3 규칙)

장치 유형하나의 아이콘 세트 내 이미지 수업로드 필드
이진 (스위치, binarySensor, 문/창문, 모션, 연기…)2: 대기 / 활성icon0, icon100
멀티레벨 (디머, 롤러 셔터, 밸브 레벨)11: 0, 10 … 100icon0 … icon100
deviceController, 대부분의 QuickApp 부모, multilevelSensor / 온도…1icon0
하나의 이미지 유형은 자체적으로 그림을 변경할 수 없습니다. 상태별 QA 아이콘(OK/경고/경보 또는 모드)의 경우 상태당 하나의 세트를 업로드하고 Lua에서 전환합니다: self:updateProperty("deviceIcon", tonumber(self:optionalVariable("iconAlarm")))
(id는 변수에 붙여넣음, 패턴은 hc3-quickapp 스킬의 references/patterns.md §5 참조).
유용한 상태별 아이콘 하나와 QuickApp이 생성하는 모든 장치(부모 및 자식)에 대한 아이콘을 만드세요.

워크플로우

  1. 장치 목록(부모, 각 자식, 각 Z-Wave 하위 장치)과 정확한 type을 확인합니다(api.get("/devices/<id>"), 예: com.fibaro.FGR224는 Fibaro 롤러 셔터 모듈, com.fibaro.rollerShutter는 QA 자식 장치).
  2. 실제 모델의 사진을 요청하고, 상태 및 배지 의미에 대해 합의합니다.
  3. scripts/icon_kit.py를 복사하고, 장치당 하나의 드로잉 함수(SVG 조각, 128 박스 내, roof_window(pct) 참조)를 작성하고, ICONS에 (name, title, body) 행을 추가합니다(상태당 하나씩). 그런 다음 python3 icon_kit.py --out icons/를 실행합니다. 명명 규칙: <device>-<state> (shutter-000…shutter-100, boiler-on, boiler-off). README 테이블에서 어떤 아이콘이 어디에 쓰이는지 알 수 있습니다.
  4. preview.png를 보여주고, 사용자의 의견(모양, 색상, 이모지 같은 배지 선명도)에 따라 반복 수정합니다.
  5. 업로드: QA의 qa.json icons 섹션에 세트를 나열하고 build_fqa.py(스킬 hc3-packaging)가 <qa>-icons.sh를 생성하도록 하거나, 수동으로 업로드: 설정 → 장치 → 장치 → 아이콘 → 추가.

업로드 API (5.2xx에서 확인됨)

POST /api/icons, multipart/form-data: type=device, deviceTemplate=<정확한 장치 유형>, 상태당 하나의 파일(icon0, icon100 또는 icon0…icon100), fileExtension=png (svg 허용됨). 응답 201 {"id": 1055, "iconSetName": "User1055", "fileExtension": "png"}. 적용: PUT /api/devices/<id> {"properties": {"deviceIcon": 1055}} (외부에서 — QA 내부에서 QA 자체 id에 적용하지 마세요, 재시작됨. self:updateProperty를 사용하세요). 삭제: DELETE /api/icons?id=&type=device&name=&fileExtension=png. 사용자 아이콘 id는 1000부터 시작합니다. GET /api/icons는 목록을 반환합니다(펌웨어에 따라 두 가지 응답 형태가 있습니다. 둘 다 처리하세요). 방 및 장면 아이콘도 존재합니다(type=room / type=scene 가능 [V]).

references/badges.md에는 키트에서 사용 가능한 배지 색상과 글리프가 나열되어 있습니다.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

관련 스킬