sphings-dev.de

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.

Tags

Zum Projekt

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 Pizza

Weitere Beiträge