Repository navigation
Releases: KaelanTesseract/HyperLED
Release list
Strombegrenzung für Slaves und ESP32-C6-Slave
Neu seit 0.3.005
- Eigene Strombegrenzung für Slaves mit eigenem Netzteil. Unter Geräte → Segmente hat jedes Slave-Segment ohne „Zieht Strom von diesem Gerät“ ein Feld Strombegrenzung des Slaves (mA). Der Master schätzt den Strom wie für sich selbst und senkt die Helligkeit, bevor die Grenze erreicht wird. Das gilt für Funk und Kabel, die Slave-Firmware bleibt dafür unverändert.
0heißt keine Grenze. - Der Master kennt den Chip eines Slaves (ab Slave-Firmware 0.3.006), gibt ihn in
/api/slavesalschipweiter und bietet für einen ESP32-C6-Slave seine Pins an. - Das Aufräumen der Slave-Liste vergleicht Zeiten jetzt mit der vorzeichenbehafteten Differenz.
- Die Segmentliste scrollt nicht mehr in sich selbst.
Der ESP32-C6 als Slave ist neu und noch in der Erprobung: Slave-Firmware 0.3.006. Der Master selbst bleibt beim ESP32-S3. Unter Einstellungen → System → Geräte jetzt aktualisieren installiert der Master die passende Slave-Firmware auf jedem Slave.
Slave-Adresse mit {chip}
Neu seit 0.3.004
- Slaves bekommen die Adresse mit
{chip}: Der Master schickt die Slave-Firmware als…/firmware-{chip}.bin. Ein Slave ab 0.3.005 setzt seinen eigenen Chip ein; für einen älteren schreibt der Masteresp32s3ein (alle bisherigen Slaves sind S3). Auch der alte Kabelweg bekommt die fertige Adresse. - Chip-Name, Kennung und die Prüfung eines Firmware-Images stehen jetzt in
include/ChipId.h, identisch zum Slave-Repository. - Die Slave-Firmware 0.3.005 (Release) weist ein Image für einen anderen Chip ab. Unter Einstellungen → System → Geräte jetzt aktualisieren installiert der Master sie auf allen Slaves.
Die Weboberfläche (littlefs-esp32s3.bin) ist gegenüber 0.3.004 unverändert.
Firmware für einen anderen Chip wird abgewiesen
Neu seit 0.3.003
- Ein Image für einen anderen Chip wird abgewiesen. Die ersten 16 Bytes einer Firmware-Datei nennen den Chip, für den sie gebaut ist. Das Online-Update liest sie mit einer Range-Anfrage, bevor es das Dateisystem ersetzt, und prüft sie beim Download noch einmal; der manuelle Upload (Lokales Update) weist eine falsche Datei sofort ab (
400 wrong_chip), ohne etwas zu schreiben. Die Weboberfläche zeigt dafür eine Meldung (Deutsch, Englisch, Russisch). - Der Plan für weitere Chips (ESP32-C6) steht in
updatefeature.md.
Die Slave-Firmware bleibt bei 0.3.002.
Dateisystem-Datei nach Chip benannt
Neu seit 0.3.002
- Auch das Dateisystem heißt jetzt nach dem Chip:
littlefs-esp32s3.bin(zusammen mitfirmware-esp32s3.bin). Das Online-Update prüft vor dem ersten Schreiben, dass das Release beide Dateien für den Chip enthält; sonst ändert es nichts. - Der Ablauf für Releases steht in
updatefeature.md.
Wichtig beim Update
Controller mit 0.3.002 oder älter suchen noch littlefs.bin und können sich aus diesem Release nicht selbst aktualisieren. Sie müssen einmal von Hand auf diese Version gebracht werden (USB, oder Einstellungen → System → Lokales Update mit firmware-esp32s3.bin und danach littlefs-esp32s3.bin; vorher eine Sicherung herunterladen, denn das Dateisystem wird dabei ersetzt). Die Slave-Firmware bleibt bei 0.3.002.
Firmware-Dateien nach Chip benannt
Neu seit 0.3.001
- Die Firmware-Datei eines Releases heißt jetzt nach ihrem Chip:
firmware-esp32s3.bin. Das Online-Update nimmt die Datei, die zum eigenen Chip passt. Das Dateisystem bleibtlittlefs.bin. Fehlt in einem Release die Firmware für den Chip, bricht das Update ab, bevor etwas überschrieben wird (vorher wurde das Dateisystem zuerst ersetzt). - Der Master lädt die Slave-Firmware unter dem neuen Namen aus dem Slave-Repository.
- Vorbereitung für weitere Chips (ESP32-C6): siehe
updatefeature.md.
Wichtig beim Update
Der alte Dateiname firmware.bin ist weggefallen. Controller mit 0.3.001 oder älter können sich nicht mehr selbst aktualisieren und müssen einmal von Hand auf diese Version gebracht werden (USB, oder Einstellungen → System → Lokales Update mit firmware-esp32s3.bin und danach littlefs.bin). Ab 0.3.002 funktioniert das Online-Update wieder wie gewohnt.
Plugins, Skripte, Protokoll der letzten Minute und neues Wiki
Neu seit 0.2.004
- Plugins. Eine kleine JSON-Datei gibt HyperLED eine neue Fähigkeit, ohne Firmware-Update: Sie liest etwas aus dem Netzwerk und zeigt es auf einem Segment als Licht. Unter Einstellungen → Plugins wird sie hinzugefügt (mit Vorschau vor dem Speichern), eingerichtet, ein- und ausgeschaltet und mit Live-Werten geprüft. Ein Plugin kann ein Lua-Skript mitbringen, das das Segment Pixel für Pixel zeichnet, auf dem Master oder auf einem Slave. Auf der Lichtseite sagt ein Hinweis, welches Plugin ein Segment steuert, mit Knöpfen für dessen Einstellungen und zum Pausieren. Beispiel: Klipper-Statusanzeige für 3D-Drucker. Dokumentation:
docs/de/09bis11. - Plugin-Werte in Texten. Text- und Lauftext-Elemente auf einem Panel zeigen mit einem Platzhalter wie
{plugin-id.wert}Live-Werte von Plugins. - Protokoll der letzten Minute. Der Controller hält alles, was er ausgibt, im Speicher und schreibt es nach einem Absturz, Watchdog oder Funk-Neustart in eine Datei.
GET /api/logzeigt die laufende Minute,GET /api/lastlogdie Minute vor dem letzten unplanmäßigen Neustart. - Weniger Funkverkehr im Leerlauf, wenn nichts passiert.
- Gleichlauf aus kam nicht beim Controller an: Das Abwählen der Option wurde nie gesendet, sodass der Gleichlauf sich kurz darauf von selbst wieder einschaltete. Behoben.
- Skripte wissen, wie ihr Segment auf der Leinwand liegt (
settings._layout,_leds,_first); ein Plugin darf bis zu 24 Einstellungen haben. log()in Skripten zeigt seine Meldung jetzt bei den Live-Werten.- Slaves 0.3.001: Einstellungen und Werte eines Skripts gehen in so vielen Paketen an den Slave, wie sie brauchen. Vorher passten höchstens 240 Bytes für beides in ein Paket, und ein Plugin mit vielen Einstellungen lief auf einem Slave ohne Werte.
- Neues Wiki für Einsteiger (Deutsch und Englisch, mit Bildern): https://github.com/KaelanTesseract/HyperLED/wiki
Wichtig beim Update
Die Update-Plätze sind größer geworden (zwei Plätze zu je 1,625 MB, Dateisystem 704 KB). Ein Controller, der mit der älteren Aufteilung (1,44-MB-Plätze) geflasht wurde, kann diese Firmware nicht über die Luft annehmen: Das Update wird abgelehnt. Spiel in dem Fall einmal per USB neu auf (siehe README); danach funktionieren Online-Updates wieder.
Die Slave-Firmware 0.3.001 liegt im Repository HyperLED-Slave. Unter Einstellungen → System installiert Geräte jetzt aktualisieren sie auf allen Slaves.
Elemente wieder durchgehend verschiebbar
Neu seit 0.2.003
- Elemente lassen sich wieder durchgehend verschieben. In der Panel-Vorschau blieb ein Element nach ein bis zwei Sekunden am Zeiger hängen: Die regelmäßige Auffrischung tauschte die Liste der Elemente aus, und das Ziehen wirkte danach auf einen Eintrag, der nicht mehr angezeigt wurde. Während des Ziehens pausiert die Auffrischung jetzt, und das Element wird bei jeder Bewegung neu zugeordnet.
- Statusanzeige beim Wetter-Standort: Sie kannte nur die fünf alten Wetterlagen. Sturm, klare Nacht und die beiden „leicht bewölkt“ erschienen dort als „Bewölkt“. Jetzt sind alle neun benannt.
Neue Wetter-Symbole und Update-Prüfung im Controller
Neu seit 0.2.002
Wetter-Element
- Neue Symbole: farbig statt einfarbig, mit Umriss und hellerer Kante – graue Wolken, Sonne mit Schattenseite, blauer Regen, weißer Schnee, gelber Blitz, Mond mit Sternen.
- Vier neue Wetterlagen: Sturm, klare Nacht sowie leicht bewölkt am Tag und in der Nacht. Dafür fragt der Controller beim Wetterdienst zusätzlich ab, ob es Tag ist und wie stark der Wind weht (ab Windstärke 8 zeigt er Sturm).
- Zwei Größen (11×11 und 16×16) und zwei Farbmodi (eigene Farben oder Farbe des Elements), im Element umschaltbar.
- Die Temperatur steht jetzt senkrecht mittig zum Symbol, und der Rahmen in der Panel-Vorschau passt wieder genau.
Updates
- Der Controller prüft selbst auf neue Releases – eine Minute nach dem Start, dann zweimal am Tag – für sich und für die Geräte. Die Weboberfläche zeigt den Hinweis daraus und fragt alle 10 Minuten nach, ein Neuladen ist also nicht mehr nötig. Der Browser braucht dafür kein Internet mehr.
- Unter Einstellungen → System steht, wann zuletzt geprüft wurde.
Hinweis: Für die neuen Wetter-Symbole auf einem Geräte-Panel braucht das Gerät die Firmware 0.2.012 oder neuer.
Home Assistant über MQTT – vollständig
Neu seit 0.2.001: Home Assistant über MQTT, vollständig
In Home Assistant
- Texte aufs Panel: Jedes Text- und Lauftext-Element ist ein Textfeld, das Automationen setzen können (z. B. „Waschmaschine fertig“).
- Szenen, Playlist, Gleichlauf: Szenen als Auswahl, Playlist und Gleichlauf als Schalter.
- Pro Segment: Geschwindigkeit, Intensität, Palette; bei Panels der Hintergrund-Effekt.
- Diagnose: WLAN-Signal, freier Speicher, IP-Adresse, Startzeit sowie Zahl und Zeitpunkt der WLAN-Ausfälle. Dazu je Slave, ob er verbunden ist, mit seiner Firmware-Version. Home Assistant kann damit bei Ausfällen benachrichtigen.
- Taster als Ereignisse („kurz“, „lang“, „umgelegt“) für Automationen.
- Firmware-Update aus Home Assistant: Das Gerät zeigt neue Releases und installiert sie auf Knopfdruck. Szenen, Zeitpläne und Bilder bleiben dabei erhalten.
- Neustart-Knopf und die Status-LED als eigenes Licht.
- Gelöschte Elemente, Szenen oder Slaves verschwinden auch aus Home Assistant. Wird MQTT ausgeschaltet, meldet sich der Controller dort ab.
In der Weboberfläche
- Verbindungsstatus mit Fehlergrund, etwa „Broker nicht erreichbar“ oder „Anmeldung abgelehnt“.
- Verbindung testen, ohne zu speichern.
- In Home Assistant neu anmelden.
- Verschlüsselte Verbindung (MQTTS/TLS, Port 8883). Die Verbindung wird verschlüsselt, das Zertifikat des Brokers aber nicht geprüft.
Stabilität
- Der Verbindungsaufbau zum Broker, auch der TLS-Handshake, läuft außerhalb der Hauptschleife. Ein ausgeschalteter Broker lässt die LEDs nicht mehr stocken.
- Die Anmeldung bei Home Assistant geht in kleinen Schritten raus, statt die LEDs kurz anzuhalten.
- Ein MQTT-Durchlauf, der länger als 200 ms dauert, wird im Log gemeldet.
Doku: Kurzanleitung zur Einrichtung in Home Assistant (Einstellungen → WLAN & MQTT bzw. Doku „Das Web-Interface & MQTT“).
Passt zu Slave-Firmware 0.2.008. Von 0.2.001 aus bleiben beim Online-Update Szenen, Zeitpläne und Bilder erhalten.
Online-Update behält Szenen, Zeitpläne und Bilder
Neu seit 0.1.112
- Online-Update behält deine Daten: Szenen, Playlist, Zeitpläne und die Bilder der Panel-Elemente bleiben beim Online-Update erhalten. Der Controller hält sie während des Updates im Speicher und schreibt sie danach zurück. Kann er eine Datei nicht lesen, bricht er das Update ab, bevor etwas überschrieben wird.
- Die Versionsangabe für das Online-Update wird geprüft, bevor sie in die Download-Adresse geht.
Hinweise
- Das Update von 0.1.112 auf diese Version läuft noch mit dem alten Verfahren: Die alte Firmware führt es aus, und die löscht Szenen, Playlist, Zeitpläne und Bilder. Deshalb vorher eine Sicherung herunterladen (Einstellungen → System) und sie danach ohne WLAN-Übernahme wiederherstellen. Ab 0.2.001 ist das nicht mehr nötig.
- Passt zu Slave-Firmware 0.2.008 (verschlüsselte Übergabe der WLAN-Zugangsdaten beim Slave-Update).