🚀 Schritt für Schritt

Installation

Erst das Modul auf dem Spiegel, dann der Adapter in ioBroker – mit Prüfschritten, Aktualisierung und Fehlerbehebung.

Überblick

TeilWoDauer
🅰️MagicMirror²-Modul MMM-ioBrokerBridgeauf dem Spiegelca. 5 Minuten
🅱️ioBroker-Adapter magicmirrorauf dem ioBroker-Hostca. 5 Minuten

ℹ️ <owner> in den Befehlen steht für das Konto, unter dem das Repository liegt. Wer die Quellen als Archiv erhalten hat, überspringt git clone und arbeitet im entpackten Ordner.

Zwei Dinge müssen installiert werden: das Modul auf dem Spiegel und der Adapter in ioBroker. In dieser Reihenfolge — der Adapter braucht das Modul als Gegenstelle.

Teil A · MagicMirror²-Modul MMM-ioBrokerBridge

Voraussetzungen: MagicMirror² 2.30 oder neuer, Node.js 20 oder neuer, git auf dem Spiegel (wird verwendet, um Module aus dem Katalog zu installieren).

Schritt 1 · Das Modul in den Modulordner kopieren

cd ~/MagicMirror/modules            # Docker: der Host-Ordner, der als "modules" eingebunden ist
git clone https://github.com/<owner>/iobroker-magicmirror.git /tmp/iobroker-magicmirror
cp -r /tmp/iobroker-magicmirror/MMM-ioBrokerBridge .
rm -rf /tmp/iobroker-magicmirror

Das Modul hat keine Abhängigkeiten — ein npm install ist nicht nötig.

Schritt 2 · Ein Zugangswort (Token) erzeugen

openssl rand -hex 24

Die Ausgabe aufbewahren; sie wird einmal auf dem Spiegel und einmal in ioBroker gebraucht.

Schritt 3 · Das Token als Umgebungsvariable an MagicMirror geben

Das Token gehört nicht in config.js: MagicMirror liefert diese Datei im Klartext unter /config/config.js aus.

Docker (docker-compose.yml):

services:
  magicmirror:
    environment:
      - MM_IOBROKER_TOKEN=<dein Token>
    volumes:
      - ./config:/opt/magic_mirror/config
      - ./modules:/opt/magic_mirror/modules   # der gesamte Ordner, damit installierte Module erhalten bleiben

Den gesamten modules-Ordner einbinden, nicht einzelne Modulordner. Andernfalls leben aus ioBroker installierte Module nur innerhalb des Containers und sind verschwunden, wenn er neu erstellt wird.

pm2:

MM_IOBROKER_TOKEN=<dein Token> pm2 restart mm --update-env
pm2 save

systemd: Environment=MM_IOBROKER_TOKEN=<dein Token> zum Abschnitt [Service] der Unit hinzufügen, dann sudo systemctl daemon-reload.

Schritt 4 · Das Modul in config/config.js eintragen

modules: [
    // … deine anderen Module …
    {
        module: "MMM-ioBrokerBridge",
        config: { heartbeat: 10000 }
    }
]

Es wird keine position benötigt — das Modul zeichnet nichts.

Schritt 5 · MagicMirror neu starten

docker compose up -d          # Docker (erstellt den Container mit der neuen Umgebung neu)
pm2 restart mm                # pm2

Schritt 6 · Prüfen

curl http://<spiegel>:8080/MMM-ioBrokerBridge/health
# {"ok":true,"bridge":"1.0.0","mmVersion":"2.37.0","tokenConfigured":true}

curl -H "Authorization: Bearer <dein Token>" http://<spiegel>:8080/MMM-ioBrokerBridge/api/status
# ein JSON-Dokument mit Versionen, Modulen und Statistiken

"tokenConfigured":true und eine JSON-Antwort von /api/status bedeuten, dass die Spiegel-Seite bereit ist.

Teil B · ioBroker-Adapter magicmirror

Voraussetzungen: js-controller 5 oder neuer, Admin 6 oder neuer, Node.js 20 oder neuer. Der ioBroker-Host muss den Spiegel über HTTP erreichen können (Test: curl http://<spiegel>:8080/MMM-ioBrokerBridge/health vom ioBroker-Host aus).

Schritt 1 · Das Paket bauen

git clone https://github.com/<owner>/iobroker-magicmirror.git
cd iobroker-magicmirror/iobroker.magicmirror
npm pack                            # erstellt iobroker.magicmirror-1.0.0.tgz

Schritt 2 · In ioBroker installieren

cd /opt/iobroker
npm install /pfad/zu/iobroker.magicmirror-1.0.0.tgz --omit=dev

ioBroker in Docker: die Datei zuerst in den Container kopieren.

docker cp iobroker.magicmirror-1.0.0.tgz iobroker:/tmp/
docker exec iobroker bash -lc 'cd /opt/iobroker && npm install /tmp/iobroker.magicmirror-1.0.0.tgz --omit=dev'

In diesem Fall den folgenden iobroker …-Befehlen docker exec iobroker voranstellen.

Schritt 3 · Die Admin-Dateien hochladen und die Instanz anlegen

iobroker upload magicmirror
iobroker add magicmirror 0

Schritt 4 · Die Instanz einrichten

Im Admin: Instanzen → magicmirror.0 → 🔧

FeldWert
Adresse des SpiegelsIP-Adresse oder Name, ohne http://
Port8080 (oder was der Spiegel verwendet)
Zugangswortdas Token aus Teil A, Schritt 2

Auf Verbindung prüfen klicken — die Antwort sollte Verbunden: MagicMirror v… lauten — dann Speichern.

Stattdessen auf der Kommandozeile:

iobroker set magicmirror.0 --host <spiegel> --port 8080
iobroker object set system.adapter.magicmirror.0 native.token=<dein Token>

⚠️ Das Token nicht mit iobroker set … --token setzen: dieser Befehl speichert es unverschlüsselt, und der Adapter liest dann verstümmelte Zeichen. iobroker object set verschlüsselt es.

Schritt 5 · Den Reiter öffnen

Die Admin-Seite neu laden. Das Seitenmenü hat jetzt einen Eintrag MagicMirror. Fehlt er, auf den Stift oben im Seitenmenü klicken und den Eintrag einschalten.

Schritt 6 · Prüfen

iobroker state getValue magicmirror.0.info.connection     # true
iobroker state getValue magicmirror.0.info.mmVersion      # z. B. 2.37.0

Aktualisieren

# Spiegel: den Ordner modules/MMM-ioBrokerBridge durch die neue Version ersetzen, dann MagicMirror neu starten
# ioBroker:
cd iobroker.magicmirror && npm pack
cd /opt/iobroker && npm install /pfad/zu/iobroker.magicmirror-<version>.tgz --omit=dev
iobroker upload magicmirror && iobroker restart magicmirror.0

Fehlerbehebung

SymptomUrsache und Abhilfe
Reiter meldet „Keine Verbindung zum Spiegel … nicht erreichbar“Der ioBroker-Host kann den Spiegel nicht erreichen. Adresse, Port, Firewall und ipWhitelist in config.js prüfen.
„Das Zugangswort stimmt nicht mit MM_IOBROKER_TOKEN … überein“ (HTTP 401)Die Token unterscheiden sich. Auf beiden Seiten denselben Wert setzen.
„MM_IOBROKER_TOKEN ist auf dem Spiegel nicht gesetzt“ (HTTP 503)Die Umgebungsvariable hat den MagicMirror-Prozess nicht erreicht. Bei Docker muss der Container neu erstellt werden (docker compose up -d), ein einfacher Neustart reicht nicht aus.
„Das gespeicherte Zugangswort ist unlesbar“Das Token wurde mit iobroker set … --token geschrieben. In den Einstellungen der Instanz oder mit iobroker object set erneut setzen.
„Das Modul MMM-ioBrokerBridge ist auf dem Spiegel nicht geladen“ (HTTP 404)Das Modul fehlt in config.js, oder MagicMirror wurde nicht neu gestartet.
Die Modullisten sind leer, „Keine Anzeige verbunden“Der Spiegel kennt seine laufenden Module nur, solange mindestens ein Browser ihn anzeigt. Den Spiegel öffnen — oder einfach die Live-Vorschau im Reiter.
Live-Vorschau bleibt schwarzDer Browser, mit dem der Admin bedient wird, muss den Spiegel selbst erreichen können. Läuft der Admin über HTTPS und der Spiegel über HTTP, blockiert der Browser den Rahmen: die Vorschau auf „Abbild“ umstellen.
Ein installiertes Modul erscheint nicht auf dem SpiegelDie Installation legt es nur in den Modulordner. In die Konfiguration eintragen (Module → Eintragen) und MagicMirror neu starten.

So sieht es danach aus

Nach der Installation: der Eintrag MagicMirror im Seitenmenü des Admin mit der Übersicht
Nach der Installation: der Eintrag MagicMirror im Seitenmenü des Admin mit der Übersicht
Die Konfiguration des Spiegels lässt sich danach direkt im Reiter bearbeiten
Die Konfiguration des Spiegels lässt sich danach direkt im Reiter bearbeiten