✨ Funktionsumfang

Funktionen

Ein ioBroker-Adapter und ein MagicMirror²-Modul machen den Spiegel aus ioBroker heraus beobachtbar, steuerbar und konfigurierbar.

🪞 Ü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.
Übersicht: Kennzahlen, Live-Vorschau mit der 3D-Ansicht der Ferienwohnung, Fernsteuerung und Regionenplan
Übersicht: Kennzahlen, Live-Vorschau mit der 3D-Ansicht der Ferienwohnung, Fernsteuerung und Regionenplan
Live-Vorschau des Spiegels
Live-Vorschau des Spiegels
Fernsteuerung und Regionenplan
Fernsteuerung und Regionenplan

🧩 Module

Alle Module, die der Spiegel kennt: laufende, installierte und mitgelieferte.

  • Fremdmodule aktualisieren (git pull, bei Bedarf npm install) oder entfernen.
  • Ein installiertes Modul mit einem Klick in die Konfiguration eintragen.
  • Anzeige, ob für ein Modul eine neuere Version vorliegt.
Module: laufend, installiert und mitgeliefert
Module: laufend, installiert und mitgeliefert

🛍️ 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 clone in den Modulordner gelegt, Abhängigkeiten werden installiert.
Katalog mit Kategorien, Sternen und Installationsknopf
Katalog mit Kategorien, Sternen und Installationsknopf

⚙️ Konfiguration

Die Datei config.js wird als Text bearbeitet – Kommentare und Ausdrücke bleiben erhalten.

UnterseiteInhalt
AllgemeinSprache, Gebietsschema, Zeitformat, Einheiten, Adresse und Port
ModuleEinträge ein- und ausschalten, Region und Kopfzeile ändern, Reihenfolge verschieben, bearbeiten, löschen
Quelltextder vollständige Text von config.js
Sicherungenfrühere Fassungen ansehen und zurückspielen

Gespeichert wird nur, wenn sich der neue Text ausführen lässt – und nie ohne vorherige Sicherung.

Konfiguration · Allgemein
Konfiguration · Allgemein
Konfiguration · Moduleinträge
Konfiguration · Moduleinträge
Konfiguration · Sicherungen
Konfiguration · Sicherungen

📜 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.
Protokoll mit Filtern nach Stufe und Quelle
Protokoll mit Filtern nach Stufe und Quelle

📊 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.
Statistik und Systemangaben
Statistik und Systemangaben

🔌 Datenpunkte

84 feste Datenpunkte, dazu je laufendem Modul ein Schalter. Die vollständige Liste steht unter Datenpunkte.

KanalInhalt
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>.visibleje 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
TeilAufgabe
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 …); ohne MM_IOBROKER_TOKEN bleibt 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.
  • git und npm werden ohne Shell gestartet; Modulnamen und Adressen werden geprüft (nur https://).
  • config.js wird 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.