HC3 Geräte-Icons für Fibaro Home Center 3 / Yubii Home
Antworte in der Sprache des Benutzers. Generiere Icons mit scripts/icon_kit.py (Python, pip install cairosvg pillow):
es enthält die Stil-Helfer (Farbverläufe, weicher Schatten, Badge, ~35 Badge-Symbole), eine Beispiel-Gerätezeichnung (Dachfenster mit Rollladen, 11 Positionen) und den Vorschau-Generator.
Stil (was diese Icons in die HC3-Oberfläche einfügt)
- Realistische Zeichnung des echten Geräts (Form, Farben, Materialien, Blickwinkel). Frage den Benutzer nach einem Foto des exakten Modells und reproduziere es; niemals ein Foto abzeichnen oder ein Herstellerlogo / Markenzeichen kopieren (hält die Icons auch teilbar). Wenn der Benutzer explizit ein Markenlogo für den privaten Gebrauch wünscht, behalte dieses Icon außerhalb von Veröffentlichungen.
- Transparenter Hintergrund, eine Datei pro Zustand – keine hellen / dunklen Varianten. Um in beiden Themen lesbar zu bleiben, gib dunklen Geräten eine helle Kante (
stroke="#FFFFFF"1–2 px oder eine hellere Abschrägung) und male niemals eine Hintergrundplatte. - Kleiner runder Badge, unten rechts (Mitte 100,100, Radius ~22, weißer Ring): der Zustand (grün ein, grau inaktiv / aus, rot Alarm, orange Warnung, blau offen / Pegel, lila Auto…) oder die gemessene Größe (Thermometer, Tropfen, CO₂, Wind…). Die Gerätezeichnung hält diese Ecke frei.
- 128 × 128 viewBox, Zeichnung innerhalb von ~10–118 px, weicher elliptischer Schatten unter standfähigen Geräten.
- Überprüfe die Vorschau (
preview.png: jedes Icon einmal auf hellem / dunklem diagonalem Hintergrund) vor der Auslieferung.
Wie viele Bilder pro Gerät (HC3-Regeln)
| Gerätetyp | Bilder in einem Icon-Set | Upload-Felder |
|---|---|---|
| Binär (Schalter, binarySensor, Tür/Fenster, Bewegung, Rauch…) | 2: inaktiv / aktiv | icon0, icon100 |
| Mehrstufig (Dimmer, Rollladen, Ventilpegel) | 11: 0, 10 … 100 | icon0 … icon100 |
| deviceController, die meisten QuickApp-Eltern, multilevelSensor / Temperatur… | 1 | icon0 |
Ein Einzelbild-Typ kann sein Bild nicht selbst ändern. Für ein zustandsabhängiges QA-Icon (OK / Warnung / Alarm oder ein Modus) lade ein Set pro Zustand hoch und wechsle aus Lua: self:updateProperty("deviceIcon", tonumber(self:optionalVariable("iconAlarm"))) (IDs in Variablen eingefügt; Muster im hc3-quickapp-Skill, references/patterns.md §5). | ||
| Erstelle ein Icon pro sinnvollem Zustand und Icons für jedes Gerät, das ein QuickApp erstellt (Eltern und Kinder). |
Arbeitsablauf
- Liste die Geräte (Eltern, jedes Kind, jedes Z-Wave-Untergerät) und ihren exakten
typeauf (api.get("/devices/<id>"), z.B.com.fibaro.FGR224für ein Fibaro Rollladenmodul,com.fibaro.rollerShutterfür ein QA-Kind). - Frage nach Fotos der echten Modelle; stimme die Zustände und Badge-Bedeutungen ab.
- Kopiere
scripts/icon_kit.py, schreibe eine Zeichenfunktion pro Gerät (SVG-Fragment in der 128-Box, sieheroof_window(pct)), füge(name, title, body)-Zeilen zuICONShinzu – eine pro Zustand – und führepython3 icon_kit.py --out icons/aus. Benennung:<gerät>-<zustand>(shutter-000…shutter-100,boiler-on,boiler-off), damit eine README-Tabelle sagen kann, welches Icon wohin gehört. - Zeige
preview.png; iteriere über die Anmerkungen des Benutzers (Form, Farbe, emoji-ähnliche Badge-Klarheit). - Hochladen: Liste die Sets im
icons-Abschnitt derqa.jsondes QAs auf und lassbuild_fqa.py(Skillhc3-packaging)<qa>-icons.shgenerieren, oder lade von Hand hoch: Einstellungen → Geräte → Gerät → Icon → Hinzufügen.
Upload-API (beobachtet auf 5.2xx)
POST /api/icons, multipart/form-data: type=device, deviceTemplate=<exakter Gerätetyp>, eine Datei pro Zustand (icon0, icon100 oder icon0…icon100), fileExtension=png (svg akzeptiert). Antwort 201 {"id": 1055, "iconSetName": "User1055", "fileExtension": "png"}. Anwenden: PUT /api/devices/<id> {"properties": {"deviceIcon": 1055}} (von außen – niemals auf die eigene ID eines QAs von innen, es startet neu; verwende self:updateProperty). Löschen: DELETE /api/icons?id=&type=device&name=&fileExtension=png. Benutzericon-IDs beginnen bei etwa 1000. GET /api/icons listet sie auf (zwei Antwortformen existieren über Firmware-Versionen; akzeptiere beide).
Raum- und Szenen-Icons existieren ebenfalls (type=room / type=scene wahrscheinlich [V]).
references/badges.md listet die Badge-Farben und Glyphen, die im Kit verfügbar sind.