CommunityImagengithub.com

KoBa-beep/ClaudeCode-Skill

Crea iconos de dispositivos realistas para Fibaro Home Center 3 / Yubii Home — ilustración realista del dispositivo real sobre fondo transparente con una pequeña insignia de estado redonda, un PNG 128×128 (+ SVG) por estado, legible en modo claro y oscuro — y súbelos / aplícalos en el HC3 (POST /api/icons, icon0…icon100, deviceIcon).

¿Qué es ClaudeCode-Skill?

Este skill permite generar iconos de dispositivos realistas y totalmente personalizados para el Fibaro Home Center 3 / Yubii Home, cubriendo desde interruptores binarios hasta persianas con 11 posiciones, sensores y QuickApps. El proceso incluye dibujar el dispositivo exacto (basado en una foto proporcionada por el usuario) con un estilo que integra sombras suaves, un badge de estado redondo en la esquina inferior derecha (con colores y glifos semánticos como verde para encendido, rojo para alarma, etc.) y mantener la legibilidad tanto en modo claro como oscuro sin variantes de fondo. El skill se apoya en un script Python (`icon_kit.py`) que utiliza `cairosvg` y `pillow` para generar los PNG y SVG, y proporciona un generador de vista previa para iterar con el usuario. Finalmente, sube los conjuntos de iconos al HC3 a través de la API REST (`POST /api/icons`) y los asigna a los dispositivos correspondientes mediante `PUT /api/devices` o `self:updateProperty` en Lua. Es compatible con cualquier habilidad de agente de IA que pueda ejecutar scripts de Python y realizar peticiones HTTP.

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

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Iconos para dispositivos HC3

Responde en el idioma del usuario. Genera iconos con scripts/icon_kit.py (Python, pip install cairosvg pillow): contiene los ayudantes de estilo (degradados, sombra suave, insignia, ~35 glifos de insignia), un ejemplo de dibujo de dispositivo (ventana de tejado con persiana enrollable, 11 posiciones) y el generador de vista previa.

Estilo (qué hace que estos iconos encajen en la interfaz de usuario del HC3)

  • Dibujo realista del dispositivo real (forma, colores, materiales, ángulo de visión). Pide al usuario una foto del modelo exacto y reprodúcela; nunca traces una foto ni copies un logotipo/marca registrada del fabricante (también mantiene los iconos compartibles). Si el usuario quiere explícitamente un logotipo de marca para uso privado, mantén ese icono fuera de cualquier publicación.
  • Fondo transparente, un archivo por estado — sin variantes claro/oscuro. Para que sea legible en ambos temas, proporciona a los dispositivos oscuros un borde claro (stroke="#FFFFFF" de 1–2 px o un bisel más claro) y nunca pintes una placa de fondo.
  • Pequeña insignia redonda, abajo a la derecha (centro 100,100, radio ~22, anillo blanco): el estado (verde encendido, gris inactivo/apagado, rojo alarma, naranja advertencia, azul abierto/nivel, púrpura automático…) o la cantidad medida (termómetro, gota, CO₂, viento…). El dibujo del dispositivo mantiene esa esquina libre.
  • 128 × 128 viewBox, dibujo dentro de ~10–118 px, sombra elíptica suave debajo de dispositivos de suelo.
  • Revisa la vista previa (preview.png: cada icono una vez sobre un fondo diagonal claro/oscuro) antes de entregar.

Cuántas imágenes por dispositivo (reglas del HC3)

Tipo de dispositivoImágenes en un conjunto de iconosCampos de subida
Binario (interruptor, binarySensor, puerta/ventana, movimiento, humo…)2: inactivo / activoicon0, icon100
Multinivel (dimmer, persiana enrollable, válvula de nivel)11: 0, 10 … 100icon0 … icon100
deviceController, la mayoría de padres de QuickApp, multilevelSensor / temperatura…1icon0
Un tipo de una sola imagen no puede cambiar su imagen por sí mismo. Para un icono de QA dependiente del estado (OK / advertencia / alarma, o un modo), sube un conjunto por estado y cambia desde Lua: self:updateProperty("deviceIcon", tonumber(self:optionalVariable("iconAlarm")))
(los ids se pegan en variables; patrón en la habilidad hc3-quickapp, references/patterns.md §5).
Crea un icono por estado útil e iconos para cada dispositivo que cree un QuickApp (padre e hijos).

Flujo de trabajo

  1. Enumera los dispositivos (padre, cada hijo, cada subdispositivo Z-Wave) y su type exacto (api.get("/devices/<id>"), p.ej. com.fibaro.FGR224 para un módulo de persiana Fibaro, com.fibaro.rollerShutter para un hijo de QA).
  2. Pide fotos de los modelos reales; acuerda los estados y significados de las insignias.
  3. Copia scripts/icon_kit.py, escribe una función de dibujo por dispositivo (fragmento SVG en el cuadro de 128, consulta roof_window(pct)), añade filas (name, title, body) a ICONS — una por estado — y ejecuta python3 icon_kit.py --out icons/. Nombrado: <device>-<state> (shutter-000…shutter-100, boiler-on, boiler-off), para que una tabla README pueda indicar qué icono va dónde.
  4. Muestra preview.png; itera sobre los comentarios del usuario (forma, color, claridad de la insignia tipo emoji).
  5. Subida: enumera los conjuntos en la sección icons del qa.json del QA y deja que build_fqa.py (habilidad hc3-packaging) genere <qa>-icons.sh, o sube manualmente: Ajustes → Dispositivos → dispositivo → icono → Añadir.

API de subida (observado en 5.xx)

POST /api/icons, multipart/form-data: type=device, deviceTemplate=<tipo de dispositivo exacto>, un archivo por estado (icon0, icon100 o icon0…icon100), fileExtension=png (svg aceptado). Respuesta 201 {"id": 1055, "iconSetName": "User1055", "fileExtension": "png"}. Aplicar: PUT /api/devices/<id> {"properties": {"deviceIcon": 1055}} (desde fuera — nunca en el propio id de un QA desde dentro del QA, ya que reinicia; usa self:updateProperty). Eliminar: DELETE /api/icons?id=&type=device&name=&fileExtension=png. Los ids de iconos de usuario comienzan alrededor de 1000. GET /api/icons los lista (existen dos formas de respuesta entre firmwares: acepta ambas). También existen iconos de sala y escena (type=room / type=scene probable [V]).

references/badges.md lista los colores de insignia y glifos disponibles en el kit.

Individual skills in this repo

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

Skills relacionados