Zeigt Texte/Werte auf einer MAX7219-Matrix (FC16) mit konfigurierbarer Modulanzahl an. Konfiguration per WebUI (LittleFS) und MQTT. Unterstützt globale und per-Message Ein-/Ausblendeffekte sowie individuelle Anzeigedauer (dwell) je Nachricht.
-
MD_Parola Effekte (global oder pro Nachricht einzeln)
-
Individuelle dwell-Zeiten pro Nachricht (ms)
-
MQTT:
set/*(Kommandos)state/*(retained States)meta/*(Bootstrapping-Infos)
-
Home Assistant MQTT Discovery: Das Display wird automatisch als MQTT-Gerät angelegt
-
Bootstrapping: Setzt beim ersten Connect alle Defaultwerte
-
WebUI (LittleFS) für Konfiguration
-
Konfigurierbare Anzahl verketteter MAX7219-Module (1..32) via WebUI
-
Mehrere Nachrichten in einer Schleife rotierend anzeigen
Wenn Home Assistant mit demselben MQTT-Broker verbunden ist, veröffentlicht das Nerd-Display beim Verbinden automatisch retained MQTT-Discovery-Konfigurationen unter homeassistant/.../config.
In Home Assistant werden dabei folgende Entitäten angelegt:
- Text (
text) – angezeigten Text setzen - Anzeige leeren (
button) – aktuelle Animation und Nachrichtenliste löschen - Helligkeit (
number) – 0 bis 15 - Geschwindigkeit (
number) – 1 bis 65535 - Anzeigedauer (
number) – 0 bis 600000 ms - Einblendeffekt (
select) - Ausblendeffekt (
select) - Diagnose-Sensoren für IP-Adresse, mDNS und Status
Alle Instanzen erhalten anhand der Geräte-ID eigene unique_id-Werte und erscheinen gemeinsam unter einem MQTT-Gerät. Die bestehenden Nerd-Display MQTT-Topics bleiben unverändert; Home Assistant Discovery kommt nur zusätzlich dazu.
NerdDisplay.ino
app.h / app.cpp
config_store.h / config_store.cpp
display_service.h / display_service.cpp
mqtt_service.h / mqtt_service.cpp
mqtt_topics.h
home_assistant_discovery.h / home_assistant_discovery.cpp
web_handlers.h / web_handlers.cpp
webui.h
- ESP8266 Core
- MD_Parola
- MD_MAX72XX
- PubSubClient
- ArduinoJson
- WiFiManager
- LittleFS (integriert im ESP8266 Core)
-
Topic:
<baseTopic>/set/text -
Payload:
"Hallo"oder
{"text":"Hallo"}
["Hallo", "Zebra"]oder
{"messages":["Hallo", "Zebra"]}[
{"text":"Hallo","in":"SCROLL_LEFT","out":"OPENING","dwell":1000},
{"text":"Zebra","in":"PRINT","out":"CLOSING","dwell":3000},
"Eintrag ohne Objekt nutzt globale Defaults"
]in= MD_Parola Effektname für Einblenden (optional, leer = globaler Effekt)out= MD_Parola Effektname für Ausblenden (optional, leer = globaler Effekt)dwell= Anzeigedauer in Millisekunden (optional,-1oder leer = globaler dwell)
{"messages":[
{"text":"A","dwell":500},
{"text":"B","in":"SCROLL_RIGHT","dwell":2000}
]}<baseTopic>/set/brightness→ 0..15<baseTopic>/set/speed→ Parola Geschwindigkeit (1..65535)<baseTopic>/set/dwell→ globaler dwell in ms<baseTopic>/set/effect_in→ globaler Einblendeffekt<baseTopic>/set/effect_out→ globaler Ausblendeffekt<baseTopic>/set/effect→ beide Effekte gleichzeitig setzen (Legacy)
Folgende Werte sind für in und out gültig (Großschreibung beachten):
- SLICE
- WIPE
- WIPE_CURSOR
- OPENING
- OPENING_CURSOR
- CLOSING
- CLOSING_CURSOR
- BLINDS
- DISSOLVE
- SCROLL_UP
- SCROLL_DOWN
- SCROLL_LEFT
- SCROLL_RIGHT
- SCROLL_UP_LEFT
- SCROLL_UP_RIGHT
- SCROLL_DOWN_LEFT
- SCROLL_DOWN_RIGHT
- SCAN_HORIZ
- SCAN_VERT
- GROW_UP
- GROW_DOWN
(Die genaue Wirkung dieser Effekte ist in der MD_Parola Dokumentation beschrieben.)
MIT (siehe LICENSE)
In der WebUI unter OTA-Update ein Passwort setzen und speichern. Nach dem Neustart erscheint das ESP8266 im Arduino-IDE-Netzwerkport als nerd-display-<mdnsName>.local (Port 8266). Den ersten Sketch mit OTA-Unterstützung einmal per USB flashen; danach lassen sich neue Sketches per WLAN mit dem gesetzten Passwort hochladen. OTA funktioniert auch ohne konfigurierten MQTT-Broker. Beim Flashen eine Flash-Layout-Option mit ausreichend freiem Platz für ein zweites Firmware-Image wählen.
An <baseTopic>/set/clear eine Nachricht mit beliebiger Payload senden, ohne Retain. Die aktuelle Animation wird beendet und alle gespeicherten Nachrichten werden entfernt; state/text wird als leerer String veröffentlicht. Ein neuer Text an <baseTopic>/set/text startet die Anzeige wieder. In Home Assistant erscheint nach dem Firmware-Update und der nächsten MQTT-Verbindung die Schaltfläche Anzeige leeren beim Nerd-Display. Retained set/text-Nachrichten vom Broker können beim erneuten Verbinden die Anzeige wieder befüllen; für dauerhaft leere Anzeige auch diese retained Nachricht entfernen.