MagicMirror – Finalisierung

Gestern konnte ich endlich mein MagicMirror Projekt (zum Grössten Teil) abschliessen. Nach dem ersten Versuch mit Spionspiegel Folie, habe ich Alternativen gesucht. Dazu startete ich zwei Anfragen bei Glasereien. Eine davon wurde bis heute leider nicht beantwortet, bei der zweiten habe ich eine Offerte für ein Spionspiegel aus Glas erhalten. Leider wäre der Spiegel ca 300.- CHF teuer gewesen, 6mm Dick und ca 2.7 Kg schwer. Das ist mir erstens zu teuer und auch von den Massen unpassend. Dann bin ich auf einen Acrylglas-Spiegel 2W gestossen, den ich über die Firma Kunststoffpark bestellen konnte. Preis inkl. Mwst und Versand waren etwas über 90.- CHF. Diesen Acryglas-Spiegel 2W kann ich empfehlen, wenn jemand ein ähnliches Projekt machen will. Den Spiegel habe ich auch schnell erhalten und konnte dann endlich mein MagicMirror fertigstellen.

Damit ich das Display im Spiegel ein- und ausschalten kann, habe ich via Banggood ein 250V Relais bestellt, welches über die GPIO Schnittstelle des Raspberry Pi angesteuert wird. Auch das ist nach etwa 2 Wochen eingetroffen. Mit Python habe ich einen kleinen Daemon geschrieben, der das Relais ansteuert (via SIGUSR1 und SIGUSR2 Signals). Weiter habe ich eine MQTT Schnittstelle in den  Daemon eingebaut, damit ich das Display auch Remote ein- und ausschalten kann. Damit ist nun auch ein produktiver Einsatz von  Node-Red. welches ich früher schon Mal erwähnt habe, möglilch. Via Node-Red Dashboard habe ich ein einfaches Dashboard erstellt, um das Display An- und Auszuschalten. 

Aktuell steuere ich das Display über einen MQTT Channel smartmirror/command an den ich ein JSON sende. Z.B. {„screen“:“on“} um einzuschalten oder {„status“:“get“} um den Status abzufragen. Beim Status Command wird auf dem Channel smartmirror/status den aktuellen Status via JSON ausgesendet. Das geschieht auch automatisch bei jedem Statuswechsel (von on zu off oder umgekehrt). Vermutlich werde ich diese Schnittstelle aber noch umbauen, ich muss mich noch schlau machen, was hier die gängigen Standards sind um IOT Geräte via MQTT zu steuern. Vermutlich werde ich es so umbauen, dass es nur einen Channel smartmirror/display/power gibt. In den Channel wird dann eine einfache 0 oder 1 gesendet um die Stromzufuhr zum Display zu steuern. Der gleiche Channel kann auch für die Status-Response verwenden werden.

Was noch fehlt, ist ein kleiner Push-Button am MagicMirror, um das Display auch ohne Dashboard Ein-und Auszuschalten. Aktuell habe ich ein via Cronjob getriggertes Script am laufen, um das Display zeitgesteuert Ein- und Auszuschalten (in der Nacht sowie ab spätem Morgen bis spätem Nachmittag läuft das Display z.B. nicht).

Update 22. Mai 2018

Hier ein kurzes Video wie der Spiegel live aussieht

12 Gedanken zu „MagicMirror – Finalisierung

    • Bin nicht mehr 100% sicher. Ich glaube es ist dieser https://www.digitec.ch/de/s1/product/samsung-syncmaster-s24b300h-monitor-329472
      Allerdings sind die Anschlüsse für Power und HDMI in einem 90° Winkel, daher wird viel Platz für den Stecker verwendet. Der MagicMirror muss dehalb eine gewisse tiefe haben. Ich würde dir daher eher einen Monitor empfehlen, bei dem die Stecker parallel zum Bildschirm (also nach unten) eingesteckt werden können. So kann der Spiegel etwas flacher gemacht werden.

      • Hi Sebastian
        Hoff es geht dir gut, darf ich dich fragen wie die Helligkeit ist? sprich kommt die Schrift vom Bildschirm gut durch das Glass und man kann es gut sehen in einem 1-2 meter Abstand?

        mit freundlichen Grüssen,
        Loc

        • Ciao Loc

          Ja sehr gut, hatte bisher keine Probleme mit der Lesbarkeit!
          Bei Tageslicht kein Problem, auch wenn es hell ist. In der Nacht schimmert die Hintergrundbeleuchtung des Display durch und der Spiegeleffekt ist nicht mehr so stark gegeben. Aber der Inhalt des Display ist sehr gut lesbar. Die Schriftfarbe darf sicher nicht zu dunkel sein, bei mir ist sie weiss&grau + teilweise rote. Das passt alles sehr gut. Weiter habe ich eine Wetteranzeige mit farbigen Elementen, auch diese ist sehr gut lesbar.
          Hier ein kurzes Video. Hoffe das zeigt die Situation ein bisschen.

          Grüsse, sebastian

          • Hallo Sebastian, leider st das Video nicht mehr verfügbar, hast du einen anderen Link?
            Wieviel Lichtdurchlässigkeit hat der 2W-Acrylglasspiegel, scheinbar macht dies auch noch viel aus.

            Grüsse
            Peter

  1. Hi Sebastian,

    cooles Projekt! Ich hätte noch zwei Fragen:

    1) woher hast du den Rahmen für das Spiegelglas? Und welche Dimensionen sind das?

    2) wie hast du die Komponenten innerhalb des Rahmens befestigt?

    • Hallo Kevin

      Merci 🙂

      Der Rahmen habe ich selbst gebaut. Holz aus dem Baumarkt und dann geleimt und geschraubt. Die Dimensionen sind so gewählt, dass der Bildschirm genau bündig darin platz hat. Die genauen Werte weiss ich nicht mehr. Der Bildschirm ist so bündig, dass er fast von alleine hält. Von vorne wird er aber noch durch eine aus Holz gefertigte Blende gehalten. Die Blende ist u.A. auch da, weil der Monitor noch einen Rand hat. Von innen habe ich ein paar Winkel montiert. Die restlichen komponenten sind mit Klebeband auf die Rückseite des Monitor geklebt.

      Hoffe das hilft, ist musste vieles einfach probieren, wusste zu Beginn auch nicht genau wie. Weiter habe ich teilweise auch knapp oder ungenau gemessen, dann musste auch mal was passend gemacht werden 😀

      • Hallo Sebastian,

        danke für deine Antwort. Wie ich sehe, ist Try und Error auch ein bisschen Bestandteil der Übung. Habe mir jetzt auch einen Spiegel bestellt. Mal schauen, was draus wird.

        Hattest du mal Probleme mit der Wärmeentwicklung? Das Display wird ja schon ca. 25 Watt abgeben. Hast du noch Luftlöcher in die Holzverkleidung reingebohrt?

        Das mit dem Relais habe ich mir auch überlegt. Wobei man theoretisch ja auch einfach die Bildschirmausgabe des RPi ausschalten könnte. Die meisten Monitore schalten ja dann auf Energiesparmodus und verbrauchen kaum Strom. Then again, wenn man schon mal einen Einsatz hat für diese ganzen IoT Technologien, warum nicht die Gelegenheit nutzen 😀

        • Habe bezüglich Hitzeentwicklung nichts spezielles gemacht. Aufgrund des HDMI Kabel, welches im 90° Winkel eingesteckt ist, ist der Spiegel minimal angewickelt an der Wand und hat deshalb etwas Platz für Luft Zirkulation. Vor kurzen habe ich sogar noch einen Temperatur Sensor hinter dem Spiegel integriert (DH11). Dieser meldet mir zwischen Bildschirm & Wand ca. 40° Grad wenn der Bildschirm an ist. Ansonsten etwa normale Raumtemperatur.

  2. Hallo Sebastian,

    Mein Projekt ist voll im Gange. Aber mein Problem. Wie zeige ich das Wetter von Basel (oder anderen Schweizer Wetterdaten) an?

    Kannst Du mir da weiter helfen?

    Gruss Joerg

    • Hallo Joerg

      Ich verwende bei mir https://github.com/splattner/MMM-iFrame und dann MeteoBlue um das Wetter anzuzeigen: Du kannst hier dein Widget zusammenstellen: https://www.meteoblue.com/de/wetter/widget/setupday/basel_schweiz_2661604
      Im Iframe src Tag findest du dann die benötigte URL fürs MMM-iFrame Modul.

      Meine config.js dafür:

      {
      module: 'MMM-iFrame',
      position: 'top_right', // This can be any of the regions.
      config: {
      // See 'Configuration options' for more information.
      url: ["https://www.meteoblue.com/de/wetter/widget/daily/bern_schweiz_2661552?geoloc=fixed&days=4&tempunit=CELSIUS&windunit=KILOMETER_PER_HOUR&precipunit=MILLIMETER&coloured=coloured&pictoicon=0&pictoicon=1&maxtemperature=0&maxtemperature=1&mintemperature=0&mintemperature=1&windspeed=0&windspeed=1&windgust=0&winddirection=0&uv=0&humidity=0&precipitation=0&precipitation=1&precipitationprobability=0&precipitationprobability=1&spot=0&spot=1&pressure=0&layout=dark"],
      updateInterval: 0.5 * 60 * 1000, // rotate URLs every 30 seconds
      width: "100%", // Optional. Default: 100%
      height: "360px", //Optional. Default: 100px
      forceUpdateInterval: 60 * 60 * 1000,
      noCacheStringDelimiter: "&",
      }
      },

Kommentar verfassen