Liebe Tester,
zu allererst vielen Dank, dass Ihr Euch bereit erklärt habt das pxlBlck Plugin zu testen. 🙂
Im folgenden versuche ich alles aufzulisten, dass Ihr für die Installation und den Betrieb des Plugins benötigt. Wenn etwas fehlt erwähnt das bitte einfach in der Kommtnarfunktion ganz am Ende der Seite. 🙂
Sicherheitshinweise
Ich weiß die folgenden Hinweise sind immer irgendwie lästig und wirken unnötig. Aber leider haben schon viele Menschen die es "besser" wussten aus Leichtsinnigkeit Augen, Finger oder anderes verloren bzw. sich verletzt. Im Vergleich dazu ist ein Datenverlust fast nicht der Rede Wert, aber auch diese können echt ärgerlich sein. Deswegen nehmt Euch bitte fünf Minuten Zeit um die Sicherheitshinweise zu lesen. Denn auch das coolste Projekt ist keine Verletzung oder anderen Ärger wert.
https://www.nerdiy.de/sicherheitshinweise/
Affiliatelinks/Werbelinks
Die hier in aufgeführten Links zu Online-Shops sind sogenannte Affiliate-Links. Wenn Du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekommt Nerdiy.de von dem betreffenden Online-Shop oder Anbieter eine Provision. Für Dich verändert sich der Preis nicht. Falls Du Deine Einkäufe über diese Links tätigst unterstützt Du Nerdiy.de dabei auch in Zukunft weitere nützliche Projekte anbieten zu können. 🙂
Voraussetzungen
Hilfreiche Artikel:
Um das pxlBlck-Plugin auf Euren ….
Benötigtes Werkzeug:
gg. Lötkolben
Benötigtes Material:
In der folgenden Liste findet Ihr alle Teile die Ihr zur Umsetzung dieses Artikels benötigt.
Wemos
LED matrix
5V Netzteil
Installation des Plugins
Wie bereits erwähnt ist das pxlBlck-Plugin ein Plugin für das ESPEasy Framework. Ihr müsste also zunächst ESPEasy auf Euren ESP8266 oder ESP32 flashen. Dabei sollte das PxlBlck Plugin natürlich auch schon enthalten sein. Den Verbund aus EspEasy-Framework inklusive Plugin nenne ich im weiteren einfach Mal “Firmware”.
Um die Firmware letztlich auf Euren Mikrocontroller zu bekommen gibt es im Prinzip zwei Wege. Der eine wäre der hier beschriebene: https://nerdiy.de/howto-espeasy-firmware-flashen/
Der zweite Weg ist für die Testphase auch erst Mal der einzig mögliche. Da ich den Quellcode noch nicht veröffentlichen möchte, werde ich die Firmware als fertig kompilierte binary zur Verfügung stellen, die Ihr dann nur noch auf den ESP programmieren müsst. Dies ist wie gesagt hier beschrieben: https://nerdiy.de/howto-esp8266-mit-dem-esptool-bin-dateien-unter-windows-flashen/
Die jeweils aktuelle binary findet Ihr im nächsten Abschnitt. 🙂
Binaries bzw. vorkompilierte Firmware dateien
Hier werde ich alle Firmware-Versionen während der Testphase auflisten. Ich versuche auch immer dazu zu schreiben, was sich geändert hat. 🙂
Version 0.0.2:
Binary: Download
Changelog:
- Added “Generic – MQTT Import”-module
Version 0.0.1:
Binary: Download
Changelog:
- Initiales release
WLAN Zugangsdaten konfigurieren
Nachdem Ihr die Firmware afu Euren ESP übertragen habt, ist der nächste Schritt die Konfiguration der WLAN Zugangsdaten. Dies ist hier beschrieben: https://www.nerdiy.de/howto-espeasy-firmware-flashen/ ich finde den Weg über die serielle Schnittstelle am einfachsten. Infos dazu hier: https://nerdiy.de/howto-espeasy-firmware-flashen/#WLAN-Zugangsdaten_ueber_die_serielle_Schnittstelle_konfigurieren
Bitte lasst mich wissen, wenn dort etwas nicht ausreichend beschrieben ist. 🙂
Plugin Optionen / Webmenü des Plugins
Eine sehr komfortable Möglichkeit das pxlBlck Plugin zu konfigurieren ist das Webmenü. Um dies zu erreichen müsst Ihr einfach die IP-Adresse Eures EPSs in die Adresszeile Eures Browsers eingeben. Klickt Euch dann durch das menü zu den Einstellungen des pxlBlcks.
- Name: Hier könnt Ihr den Namen des devices konfigurieren
- Enabled: Nur wenn der Haken hier gesetzt ist wird das Plugin auch aktiviert
- GPIO/DigitalIn: Hier müsst ihr den GPIO angeben der mit der LED Matrix verbunden ist
- Help: Funktioniert noch nicht bzw. führt ins leere. Hier soll bald eine Seite enstehen wo die Nutzer sich dann zu Hilfethemen durchklicken können
- Display Enabled: Über diesen Haken lässt sich das Display deaktivieren bzw. der INhalt wird nicht mehr dargestellt. Diese Option kann zum Beispiel genutzt werden um Nachts oder wenn niemand zu Hause ist das Display abzuschalten.
- Matrix type: Hier könnt Ihr die Maße Eurer LED Matrix konfigurieren. In dem Beispiel oben ist eine Matrix konfiguriert die 32 LEDs breit und 8 LEDs hoch ist
- Led type: Hiermit könnt Ihr den Typ Eurer LED konfigurieren. Die meisten Neopixel bzw. WS2812 LEDs haben die folge Grün, Rot, Blau. Also GRB.
- Start positions: Hier könnt Ihr angeben in welcher Ecke auf Eurer Matrix die erste LED liegt. Informationen dazu findet Ihr auch hier: https://learn.adafruit.com/adafruit-neopixel-uberguide/neomatrix-library
- LED-Arrangement: Damit kann das Arrangement Eurer LED Matrix konfiguriert werden. Informationen dazu findet Ihr auch hier: https://learn.adafruit.com/adafruit-neopixel-uberguide/neomatrix-library
- Tile-Arrangement & Matrix tiles in X-direction & Matrix tiles in Y-direction: Diese Funktionen funktionieren noch nicht. :/ Bitte einfach auf “OneTileOnly” stehen lassen.
- Matrix rotation: Damit lässt sich die Matrix jeweils um 90° Schritte rotieren
- Dial version: Diese Option konfiguriert das Ziffernblatt bzw. die Animation die während des normalen Betriebs angezeigt wird. Dazu weiter unten mehr.
- Leading zeros enabled: Mit dieser Funktion könnt Ihr führende Nullen aktivieren. So wird z.B. aus der Uhrzeit 08:15Uhr die Anzeige 8:15Uhr
- Display brightness: Dies gibt die Bildschirmhelligkeit des dargestellten Inhalts in 15 Schritten an
- Minimal brightness: Mit dieser Option lässt sich für die geringste Helligkeit ein spezifischer absolutwert einstellen. Ist etwas schwer zu erklären. Ich werde dazu auch noch Mal einen gesonderten Beschreibungstext hier eintragen. 🙂
- Hour & Minute & Background: Hier lässt sich jeweils die Farbe für die jeweiligen Gruppen einstellen. Diese Gruppen ändern sich auch je nach eingestellten Ziffernblatt unter “Dial version”.
Verfügbare Befehle
Neben der Möglichkeit die oben genannten Option per Webmenü zu konfigurieren, kann man diese Optionen auch über die direkte Eingabe der Befehle konfigurieren. Um diese befehle einzugeben gibt es verschiedene Optionen die alle hier beschrieben sind: https://nerdiy.de/howto-espeasy-befehle-ausfuehren/
Die folgenden Befehle stehen zur Verfügung um das pxlBlck-Plugin per Befehl zu konfigurieren und dessen Aussehen/Verhalten während des Betriebs zu verändern.
Der Aufbau der Befehle ähnelt sich meistens. Nach dem eigentlichen Befehlsnamen werden – durch jeweils ein Komma getrennt – die Parameter übergeben. Die Form sieht also in etwa so aus:
Befehlsname,Parameter1,Parameter2,…,ParameterX,
Dabei ist es wichtig, dass auch der letzte Parameter mit einem Komma beendet wird. Ohne ein Komma wird dieser Parameter ignoriert.
Die folgenden Befehle sind so aufgeschrieben, dass Ihr einen schnellen Überblick bekommen könnt wie der Befehl und seine angehängten Parameter heißen. Dabei sind die Parameter wieder untereinander getrennt und in eckigen Klammern zusammengefasst. Außerdem ist in den eckigen Klammern auch der erlaubte Wertebereich des jeweiligen Parameters angegeben.
Beispiel:
Befehlsname,[Parameter1 0-1],[Parameter2 0-15],[ParameterX 0-255],
In diesem Beispiel hat der Parameter1 also einen erlaubten Wertebereich von 0-1, Parameter2 einen erlaubten Wertebereich von 0-15 und ParameterX einen erlaubten Wertebereich von 0-255.
Wichtig ist hierbei auch, dass Werte die außerhalb dieses erlaubten Wertebereichs liegen, dazu führen, dass die komplette Paramatereinstellung für diesen Parameter ignoriert wird.
Wenn Ihr im oben angegebenen Beispiel also gerne ParameterX konfigurieren, den Rest aber unverändert lassen wollt könnt Ihr folgendes Befehl absenden.
Befehlsname,2,16,133,
Durch diese Angabe werden die ersten beiden eingegebenen Werte ignoriert, weil sie auserhalb des erlaubten Wertebereichs liegen. Nur der letzte Wert “133” wird übernommen, weil er in dem erlaubten Wertebereich für “ParameterX” liegt.
Befehl: Allgemeine Einstellungen
Um allgemeine Einstellungen vornehmen zu können, könnt Ihr den Befehl “pb” nutzen. Darüber lässt sich das allgemeine Verhalten und die Anzeige Eures pxlBlcks konfigurieren.
Befehlsübersicht:
pb,[display_enabled 0-1],[brightness 0-15],[rc_mark_brightness 0-15],[matrix_rotation 0-3],[selected_dial 0-15],[wc_it_is_enabled 0-1],[wc_o_clock_enabled 0-1],[rc_dir_inversed 0-1],[wc_language_id 0-15],[minimal_brightness 0-255],
Parameter-Beschreibung:
- display_enabled: Aktiviert(1) oder deaktiviert(0) die Display-Ausgabe. Hiermit lässt sich zum Beispiel strom sparen wenn niemand Anwesen ist. Siehe auch pxlBlck – Bei Abwesenheit das Display abschalten
- brightness: Helligkeit des Displays in 16 Schritten von 0-15, wobei das Display bei dem Wert 0 nicht komplett deaktiviert wird. In diesem Fall wird der (Absolut)-Wert der in minimal_brightness angegeben ist, als Helligkeit gesetzt.
- rc_mark_brightness: Helligkeit der Stundenmarkierungen im Ringclock-Betrieb in 16 Schritten von 0-15.
- matrix_rotation: Display-Ausrichtung der angezeigten Matrix von 0-3. Dabei bewirkt eine erhöhung dieses Wertes eine Rotation um 90° im Uhrzeigersinn.
- selected_dial: Ausgewähltes Ziffernblatt. Hiermit könnt Ihr auswählen, welches Ziffernblatt regelmäßig auf dem Display dargestellt wird. Dies kann eine einfache Animation aber auch eine Uhrzeitanzeige sein.
- wc_it_is_enabled: Aktiviert(1) oder deaktiviert(0) im Wordclock-Betrieb die Anzeige der Buchstaben “Es ist”.
- wc_o_clock_enabled: Aktiviert(1) oder deaktiviert(0) im Wordclock-Betrieb die Anzeige der Buchstaben “Uhr”.
- rc_dir_inversed: Invertiert(1) oder nicht-invertiert(0) im Ringclock-Betrieb die Laufrichtung der Zeiger. Durch diese Einstellung wird das Ringclock-Ziffernblatt im Prinzip an der hochachse gespiegelt.
- wc_language_id: Wählt die gewünschte Sprache im Wordclock-Betrieb aus. Somit könnt Ihr die Uhrzeit auf der Wordclock in verschiedenen Sprachen darstellen lassen.
- minimal_brightness: Der Wert der mit minimal_brightness angegeben wird, ist der Wert der als Helligkeitswert gesetzt wird, wenn die normale display Helligkeit auf null gesetzt wird. Der Unterschied ist dabei aber auch, dass die Angabe der minimal_brightness einen größeren Einstellungsbereich hat. Hier könnt Ihr die Helligkeit nämlich nicht nur im Bereich 0-15 sondern im Bereich 0-255 einstellen. Der große Vorteil davon ist, dass sich wesentlich dunklere Helligkeiten einstellen lassen. Weitere Infos dazu findet Ihr auch im Artikel pxlBlck – Bei Dunkelheit das Display in den Nachtmodus schalten (den ich natürlich erst noch erstelle muss) 🙂
TODO: Beispiele
Befehle: Farben
Die Zuordnung der Farben ändert sich je nach ausgewählten dial. Es gibt aber maximal vier mögliche Farben die sich wie folgt konfigurieren lassen.
Befehlsübersicht:
pbclr,[color1_red 0-255],[color1_green 0-255],[color1_blue 0-255],[color2_red 0-255],[color2_green 0-255],[color2_blue 0-255],[color3_red 0-255],[color3_green 0-255],[color3_blue 0-255],[color4_red 0-255],[color4_green 0-255],[color4_blue 0-255],
Parameter-Beschreibung:
- color1_red: Roter Farbanteil der ersten Farbe
- color1_green: Grüner Farbanteil der ersten Farbe
- color1_blue:Blauer Farbanteil der ersten Farbe
- color2_red: Roter Farbanteil der zweiten Farbe
- color2_green: Grüner Farbanteil der zweiten Farbe
- color2_blue: Blauer Farbanteil der zweiten Farbe
- color3_red: Roter Farbanteil der dritten Farbe
- color3_green: Grüner Farbanteil der dritten Farbe
- color3_blue: Roter Farbanteil der dritten Farbe
- color4_red: Roter Farbanteil der vierten Farbe
- color4_green: Grüner Farbanteil der vierten Farbe
- color4_blue: Blauer Farbanteil der vierten Farbe
TODO: Beispiele
Befehl: Wahrheitswerte:
Mit dieser Option lassen sich Wahrheitswerte absolut setzen oder auch togglen. Dieser Befehl funktioniert ach etwas anders. Dabei ist der Aufbau folgendermaßen.
Befehlsübersicht:
pbbo,[value_id 1-6], [value 0-2]
“Value_id” gibt hier den Wert ein den Ihr konfigurieren wollt. Eine Übersicht findet Ihr unten
“Value” kann dabei die Werte null bis drei haben. Null setzt den ausgewählten Wahrheitswert auf “false”, eins setzt ihn auf “true” und zwei toggled den betreffenden Wert. Togglen heißt hier, dass er den Wert ins Gegenteil ändert. (Also aus null wird eins und andersherum).
Parameter-Beschreibung:
- displayEnabled=1
- wordclockShowOClockEnabled=2
- wordclockShowItIsEnabled=3
- ringclockThick12markEnabled=4
- ringclockClockDirInversed=5
- diallLeadingZerosEnabled=6
TODO: Beispiele
Befehl: Helligkeit
Mit dem hier beschrieben Befehl lassen sich die verschiedenen Helligkeiten konfigurieren.
Befehlsübersicht:
pbbr,[brightnessId 0-2], [brightness 1-15], [absolute 1-15], [bottomBorder 1-15], [topBorder 1-15],
TODO: Erklären und Beispiele
Befehl: Farbe via Farbrad einstellen
Mit diesem Befehl lassen sich die Farben anhand des Winkels eines Farbrades einstellen. So lassen sich zum Beispiel Farbwechsel per Tastendruck realisieren bei dem alle Farben angesteuert werden können.
Befehlsübersicht:
pbclrwhl,[colorId 0-4], [degree 1-15], [absolute 1-15], [bottomBorder 1-15], [topBorder 1-15],
TODO: Erklären und Beispiele
Befehl: Lauftext
Befehlsübersicht:
pbrntxt,[txt_color_red 0-255],[txt_color_green 0-255],[txt_color_blue 0-255],[bg_color_red 0-255],[bg_color_green 0-255],[bg_color_blue 0-255],[delay_time 0-1000],[start_pos 0-MATRIX_WIDTH],
Parameter-Beschreibung:
- txt_color_red: Roter Farbanteil der Textfarbe
- txt_color_green: Grüner Farbanteil der Textfarbe
- txt_color_blue: Blauer Farbanteil der Textfarbe
- bg_color_red: Roter Farbanteil der Hintergrundfarbe
- bg_color_green: Grüner Farbanteil der Hintergrundfarbe
- bg_color_blue: Blauer Farbanteil der Hintergrundfarbe
- delay_time: Die Zeitdauer die der Text zum durchlaufen des Displays benötigt. Dadurch lässt sich festlegen wie schnell der Lafutext durch das Display läuft.
- start_pos: Die horizontale Startposition auf dem Display in Pixeln. Dabei ist das Pixel unten Links das 1. Pixel.
TODO: Erklären und Beispiele
Befehl: Icon-Anzeige
Mithilfe der Icon-Anzeige könnt Ihr auf dem Display Eures pxlBlcks selbstdesignte Icons anzeigen lassen.
Dabei stehen euch verschiedene einblend- und ausblend-Optionen zur Verfügung. Detailiertere Informationen dazu wie Ihr Icons selber designt, auf Euren pxlBlck übertragt und dort anzeigen könnt sind im folgenden Artikel enthalten pxlBlck – Eigene Icons designen, auf den pxlBlck übertragen und anzeigen (Artikel muss noch erstellt werden)
Befehlsübersicht:
pbicon,[txt_color_red 0-255],
Parameter-Beschreibung:
Befehl: FakeTV-Simulation
TODO: Erklären und Beispiele
Befehlsübersicht:
pbfaketv,[enabled 0-1],
Parameter-Beschreibung:
- enabled: Mithilfe dieses parameters lässt sich die fakeTV-Funktion aktivieren bzw. deaktivieren.
Befehl: Matrix-/Farben-Test
Befehlsübersicht:
pbtest
Parameter-Beschreibung:
-keine Parameter verfügbar-
Befehl: Animationen
Animation könnt Ihr zur Signalisierung eines Ereignisses nutzen. Sie eignen sich zum Beispiel perfekt um auch auch auf der Slot-/Ring-clock oder auf anderen Modellen die keine Icon-Anzeige unterstützen, ein Ereigniss anzuzeigen.
Befehlsübersicht:
pbani,[animations-typ 0-5],
Parameter-Beschreibung:
klökjlö
TODO: Erklären und Beispiele
Befehl: Demomode
TODO: Erklären und Beispiele
pbdemo
Befehl:Ziffernblätter konfigurieren
TODO: Erklären und Beispiele
pbdia
TODO: Überall fehlen noch infos
Ziffernblatt-übersicht:
Verfügbare Ziffernblätter:
Die einstellbaren Ziffernblätter unterscheiden sich leider von der Art der verwendeten Matrix. Dies ist leider so, da unterschiedliche Matrix-Größen unterschiedliche Darstellungen ermöglichen bzw. nicht ermöglichen.
Um Euch trotzdem einen kleinen Überblick zu geben welche Ziffernblatt-typen bei welcher Matrix möglich sind, kommt hier eine Vorstellung der einstellbaren Ziffernblätter und die Angabe unter welchen Matrix-typen diese verfügbar sind.
Blank:
Es wird kein Ziffernblatt angezeigt.
TODO: Infos fehlen
Running-clock:
Die Uhrzeit wird in einstellbaren Abständen als Lauftext angezeigt.
Optionen:
- Stunden-, Minuten- und Hintergrund-Farbe einstellbar
- Durchlaufgeschwindigkeit des Textes einstellbar
Verfügbar für:
- pxlBlck8x8
- pxlBlck10x10
- pxlBlckCarousel (16×8)
- pxlBlck16x16
- pxlBlck32x8
- pxlBlckCassette (nutzt eine 12×8 Matrix)
TODO: Infos fehlen
“HrNum&MntPoints”: Stunden-Nummer und Minuten punkte
Stunde wird als Zahl dargestellt. Minute als proportionale Anzahl an aktivierten Hintergrundpixeln. Farben für Stunde, Minute und Hintergrund einstellbar.
Optionen:
- Stunden-, Minuten- und Hintergrund-Farbe einstellbar
- Durchlaufgeschwindigkeit des Textes einstellbar
Verfügbar für:
- pxlBlck8x8
- pxlBlck10x10
RandPxls: Zufällige Pixel anzeigen
WndrngPxl
TvSmltr
fiboClck
horizNmbrs: Horizontale Nummern als Uhrzeit:
Stunden- und Minuten-Zahl stehen wie gewohnt nebeneinander.
Optionen:
- Stunden-, Minuten-, und Hintergrund-Farbe einstellbar.
Verfügbar für:
- pxlBlck10x10
- pxlBlckCarousel (16×8)
- pxlBlck16x16
- pxlBlck32x8
- pxlBlckCassette (nutzt eine 12×8 Matrix)
horizMiniNmbrs:
vertMiniNmbrs: Vertikal-clock:
Stunden- und Minuten-Zahl stehen übereinander.
Optionen:
- Stunden-, Minuten-, Stunden-Hintergrund- und Minuten-Hintergrund-Farbe einstellbar.
Verfügbar für:
- pxlBlck10x10
- pxlBlckCarousel (16×8)
- pxlBlck16x16
- pxlBlck32x8
- pxlBlckCassette (nutzt eine 12×8 Matrix)
wordClock: Wortuhr
Uhrzeit wird nach dem Wordclock-Prinzip mit beleuchteten oder nicht beleuchteten Buchstaben dargestellt.
Optionen:
- Stunden-, Minuten- und Hintergrund-Farbe einstellbar
- “Es ist” und “Uhr” aktivierbar/deaktivierbar
Verfügbar für:
- pxlBlckWordclock (nutzt eine modifizierte 11×11 Matrix)
Ring: Ring-Uhr
Die Uhrzeit wird wie bei einer Zeiger-Uhr dargestellt. Dabei sind die Zeiger in unterschiedlichen Farben beleuchtete Pixel eines LED-Streifens.
Farben für Stunde, Minute, Sekunde und Stunden-Markierungen einstellbar.
Optionen:
- Stunden-, Minuten- und Hintergrund-Farbe einstellbar
- Drehrichtung der Uhr umkehrbar
- Offset einstellbar um den Nullpunkt auf dem LED-Streifen verschieben zu können
Verfügbar für:
- pxlBlckRingClock
- pxlBlckSlotClock
- pxlBlckLinearClock?
immer wieder überraschend, welche Möglichkeiten in der Uhr stecken! Eine Frage habe ich noch: lassen sich diese Befehle auch über MQTT einspielen, wie?
Hey Werner,
ja das müsste gehen. Ich habe das hier beschrieben: https://nerdiy.de/howto-espeasy-befehle-ausfuehren/#Befehle_ueber_MQTT_ausfuehren
Ich gebe zu der Absatz könnte etwas mehr Erklärung/Beispiele vertragen. Lass mich gerne wissen, ob das bei dir geklappt hat. 🙂
Beste Grüße
Fabian
Aber in dem binary gibt es unter Device kein ‘Generic – MQTT Import’-Modul. Ich habe als Beispiel das topic ‘Home/wordclock/Display/cmd’ und als payload ‘pbclr,color1_red 155’ gepublisht, nichts passiert aber. Mit anderen ESPEasy-Baugruppen klappt das wunderbar.
Hey Werner,
für das ausführen der Befehle brauchst du (soweit ich weiß) gar kein Generic – MQTT Import Modul. Lediglich der controller muss konfiguriert sein. So wie auf dem Bild hinter dem Link den ich in den vorherigen Kommentar kopiert habe. 🙂
Aber davon abgesehen wundert mich, dass das MQTT Import modul auch nicht verfügbar ist. Ich checke das Mal und lade noch Mal ein neues binary hoch. 🙂