🪞 Übersicht
Die Startseite des Reiters zeigt, wie es dem Spiegel geht, und lässt ihn von hier aus bedienen.
- Kennzahlen: installierte Fremdmodule, sichtbare Module, verbundene Anzeigen, Arbeitsspeicher und CPU, Benachrichtigungen je Stunde, Fehler seit dem Start, verfügbare Aktualisierungen – jeweils mit kleinem Verlauf.
- Live-Vorschau: der Spiegel in einem Rahmen, wahlweise als Abbild. Die Vorschau lässt sich bedienbar schalten oder in einem neuen Fenster öffnen.
- Fernsteuerung: Helligkeit, Zoom, Standby, Seite vor und zurück, alle Module ein oder aus.
- Regionenplan: jedes Modul an seiner Position auf dem Spiegel; ein Klick blendet es ein oder aus. Module, die gerade auf einer anderen Seite liegen, sind blasser dargestellt.
- Meldungen: einen Text als Hinweis auf den Spiegel schicken, Anzeigen neu laden, MagicMirror neu starten.

🧩 Module
Alle Module, die der Spiegel kennt: laufende, installierte und mitgelieferte.
- Fremdmodule aktualisieren (
git pull, bei Bedarfnpm install) oder entfernen. - Ein installiertes Modul mit einem Klick in die Konfiguration eintragen.
- Anzeige, ob für ein Modul eine neuere Version vorliegt.

🛍️ Katalog
Der Katalog lädt die Liste von modules.magicmirror.builders – rund 1500 Module – und speichert sie im Adapter zwischen.
- Suche nach Name, Beschreibung und Stichwort, Filter nach Kategorie, Sortierung nach Beliebtheit oder Datum.
- README eines Moduls lesen, bevor es installiert wird.
- Installation mit einem Klick: das Modul wird per
git clonein den Modulordner gelegt, Abhängigkeiten werden installiert.

⚙️ Konfiguration
Die Datei config.js wird als Text bearbeitet – Kommentare und Ausdrücke bleiben erhalten.
| Unterseite | Inhalt |
|---|---|
| Allgemein | Sprache, Gebietsschema, Zeitformat, Einheiten, Adresse und Port |
| Module | Einträge ein- und ausschalten, Region und Kopfzeile ändern, Reihenfolge verschieben, bearbeiten, löschen |
| Quelltext | der vollständige Text von config.js |
| Sicherungen | frühere Fassungen ansehen und zurückspielen |
Gespeichert wird nur, wenn sich der neue Text ausführen lässt – und nie ohne vorherige Sicherung.



📜 Protokoll
Server- und Browserprotokoll des Spiegels kommen ohne Verzug an (long polling).
- Filter nach Stufe: Fehler, Warnung, Info, Log, Debug, Ereignisse.
- Filter nach Quelle, Volltextsuche, Anhalten und Export.
- Das Protokoll wird auf dem Spiegel in einem Ringpuffer gehalten; der Logger selbst bleibt unverändert.

📊 Statistik
- Verlauf von Arbeitsspeicher, Last, Benachrichtigungen und Erreichbarkeit.
- Verteilung der Module nach Region und Art.
- Systemangaben: Versionen von MagicMirror, Modul und Node.js, Rechnername, Betriebssystem, Laufzeit.

🔌 Datenpunkte
84 feste Datenpunkte, dazu je laufendem Modul ein Schalter. Die vollständige Liste steht unter Datenpunkte.
| Kanal | Inhalt |
|---|---|
info.* | Verbindung, Versionen, Laufzeit, Adresse, „Neustart nötig“ |
stats.* | Modulzahlen, Anzeigen, Speicher, Last, Fehler, Katalog |
display.* | brightness, zoom, standby, page – beschreibbar |
control.* | Knöpfe und Texte zum Steuern |
config.* | Sprache, Gebietsschema, Zeitformat, Einheiten |
lists.* | laufende und installierte Module, Anzeigen, Aktualisierungen als JSON |
modules.<name>.visible | je laufendem Modul ein Schalter |
log.* | letzte Zeile, letzter Fehler, letzte Warnung, letzte 30 Zeilen als JSON |
// Beispiel für den JavaScript-Adapter
setState('magicmirror.0.control.alert', 'Die Waschmaschine ist fertig');
setState('magicmirror.0.display.standby', true);
🏗️ Aufbau
┌──────────────── ioBroker ────────────────┐ ┌───────────── MagicMirror² ─────────────┐
│ │ │ │
│ Admin-Reiter ──sendTo──► Adapter │ HTTP │ node_helper.js (REST-Schnittstelle) │
│ (admin/tab.*) main.js │ ───────► │ ├─ LogBuffer Protokoll │
│ ├─ MirrorClient │ ├─ ModuleManager git / npm │
│ Skripte ──Datenpunkte──► ├─ Catalog ────────┐ │ └─ config-editor config.js │
│ └─ states │ │ │ Socket │
└──────────────────────────────────────────┘ │ │ MMM-ioBrokerBridge.js (im Browser) │
│ └────────────────────────────────────────┘
└──► modules.magicmirror.builders
| Teil | Aufgabe |
|---|---|
iobroker.magicmirror/ | der Adapter mit dem Reiter für den Admin |
MMM-ioBrokerBridge/ | das Modul für den Spiegel |
Beide Teile kommen ohne Laufzeit-Abhängigkeiten aus (der Adapter braucht nur @iobroker/adapter-core) und ohne Build-Schritt.
🌍 Sprachen
Die Oberfläche erscheint auf Deutsch, wenn ioBroker auf Deutsch eingestellt ist, sonst auf Englisch. Meldungen, die der Spiegel selbst erzeugt (Fehlertexte des Moduls, Ereignisse im Protokoll), sind derzeit nur deutsch.
🔐 Sicherheit
- Die Schnittstelle des Spiegels verlangt ein Zugangswort (
Authorization: Bearer …); ohneMM_IOBROKER_TOKENbleibt sie geschlossen. - Das Zugangswort ist so mächtig wie ein Shell-Zugang zum Spiegel: Module zu installieren heißt, fremden Code auszuführen (
npm install). Der Spiegel gehört in ein vertrauenswürdiges Netz. gitundnpmwerden ohne Shell gestartet; Modulnamen und Adressen werden geprüft (nurhttps://).config.jswird nur gespeichert, wenn sich der neue Text ausführen lässt – und nie ohne vorherige Sicherung.
✅ Getestet mit
MagicMirror² 2.37, ioBroker js-controller 7, Admin 8, Node.js 22/24. Lizenz: MIT.

