pypixelcolor 0.5.0: Einzelne Wörter auf dem Pixelpanel einfärben
Am 8. September ist pypixelcolor 0.5.0 erschienen, die Bibliothek, über die ha-ble-led-pixel-display mit den Panels spricht. Version 2.3.2 der Integration verlangt sie jetzt, 2.3.3 dokumentiert die wichtigste Neuerung: Einzelne Wörter eines Textes lassen sich einfärben.
Warum der „Breaking Change“ hier keiner ist
Die Notizen zu 0.5.0 nennen send_text einen Breaking Change: font_size, font_offset, pixel_threshold und var_width wurden im Parameter font zusammengefasst. Die Integration hat keinen dieser Parameter je übergeben. Bevor der Pin wanderte, wurde jede Aufrufstelle gegen 0.5.0 geprüft: send_text mit allen neun Argumenten, send_image_hex für PNG und GIF in beiden Größenmodi und mit Speicherplatz, show_slot, delete, set_clock_mode, set_time, DeviceInfo, parse_device_info und build_get_device_info_command. resize_method nimmt weiter schlichte Zeichenketten an, „fit“ und „crop“ bleiben also gleich.
Zwei Korrekturen aus 0.5.0 greifen direkt. Transparente Bereiche eines PNG oder GIF werden jetzt schwarz abgeflacht, statt Artefakte zu erzeugen. Und die Rahmung großer Textnutzlasten wurde korrigiert, was lange Zeichenketten in send_text betrifft.
Die Schriftenwarnung
0.5.0 entfernt tatsächlich CUSONG, SIMSUN und VCR_OSD_MONO und lässt nur unifont.otf im Paket. Es bricht trotzdem nichts, denn jede Schrift der Oberfläche liegt in der Integration selbst und wird der Bibliothek als absoluter Pfad übergeben. unifont.otf kommt einfach zur Liste hinzu, sodass Panels jetzt auch CJK-Text darstellen können. Ein loses Ende blieb: make_text_command hatte VCR_OSD_MONO als Standardschrift. Das Argument ist nun Pflicht; der einzige Aufrufer übergab immer einen aufgelösten Pfad, praktisch ändert sich nichts, aber ein Standardwert, der eine nicht mehr existierende Schrift nennt, ist eine Falle für den nächsten Aufrufer. Der Pin steht jetzt auf >=0.5.0,<0.6.
Einzelne Wörter färben
pypixelcolor 0.5.0 kann einzelne Zeichen einfärben. Im Modus text und in der Aktion send_text umschließt man dazu ein Wort mit einem Hex-Tag:
action: ble_led_pixel.send_text
target:
entity_id: text.your_panel
data:
text: "[#ff0000]ALARM[/] Kitchen"
color: [255, 255, 255]ALARM erscheint rot, Kitchen in der mitgegebenen Farbe. Tags gewinnen, wo sie gelten; der Farbparameter füllt überall sonst. Mehrere Tags in einer Zeichenfolge funktionieren, und ein offener Tag läuft bis zum Ende:
text: "[#40d858]PV[/] 2400W [#ff3838]Grid[/] 180W"
text: "Battery [#ffbe00]17%"Gebaut werden musste dafür nichts, der Text wurde der Bibliothek ohnehin unverändert übergeben – aber das stand nirgends. Das README zeigt es jetzt in beiden Sprachen, und die Aktion beschreibt es in dem Feld, in das man den Text tippt.
Fehler: Tags erschienen als Text
Der Modus textimage rendert eine ganze Zeile in eine einzige Graustufenmaske und färbt sie erst danach ein. Eine Farbe pro Zeichen kann er nicht liefern. Ein Tag erreichte das Panel samt Klammern ausgeschrieben. Hier werden Tags jetzt entfernt, mit den Hilfsfunktionen von pypixelcolor selbst, damit beide dasselbe unter einem Tag verstehen; der Text erscheint dann einfarbig. Fehlerhafte Tags bleiben absichtlich unangetastet. Das ist wörtlicher Text, den jemand falsch getippt hat, und ihn stillschweigend zu verschlucken würde den Fehler verstecken.
Zu beachten
- Nur sechsstellige Hex-Werte.
[#f00]ist für die Bibliothek kein Tag und erreicht das Panel unverändert. - Bei aktivem Textverlauf färbt das Panel den Text selbst. Wie das mit Farben pro Zeichen zusammenspielt, ist auf Hardware nicht getestet.
Und die Galerie-Beta
Die Vorabversion 2.4.0-beta.3 trägt dieselbe Galerie wie beta.2 (159 Bilder, 24 animiert) und bringt alles aus 2.3.2 mit. Es hat sich kein Motiv geändert. Wichtig ist dort besonders die 0.5.0-Korrektur zu transparenten Bereichen, denn jedes Galeriemotiv ist auf Schwarz gezeichnet und nimmt genau diesen Weg zum Panel. Auch diese Beta ist weiter nicht auf echter Hardware gelaufen; sie erscheint in HACS nur mit aktivierten Beta-Versionen.
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.