Hi all!
Here is my Mirror so far…

For more pictures and some building information se here.
I have added a comment on every picture in the gallery so you know what you are looking at. :)
Update: 2026-08-10: The mirror has been “rebuilt” so that Home Assistant owns what is displayed.
Update: 2023-01-16: Updated almost all information about mirror functionality and additions.
Update: 2020-01-23: Video of some of the features…
I’m still finding more use-cases for my Mirror, nowadays it is also heavily integrated with my Home Assistant…
Even my family think it’s useful now!
Just so you know, my Mirror is NOT using a Raspberry PI any more, I switched over to a small NUC computer, the RPi is not powerful enough for all the stuff that’s going on here.
The Mirror has Mirror “Profiles” for each of us in the family, then also a “Weather”, “Work”, “Media” and “Clock” profile.
Both our cats have a profiles (because why not?) as well.
Mostly the profiles switches by time and day of the week. I’ll get in to the scheduling later. :)
Short backstory. I live in the south of Sweden (in a small city called Åstorp) with my wife and daughter.
I work in Stockholm (the capital of Sweden). The distance between the cities are about 560 kilometer or 248 (US/UK) miles.
So, to get to work I fly. I do this two days a week (four flights). As you probably know flights
gets delayed from time to time and when this happens I don’t want my wife to worry (too much)
and I don’t want to have to text her for every change…
So, to solve this, I opened a mail account for the mirror.
Then I registered an account using the mirrors mail on the site “Flight Aware”.
The site can send tracking information mails about (maximum 5) flights (airlines) for free!
Then I use node-red in HA (Home Assistant) to fetch the mail, parse it and present the latest information on a MMM-Memo.
This way my Wife only have to glance at the mirror to see if I’m going to be late or not. When I arrive at home (HA registers my presence) the Memo resets and gets hidden.
Here are some scenarios when the Mirror is used:
• Any of the cats enters or leaves through the cat-door, a message is sent telling what cat went where (shown for 5 minutes)
• Any battery is low in any of my battery powered sensors in the house the leds around the Mirror will turn blue and a message telling what battery needs changing. (shown for 5 minutes) This will repet once every day until battery is replaced.
• When the “default” light turns on (from HA if time is right or from remote) a message will say “Lights…” (for 5 minutes).
• If temperature in the fridge or freezer is high the leds will turn red around the Mirror and a message will be displayed (for 5 minutes every 30 minutes until fixed).
• If a leakage is discovered under the sink or in the bathrooms pipe switch, leds will turn red and a message will be displayed (indefinitely until fixed).
• If any of my 3D-Printers starts to print, the Bed-Camera and status will show until print is done.
• If at night and all lights is out and any of the motion-tracker are triggerd in the house. The leds will glow (yellow) faintly so you can see.
• If the Vacuum Robot is cleaning, the map and status is shown until finished or paused.
• If a bird visits the Bird Buddy the latest picture (and guessed species) will show up on the Mirror.
• When I brew an Espresso, the total amount of brewed cups will show up in a message and when done brewing a new message show, wishing you to enjoy your coffee.
• The positions of our cats GPS necklaces updates every minute and gets shown on the “MMM-GoogleMaps-Tracking” module.
• The Mirror turns off the screen 00:15 all nights. It turns on again at 04:45 on Mondays and Wednesdays, the the other weekdays it turns on at 06:00 and on weekends it turns on at 07:00.
Most of the information shown on the Mirror is triggered from Home Assistant via notifications (using MMM-Remote-Control).
Module classes:
• The modules with the “Default and Everyone” class are showed all the time (when not manually hidden).
• The modules in the “None” class are only shown manually or with triggered by events by the Mirror or HA.
• Each family member has a personal profile class (Erik, Camilla, Louise, Kakan and Cappuccino).
• Then I have a set of specific classes for specific “themes”, those are: Jobba (Work), Media, Klocka (clock) and Väder (Weather).
• Scheduled modules has it’s own class. This is for “single” day events. Like Halloween, Birthdays, Christmas and New Years Eve.
• Modules with no class defined but used in other ways is MMM-Remote-Control, MMM-ModuleScheduler and MMM-ProfileSwitcher.
For a list of all modules see end of this post.
ModuleScheduler Information:
Some profiles switches and functions are controlled by the scheduler (MMM-ModuleScheduler).
**Scheduling (updated 2026):**
I no longer use `MMM-ModuleScheduler` at all — it is removed. Everything it did
(screen on/off times, profile switching by time of day, and the per-module
schedules) moved into a single Node-RED flow in Home Assistant, where the whole
schedule is one editable table instead of two dozen cron strings.

ProfileSwitcher Information:
• In the profile switcher (MMM-ProfileSwitcher) each profile has their own greeting and leave message.
• The personal profiles and "Clock" has a timeout of 5 minutes, after that the mirror goes back to the "default" profile, if triggered via MMM-TouchNavigation.
• The "Jobba" (Work), "Media" and "Väder" (Weather) profile does not have a time out, because it's suppose to be able to stay "all day" sometimes.
TouchNavigation Information:
• The "Text Clock" profile has a picture of an analog clock.
• The "Kakan" profile has a picture of Kakan (Cat).
• The "Cappuccino" profile has a picture of Cappuccino (Cat).
• Each family member (human) profile has the persons own picture on the button.
• The "Jobba" (Work) profile has a "gear" picture.
• The "Media" profile has a "Camera Roll" picture.
• The "Väder" (Weather) profile has a spinning globe (gif animation) picture.
Above the TouchNavigation I have the MMM-ModuleBar
It normally shows only two buttons. The first one is the “Hide all” function and the second one “expands” the MMM-ModuleBar. What’s really going on here is, when you press the “Expand” button, it hides the current ModuleBar and un-hides a second ModuleBar that contain the following buttons.
ModuleBar Information (left to right):
• Show/Hide this MMM-ModuleBar module and the "other" one.
module: "MMM-Modulebar"
idnum: [56,57]
symbol: "chevron-circle-left"
• Show the Bird Buddy last visitor Text and Picture MMM-homeassistant-sensors modules (from HA).
module: "MMM-homeassistant-sensors"
idnum: [54,55]
symbol: "dove"
symbol2: "eye-slash"
• Show/Hide the default Clock module.
module: "clock"
symbol: "bell"
symbol2: "bell-slash"
• Show/Hide the default MMM-News module.
module: "MMM-News"
symbol: "fas fa-newspaper"
symbol2: "far fa-newspaper"
• Show/Hide the MMM-MoonPhase module.
module: "MMM-MoonPhase"
symbol: "fas fa-moon"
symbol2: "far fa-moon"
• Show/Hide the Cats location MMM-GoogleMaps-Tracking module, this shows the geographic location of our cats (from HA).
module: "MMM-GoogleMaps-Tracking"
symbol: "map-marked-alt"
symbol2: "map"
• Show/Hide the MMM-homeassistant-sensors module showing the information local weather station (from HA).
module: "MMM-homeassistant-sensors"
idnum: 28
symbol: "thermometer-three-quarters"
symbol2: "thermometer-empty"
• Show/Hide the MMM-Globe3D module.
module: "MMM-Globe"
symbol: "globe-europe"
symbol2: "globe-americas"
• Show/Hide the MMM-TextClock module.
module: "MMM-TextClock"
symbol: "comment"
symbol2: "comment-slash"
• Show/Hide the default Weather module.
module: "weather"
symbol: "cloud"
symbol2: "cloud-moon"
• Show/Hide the MMM-nixie-clock module.
module: "MMM-nixie-clock"
symbol: "eye"
symbol2: "eye-slash"
• Show/Hide the MMM-cryptocurrency module.
module: "MMM-cryptocurrency"
symbol: "fab fa-bitcoin"
symbol2: "fab fa-btc"
• Show/Hide the MMM-homeassistant-sensors module that show total Espresso cups/price/beans I have brewed in my Espresso Machine.
module: "MMM-homeassistant-sensors"
symbol: "mug-hot"
symbol2: "coffee"
• Show/Hide the MMM-MotionEye module for the camera that show my Prusa i3 MK3 3D Printer bed.
module: "MMM-MotionEye"
idnum: 35
symbol: "layer-group"
symbol2: "toggle-off"
showUrl: "http://10.0.0.112:8080/motioneye/1",
hideUrl: "http://10.0.0.112:8080/motioneye/hide/1"
• Show/Hide the MMM-MotionEye module for the camera that show my Prusa i3 MK2.5 3D Printer bed.
module: "MMM-MotionEye"
idnum: 36
symbol: "layer-group"
symbol2: "toggle-off"
showUrl: "http://10.0.0.112:8080/motioneye/2",
hideUrl: "http://10.0.0.112:8080/motioneye/hide/2"
Here are the defined classes and the modules they trigger.
Profile classes: {
Eriks Modules: {
MMM-Profilepicture - Personal background picture.
Clock - The time (Default module).
Compliments - Personal compliments (from specified json file).
Weather - Local weather information at Mirrors location (Default module).
Weather - Local weather forecast at Mirrors location (Default module).
MMM-GoogleMaps-Tracking - Geolocation of our Cats.
MMM-cryptocurrency - Current bitcoin price.
MMM-homeassistant-sensors - Espresso Machine information.
MMM-homeassistant-sensors - Local weather station information.
MMM-homeassistant-sensors - Information about the House (humidity, temperature and more).
MMM-Tibber - Information about price on electricity / hour.
MMM-News - Latest news from Sweden.
},
Camillas Modules: {
MMM-Profilepicture - Personal background picture.
Clock - The time (Default module).
Compliments - Personal compliments (from specified json file).
Weather - Local weather information at Mirrors location (Default module).
Weather - Local weather forecast at Mirrors location (Default module).
MMM-GoogleMaps-Tracking - Geolocation of our Cats.
MMM-MoonPhase - Current Moon phase.
MMM-News - Latest news from Sweden.
MMM-homeassistant-sensors - Local weather station information.
MMM-homeassistant-sensors - Information about the family's whereabouts.
},
Louises Modules: {
MMM-Profilepicture - Personal background picture.
Clock - The time (Default module).
Compliments - Personal compliments (from specified json file).
Weather - Local weather information at Mirrors location (Default module).
Weather - Local weather forecast at Mirrors location (Default module).
MMM-GoogleMaps-Tracking - Geolocation of our Cats.
MMM-MoonPhase - Current Moon phase.
MMM-homeassistant-sensors - Today school lunch.
MMM-homeassistant-sensors - Information about the family's whereabouts.
},
Jobbas Modules: {
MMM-Profilepicture - Personal background picture.
Clock - The time (Default module).
Weather - Local weather information at Mirrors location (Default module).
Weather - Local weather forecast at Mirrors location (Default module).
MMM-JsonTable - Espresso Machine information.
MMM-GoogleMaps-Tracking - Geolocation of our Cats.
MMM-cryptocurrency - Current bitcoin price.
MMM-homeassistant-sensors - Local weather station information.
MMM-homeassistant-sensors - Information about the family's whereabouts.
MMM-homeassistant-sensors - Information about the House (humidity, temperature and more).
MMM-Tibber - Information about price on electricity / hour.
MMM-News - Latest news from Sweden.
},
Medias Modules: {
MMM-Profilepicture - Personal background picture.
Clock - The time (Default module).
Weather - Local weather information at Mirrors location (Default module).
Weather - Local weather forecast at Mirrors location (Default module).
MMM-TautulliLatest - Latest Movies and TV-Series added to my Plex Server.
MMM-GoogleMaps-Tracking - Geolocation of our Cats.
MMM-homeassistant-sensors - Local weather station information.
MMM-homeassistant-sensors - Information about the family's whereabouts.
MMM-homeassistant-sensors - Information about the House (humidity, temperature and more).
MMM-Tibber - Information about price on electricity / hour.
},
Väders Modules: {
MMM-Profilepicture - Personal background picture.
Weather - Local weather information at Mirrors location (Default module).
Weather - Local weather forecast at Mirrors location (Default module).
MMM-Globe3D - Full disc 3D spinning globe with accurate weather clouds.
MMM-MoonPhase - Current Moon phase.
MMM-GoogleMaps-Tracking - Geolocation of our Cats.
MMM-JsonTable - Espresso Machine information.
MMM-homeassistant-sensors - Local weather station information.
MMM-homeassistant-sensors - Information about the family's whereabouts.
MMM-homeassistant-sensors - Information about the House (humidity, temperature and more).
MMM-Tibber - Information about price on electricity / hour.
MMM-News - Latest news from Sweden.
},
Kakan Modules: {
MMM-Profilepicture - Personal Picture Collage.
Clock - The time (Default module).
Weather - Local weather information at Mirrors location (Default module).
Weather - Local weather forecast at Mirrors location (Default module).
MMM-GoogleMaps-Tracking - Geolocation of our Cats.
MMM-homeassistant-sensors - Kakans information about active minutes, hours inside / outside and trips in / out through the Cat-door. GPS battery charge and GPS status.
},
Cappuccino Modules: {
MMM-Profilepicture - Personal Picture Collage.
Clock - The time (Default module).
Weather - Local weather information at Mirrors location (Default module).
Weather - Local weather forecast at Mirrors location (Default module).
MMM-GoogleMaps-Tracking - Geolocation of our Cats.
MMM-homeassistant-sensors - Cappuccino information about active minutes, hours inside / outside and trips in / out through the Cat-door. GPS battery charge and GPS status.
},
Default and Everyones Modules: {
MMM-Memo - Displays memos (Used for displaying temporary information in my case).
MMM-Modulebar - Bar with buttons for toggling (show/hide) other modules.
MMM-TouchNavigation - Profile switching buttons.
},
Nones Modules: {
Alert - Used for "urgent information".
MMM-Remote-Control - For controlling the Mirror using notifications and Web-Meny.
MMM-ProfileSwitcher - Handling the switching of the profiles.
MMM-homeassistant-sensors - Prusa i3 MK3 (3D-Printer) printing information. Only visible when I'm printing.
MMM-homeassistant-sensors - Prusa i3 MK2.5 (3D-Printer) printing information. Only visible when I'm printing.
MMM-MotionEye - Displaying the Prusa i3 MK3 (3D-Printer) camera when in action (or using MMM-Modulebar).
MMM-MotionEye - Displaying the Prusa i3 MK2.5 (3D-Printer) camera when in action (or using MMM-Modulebar).
MMM-Modulebar - The "full" MMM-ModuleBar. Only visible when activating it from the "small" MMM-ModuleBar.
}
}
Full module list with IDs and usage:
00 MMM-Remote-Control 17 MMM-JsonTable 34 MMM-homeassistant-sensors
01 MMM-ModuleScheduler * 18 MMM-homeassistant-sensors 35 MMM-homeassistant-sensors
02 MMM-ProfileSwitcher 19 MMM-TautulliLatest 36 MMM-homeassistant-sensors
03 MMM-Videoplayer 20 compliments 37 MMM-homeassistant-sensors
04 MMM-Profilepicture 21 compliments 38 MMM-Tibber
05 MMM-Profilepicture 22 compliments 39 MMM-anotherNewsFeed
06 MMM-Profilepicture 23 MMM-Weather-SMHI 40 MMM-Snow *
07 MMM-Profilepicture 24 MMM-homeassistant-sensors 41 MMM-Snow *
08 MMM-Profilepicture 25 MMM-cryptocurrency 42 MMM-Snow *
09 MMM-Profilepicture 26 MMM-Memo 43 MMM-nixie-clock
10 MMM-Profilepicture 27 MMM-homeassistant-sensors 44 MMM-homeassistant-sensors
11 MMM-Profilepicture 28 MMM-MotionEye 45 MMM-homeassistant-sensors
12 MMM-Profilepicture 29 MMM-homeassistant-sensors 46 MMM-Modulebar (small)
13 MMM-Profilepicture 30 MMM-MotionEye 47 MMM-Modulebar (full)
14 alert 31 MMM-Globe3D 48 MMM-TouchNavigation
15 MMM-GoogleMaps-Tracking 32 MMM-MoonPhase 49 MMM-ImmichSlideShow
16 clock 33 MMM-TextClock 50 MMM-HomeAssistant
* = disabled
I don’t know if you noticed but the frame around the mirror is “changeable”. I thought if I can display different things on the screen, I should be able to change the physical appearance of the mirror as well without having to build a completely new mirror. So, the front frame can easily be removed by just pulling out the bottom part and lifting it up. I have made two different front frames (as you have seen in the pictures). But I’ll probably do another one in time. :)
Let me know if you want to know anything more. :)
Thank you all for helping out and being awesome!











