Drücke „Enter”, um zum Inhalt zu springen.

MagicMirror, die Perfekte ergänzung in jedem Smart Home

Marcel 5

Was ist ein MagicMirror?

Ein MagicMirror ist ein Spiegel der mehr kann, der Magisch ist. Ähnlich wie in Schneewittchen macht er einem Komplimente. Jedoch zeigt er zusätzlich noch viele Informationen an, z.B. Wetter, Kalender, Nachrichten und vieles mehr.

Doch wie funktioniert das ganze? Ganz einfach, man nimmt einen Spionspiegel / Einwegspiegel, die kennt ihr aus Polizeiserien oder Filmen. Auf der einen Seite sitzt der Verbrecher für ihn ist es ein Normaler Spiegel und auf der anderen Seite steht die Polizei, die kann alles im Raum mitverfolgen.

Wie Funktioniert das ganze? Der Spionspiegel ist im gegensatz zum normalen Spiegel Lichtdurchlässig, d.h. man kann durch ihn durchsehen. Wenn man ihn in der Hand hält sogar von beiden Seiten. Der Spionspiegel bekommt seinen Effekt dadurch das die eine Seite(der eine Raum) hell erleuchtet ist und die andere Seite dunkel. Dadurch kann man von der dunklen Seite durchschauen und von der hellen Seite nicht. Wenn ihr auf der hellen Seite an den Spiegel nah heran tretet und mit den Händen das restliche Licht verdeckt, dann könnt ihr auch hindurch sehen. Der gleiche Effekt tritt auch bei Fenstern auf, wenn es Dunkel ist könnt ihr nicht mehr heraus sehen jedoch kann man (sehr gut) herein sehen.

Was braucht man als Hardware?

  • RaspberryPi mit Speicherkarte, Gehäuse, Netzteil
  • Monitor mit HDMI Anschluss
  • HDMI Kabel
  • Spionspiegel
  • Bilderrahmen
  • Bewegungsmelder

Was braucht man als Software?

Installation

Die Installation des MagicMirrors ist sehr einfach, man muss nur einen Befehl ausführen:

bash -c “$(curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh)”

Hier wird das Installationsscript runtergeladen und ausgeführt. Dies dauert eine weile und zum Schluss werdet ihr gefragt, ob ihr es mit pm2 automatisch starten wollt…

…und ob ihr den Bildschirmschoner deaktivieren wollt. Beides bestätigen wir mit einem “y”.

Schon ist die Installation abgeschlossen und auf dem Angeschlossenen Monitor wird der Browser geöffnet und versucht die Oberfläche zu öffnen. Diese läuft auf Port 8080, da wir bereits Pimatic auf diesem Port laufen lassen, müssen wir die Konfiguration des MagicMirrors anpassen.

Konfiguration

Als erstes müsst ihr entscheiden, ob ihr den MM im Hochformat oder Querformat betreiben wollt. Bei Hochformat müssen wir “/boot/config.json” anpassen:

sudo nano /boot/config.txt

Dort tragen wir einfach als letzte Zeile

display_rotate=1

ein und starten den Pi neu.

Die Konfiguration des MagicMirror’s läuft über ein config File unter “~/MagicMirror/config/config.js”. Dieses bearbeiten wir wieder mit nano und ändern den Port, da dieser bereits von Pimatic belegt wird:

nano ~/MagicMirror/config/config.js

Die Konfiguration wird automatisch übernommen und ihr seht das erste mal den MagicMirror.

Jetzt geht das Konfigurieren erst so richtig los. Da ich die Konfiguration nur anreiße, euch das wesentliche erkläre habt ihr hier die ausführliche Dokumentation.

address & ipWhitelist: während der konfiguration ist es sinnvoll dies auf

address: "",
...
ipWhitelist: [],

zu setzen. Damit könnt ihr von eurem PC auf die seite zugreifen unter “http://:8081”.

Die Sprache, Zeitformat und die Einheiten stellt ihr mit

language: "de",
timeFormat: 24,
units: "metric",

ein. Unter “modules” sind alle installierten Module gelistet und deren Konfiguration.

Das “poistion”-Attribut in der Konfiguration des Moduls gibt die Position auf dem Bildschirm an. Ihr könnt mehrere Module auf die gleiche Position setzen, diese werden dann nacheinander angezeigt, so wie sie in der Konfiguration aufgelistet sind.

Kalender

Ihr könnt beliebige über das Internet erreichbare Kalender einbinden sowohl welche die einen Benutzername und Password vorraussetzen als auch ohne. Das Beispiel ohne Benutzername/Passwort ist in der Standardkonfig vorhanden deswegen hier mit Passwort:

{
  module: "calendar",
  header: "Personal",
  position: "top_left",
  config: {
    calendars: [
      {
        url: 'ADDRESSE_DES_KALENDERS',
	symbol: 'calendar',
	color: '#19ff00',        // farbe
	auth: {
	  user: 'EUER_NUTZER_NAME',
	  pass: 'EUER_PASSWORT',
	  method: 'basic'        // Authentifizierungsmethode
	},
	maximumEntries: 5,       // Anzahl der Einträge die angezeigt werden sollen
	maximumNumberOfDays: 14, // wieviele Tage in die zukunft geschaut werden soll
    }]
  }
},

Wettervorhersage

Hierfür müsst ihr euch zunächst einen sogenannten “API key” holen. Das ist sozusagen die Kombination von Nutzername und Password für euren MagicMirror. Der Basis Account bei OpenWeatcherMap ist gratis. Damit könnt ihr pro Stunde 60 Anfragen an den Service stellen, das reicht für den Privatgebrauch. die locationID bekommt ihr indem ihr eure Stadt sucht und den letzten teil der URL kopiert. Für Frankfurt am Main lautet die URL: https://openweathermap.org/city/2925533 => 2925533 ist die locationID.

{
  module: "weatherforecast",
  position: "top_right",
  header: "Weather Forecast",
  config: {
    location: "Frankfurt am Main",
    locationID: "2925533",           // https://openweathermap.org/city/2925533
    appid: "EUER_API_KEY"
  }
},

Newsfeed

Hier als Beispiel habe ich den Newsfeed von Golem, Heise und Computerbase abonniert. Das ‘ “encoding: “ISO-8859-1” ‘ braucht ihr wenn Sonderzeichen und Umlaute nicht richtig dargestellt werden.

{
  module: "newsfeed",
  position: "bottom_bar",
  config: {
    feeds: [
    {
      title: "Golem",
      url: "https://rss.golem.de/rss.php?feed=RSS2.0",
      encoding: "ISO-8859-1"
    },
    {
      title: "Heise",
      url: "https://www.heise.de/newsticker/heise-atom.xml"
    },
    {
      title: "Computerbase",
      url: "https://www.computerbase.de/rss/news.xml"
    }],
    showSourceTitle: true,
    showPublishDate: true
  }
},

Zusatzmodule

Die werden immer gleich installiert, geht zuerst in den MagicMirror-Modul-Ordner auf eurem Pi

cd ~/MagicMirror/modules

und Klont dann das Repository (Projektarchiv) in den Ordner

git clone https://github.com/marcelwinh/MMM-PimaticFloorplan.git

Ich benutze folgende Module:

Es gibt aber viele mehr…

Version 1

So, das war jetzt viel Theorie und Einrichtung, jetzt kommen wir zum Basteln. Hier einige Bilder von meiner ersten Version, Kosten ca 50€ im Baumarkt, da ich Monitor, Pi usw schon hatte.

  • Pi, Gehäuse, microSD Karte & Bewegungsmelder
  • Monitor
  • Holzlatten
  • Acrylglas & Spiegelfolie

Wie ihr bei den folgenden Bildern seht hat das aufbringen der Folie nicht auf anhieb geklappt.

Hier habe ich noch ein bisschen mit den Modulen herum gespielt, damit ich viel anzeige es aber nicht überfüllt wirkt.

V2

Bei Version 2 musste ich dann quasi nurnoch den Spiegel und Rahmen tauschen und schon war ich fertig.

Aussicht V3

Ziel für V3 ist natürlich ein größerer Bildschirm / Spiegel. Am Besten ist ein OLED Display, da hier schwarz wirklich schwarz ist und nicht durchschimmert wie bei einem LCD. Leider beginnen die 4k OLED bei 55″ und 1000€, das ist mir aktuell ein bisschen zu groß und teuer, der Spiegel dazu liegt auch bei 220€… Aber man wird ja wohl noch träumen dürfen…

  1. Sebastian Frede Sebastian Frede

    Hi,

    könntest genauer erklären, wie das Modul MMM-iHaveBeenThere genauer konfiguriert werden muss um weitere Reiseorte hinzuzufügen. Habe dazu nichts im Internet gefunden und die Doku ist für mich als Anfäger leider zu ungenau.

    • Marcel Marcel

      Hallo Sebastian,
      die konfiguration sieht in etwa so aus:

      {
      module: 'MMM-iHaveBeenThere',
      position: 'lower_third', // bigger place is recommended.
      config: {
      title: '', // The title of the world chart.
      zoomLevel: 5.4, // Set map region parameter.
      zoomLongitude: -2.0, // Set map region parameter.
      home_lat: 50.109547, // Latitude/longitude of the your home.
      home_lon: 8.660688,,
      home_desc: "Home", // Your Homename.
      animationDuration: 10.0, // Time in s how long the plane flies from point to point if animation is enabled.
      away_lat: [ // Latitude/longitude of destinations you have visited.
      48.858264, // Paris
      39.571348, // Mallorca
      41.891725, // Rom
      ],
      away_lon: [
      2.294352, // Paris
      2.648042, // Mallorca
      12.491799, // Rom
      ],
      away_desc: [ // City/Country names of destinations you have visited.
      "", // Paris
      "", // Mallorca
      "", // Rom
      ],
      trip: [ // Controls if every single entry is counted as a new jurney or a round trip.
      false, // Paris
      false, // Mallorca
      false, // Rom
      ],

      }
      },

      Tipp: beschrifte die einzelnen Einträge in den Listen, das macht das editieren und fehlersuchen einfacher.

      • Sebastian Frede Sebastian Frede

        Super vielen Dank.

        Jetzt habe ich meinen Fehler verstanden.

        Grüße und bleiben Sie gesund

  2. Mario Mario

    grüss dich

    ich sehe du hast auch den Bewegungssensor HC-SR501
    wie ist deine pin belegung

    und welches script nutzt du zum ein und ausschalten des Monitors.

    • Marcel Marcel

      Hallo Mario,
      ich nutze das MagicMirror module “MMM-PIR-Sensor” zum steuern des Monitors. Angeschlossen ist der Sensor an GPIO 22. Ich habe nur die Ausschaltverzögerung angepasst:

      {
      module: 'MMM-PIR-Sensor',
      config: {
      // See 'Configuration options' for more information.
      powerSavingDelay: 30
      }
      }

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.