Galerie für Pixelpanels: 159 fertige Motive in der 2.4.0-Beta
Ein Waschmaschinen-Symbol auf ein Pixelpanel zu bringen war bisher überraschend aufwendig: ein Bild finden, an einem Ort ablegen, den Home Assistant lesen darf, und den absoluten Pfad in eine Aktion tippen. Für „zeige eine Waschmaschine, wenn die Wäsche fertig ist“ ist das zu viel. Die Vorabversionen 2.4.0-beta.1 und beta.2 von ha-ble-led-pixel-display bringen deshalb eine Galerie mit.
Die Galerie
Mit beta.1 liefert die Integration 118 Motive mit, gezeichnet für ein 32×32-Panel, 20 davon animiert. Mit beta.2 sind es 159, davon 24 animiert. Die erste Beta verteilte sie auf diese Kategorien:
- Status: 33
- Dekoration: 20
- Anlass: 17
- Wetter: 15
- Energie: 12
- Symbol: 11
- Benachrichtigung: 10
Auf der Geräteseite erscheint eine Auswahl-Entität „Gallery“: Motiv wählen, und es geht zum Panel – ohne Dateipfad und ohne Download. Aus Automationen heraus macht das die neue Aktion show_gallery_image. Sie akzeptiert die Motiv-ID, den schlichten Namen oder das Label aus der Auswahl-Entität, sodass eine Automation mit jeder der drei Schreibweisen weiterläuft.
action: ble_led_pixel.show_gallery_image
target:
entity_id: text.your_panel
data:
motif: washing-machineDie zweite neue Aktion, preload_gallery, legt bis zu zehn Bilder in den eigenen Speicherplätzen des Panels ab. Ein gespeichertes Bild wird mit sieben Byte abgerufen statt mit einem ganzen Framebuffer – auf einem 32×32-Panel 7 statt 12.288. Zehn ist die Grenze des Panels und keine gewählte: Jeder Schreibpfad hört dort auf, während show_slot bis 255 liest. Genau diese Zahl stammt aus der Hersteller-App und nicht von einem echten Panel.
Was in beta.2 dazukam
41 weitere Motive. Neu sind Verkehrsschilder (Stopp, Einfahrt verboten, Vorfahrt gewähren, Tempolimit, Fußgängerüberweg, Parkverbot, Baustelle) und eine Ampel, die die deutsche Schaltfolge mit realistischen Standzeiten animiert: vier Schritte Rot, einer Rot-Gelb, vier Grün, einer Gelb. Das Home-Office-Set zeigt „In a meeting“, „do not disturb“, „free“, ein blinkendes „on air“, Headset, Videoanruf, stummgeschaltetes Mikrofon und Schreibtisch, genug, um dem Haushalt zu sagen, ob die Tür geöffnet werden darf.
Weihnachten, Ostern und Halloween waren je ein bis zwei Motive und sind jetzt eigene Sätze: Weihnachtsmann, Mütze, Rentier, Zuckerstange, Kugel, Stiefel; Hase, Küken, Korb, Lamm; Fledermaus, Spinne, Hexenhut, Grabstein, Süßigkeiten. Valentinstag ist neu, mit zwei Herzen, Amors Pfeil, Rose, Liebesbrief, Pralinenschachtel, Kuss, Ring und fallenden Herzen als Animation. Dazu kommen ein zugestellter Brief mit Briefmarke, damit er sich vom schlichten E-Mail-Umschlag unterscheidet, und ein Paket mit Adressetikett – die Galerie hatte bisher nur einen Briefkasten, der „Post wartet“ sagt, nicht „etwas ist angekommen“.
Warum 32×32
Pixelart skaliert nicht wie Vektorgrafik: Ein Motiv, das bei 32×32 lesbar ist, wird bei 16 zu Matsch und bei 64 grob. Die unterstützten Panels gibt es in dreißig Geometrien, ein einziger mitgelieferter Satz passt also nie auf alle. show_gallery_image verwendet deshalb standardmäßig fit: Das ganze Bild wird verkleinert und mit Schwarz aufgefüllt, statt aus der Mitte eines breiten Panels einen schmalen Streifen auszuschneiden.
Gezeichnet statt eingecheckt
Die Motive entstehen im Skript tools/build_gallery.py aus Rechtecken, Linien, Kreisen und Polygonen und liegen nicht als undurchsichtige Dateien im Repository. Nichts ist nachgezeichnet, kein Bildsatz Dritter ist im Spiel; die Galerie trägt deshalb die GPL-3.0 des Repositorys. In pixelart.py kam in beta.2 eine 3×5-Großbuchstabenschrift hinzu, Pixel für Pixel definiert und keine importierte Schriftdatei, damit die Lizenzlage so eindeutig bleibt wie beim Rest. Ein Schild braucht ein Wort, und höher als fünf Pixel passt nichts in eine Form, ohne dass die Form unlesbar wird. Einige Buchstaben sind absichtlich eckiger als ihre echten Vorbilder, denn eine Diagonale über drei Spalten wirkt in dieser Größe wie Rauschen. Die Herzkurve, die in zwei Motiven ausgeschrieben war und in acht gelandet wäre, steckt jetzt in einer Hilfsfunktion.
Beiläufig behoben: send_image_file, send_layout und send_test_pattern trugen noch die italienischen Beschreibungen, mit denen sie geschrieben wurden; der Aktionsdialog mischte zwei Sprachen. Alle 33 Beschreibungen sind jetzt englisch.
Noch eine Vorabversion
Syntax, YAML, JSON, die Suchlogik und alle 159 Dropdown-Werte sind geprüft. Gelaufen ist es auf echter Hardware noch nicht. Ich bitte darum, die Beta nur zu installieren, wenn man zurückmelden mag, besonders, ob preload_gallery wirklich bei zehn Plätzen endet. In HACS erscheint die Version, wenn man Beta-Versionen für dieses Repository aktiviert.
Zum Projekt
-
BLE LED Pixel Display
Home-Assistant-Integration für Bluetooth-LED-Pixelpanels (BGLight, B.K. Light von Action, iPixel Color): Text, Bilder, GIFs, Icons und Layouts lokal per Bluetooth LE, ohne Cloud und ohne Hersteller-App.
Unterstützen
Diese Tools entstehen in meiner Freizeit und bleiben kostenlos, offen und cloud-frei. Wenn dir eins davon einen Nachmittag gespart hat, freue ich mich über einen Kaffee oder ein Stück Pizza.
Kaffee oder PizzaWeitere Beiträge
- Rollladen-Steuerung pro Raum: Taster, Fenster, Kälte und Regen Eine Automation pro Raum, die Taster, Fensterkontakt, Kälte, Regen und die Zeit vor Sonnenaufgang zusammenführt. Zwei Merker-Helfer verhindern, dass sich die Auslöser gegenseitig überfahren.
- Stromausfall erkennen und Geräte wiederherstellen in Home Assistant Nach einem Stromausfall booten Lampen und Steckdosen in zufälligen Zuständen. Drei Erkennungswege, ein gemeinsames Script und ein Wiederherstellungsfenster bringen alles wieder in den gewünschten Zustand.
- Rauchmelder löst aus: Alle Rollläden fahren hoch (Home Assistant) Bei Rauchalarm sollen die Rollläden im ganzen Haus hochfahren, damit Fenster als Fluchtweg frei sind. Die Automation ist kurz – aber ein fehlendes „from“ im Trigger entscheidet darüber, ob sie im Ernstfall überhaupt feuert.