Snilles Magic Mirror Project


  • Module Developer

    Hi all!
    Here is my Mirror so far…
    0_1501179294803_Snilles-Mirror.jpg
    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. :)

    I still have a lot to do on the software side… :)

    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 gmail account for the mirror.
    Then I registered an account using the mirrors gmail on the site “Flight Aware”.
    The site can send tracking information mails about (maximum 5) flights (airlines) for free!
    I then use a small python script to login to gmail, parse the mails and present the latest information on a Memo (MMM-Memo).
    This way my Wife only have to glance at the mirror to see if I’m going to be late or not.

    Classes and Modules Information:
    • 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 events.
    • Each family member has a personal profile class (Erik, Camilla and Louise).
    • Then I have a set of specific classes for specific “themes”, those are: Jobba (Work), Media, Huset (The House), Växthuset (The Greenhouse) and Väder (Weather).
    • 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).

    Schedules: {
    	Global Schedule: {
    		Show class "Erik" at 05:25 and hide at 05:50 on Mondays and Wednesdays.
    		Show class "Camilla" at 05:51 and hide at 07:15 on Mondays to Fridays.
    		Show class "Jobba" at 07:16 and hide at 16:00 on Tuesdays, Thursdays and Fridays.
    		Show class "Väder" at 07:00 and hide at 18:00 on Saturdays and Sundays.
    		Show class "Media" at 20:30 and hide at 23:00 on all days.
    		
    	},
    	Function Schedule: {
    		Turn the screen on at 05:20 Mondays and Wednesdays.
    		Turn the screen on at 06:20 Tuesdays, Thursdays and Fridays.
    		Turn the screen on at 07:00 Saturdays and Sundays.
    		Turn the screen off at 00:00 every day.
    		Restart the MagicMirror at 04:00 every day.
    	}
    }
    

    ProfileSwitcher Information:
    • In the profile switcher (MMM-ProfileSwitcher) each profile has their own greeting and leave message.
    • The personal profiles and “Media” has a timeout of 3 minutes, after that the mirror goes back to the “default” profile (if triggered via TouchNavigation).
    • The weather has it’s own timeout set to 5 minutes and after that the mirror goes back to the “default” profile as well (if triggered via TouchNavigation).
    • The “Jobba” (Work) profile does not have a time out, because it’s suppose to be able to stay “all day” (When I work from home).

    TouchNavigation Information:

    • The "Text Clock" profile has a picture of an analog clock.
    • The "House" profile has a picture of our house.
    • The "Greenhouse" profile has a picture of our green house.
    • Each family 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.
    

    Alexa Information:
    We are also users of Amazons Alexa (Echo dot). So, I have setup a HA-Bridge (I actually already had this server setup for communication with my Z-Wave system) that the Echo can see.
    The HA-Bridge presents each device as a “Philips HUE Lamp” so you can give it three commands: Turn on, Turn off and Dim.
    Then I have configured the following voice commands (for now) to interact with the mirror.

    "Alexa, Turn on (or off)…

    Mirror Screen" – Turns off or on the screen behind the mirror by using the action=MONITOROFF or action=MONITORON command in the MMM-Remote-Control module.
    Erik’s (or Camilla's, Louise's, Work, Weather, House, Greenhouse or Media) Mirror" – Switches to the spoken profile (if off is said, then to default) Mirror profile by using the action=NOTIFICATION¬ification=CURRENT_PROFILE&payload="profile" in the MMM-Remote-Control module.
    Reload Mirror" – Reloads the MagicMirror by using the action=RESTART command in the MMM-Remote-Control module.
    Mirror" – Shuts down the mirror completely by using the action=SHUTDOWN command in the MMM-Remote-Control module.
    Bird Nest one (or two or three)" – Shows the MotionEye Bird Nest One (or two or three) video stream by triggering the motion command for the MotionEye module.
    Bird Nest Cameras" – Shows all MotionEye Bird Nest Cameras (one, two and three) video streams by triggering the motion command for the MotionEye modules.
    Louise (or Server or Printer) Camera" – Shows the MotionEye stream for spoken camera video stream by triggering the motion command for the MotionEye module.
    All Cameras" – Shows all MotionEye video streams by triggering the motion command for all the MotionEye modules.
    Text Clock" - Shows the big text clock.
    Back Light" - Turns the leds on the back of the frame to faint yellow-white (emulating normal light bulb).
    Thunder" - Turns the leds on the back of the frame to random "flashes".
    Spinning Rainbow" - Turns the leds on the back of the frame to fast running rainow all around the mirror.
    Blue Back Light" - Turns the leds on the back of the frame to faint blue.
    Running Blue" - Turns the leds on the back of the frame to a running blue pixel.
    Spinning Blue" - Turns the leds on the back of the frame to 22 fast running blue pixels.
    Green Back Light" - Turns the leds on the back of the frame to faint green.
    Running Green" - Turns the leds on the back of the frame to a running green pixel.
    Spinning Green" - Turns the leds on the back of the frame to 22 fast running green pixels.
    Pink Back Light" - Turns the leds on the back of the frame to faint pink.
    Running Pink" - Turns the leds on the back of the frame to a running pink pixel.
    Spinning Pink" - Turns the leds on the back of the frame to 22 fast running pink pixels.
    Purple Back Light" - Turns the leds on the back of the frame to faint purple.
    Running Purple" - Turns the leds on the back of the frame to a running purple pixel.
    Spinning Purple" - Turns the leds on the back of the frame to 22 fast running purple pixels.
    Red Back Light" - Turns the leds on the back of the frame to faint red.
    Running Red" - Turns the leds on the back of the frame to a running red pixel.
    Spinning Red" - Turns the leds on the back of the frame to 22 fast running red pixels.
    White Back Light" - Turns the leds on the back of the frame to faint white.
    Running White" - Turns the leds on the back of the frame to a running white pixel.
    Spinning White" - Turns the leds on the back of the frame to 22 fast running white pixels.
    Yellow Back Light" - Turns the leds on the back of the frame to faint yellow.
    Running Yellow" - Turns the leds on the back of the frame to a running yellow pixel.
    Spinning Yellow" - Turns the leds on the back of the frame to 22 fast running yellow pixels.
    

    Modulebar Information (left to right):

    • Clock
      Symbol: clock-o
    • MMM-Suncalc
      Symbol: sun-o
    • Calendar (Erik's)
      Symbol: calendar-check-o
    • Calendar (Louise)
      Symbol: calendar-o
    • Calendar_Monthly
      Symbol: calendar
    • MMM-Globe
      Symbol: globe
    • Currentweather
      Symbol: cloud
    • Weatherforecast
      Symbol: compass
    • MMM-WunderGround (Weather at Arlanda)
      Symbol: plane
    • MMM-SystemStats
      Symbol: microchip
    • MMM-cryptocurrency
      Symbol: btc
    • MMM-Sonos
      Symbol: music
    • MMM-MotionEye (3D-Printer Camera)
      Symbol: codepen
    • MMM-MotionEye (Server Camera)
      Symbol: cube
    • MMM-MotionEye (Louise Camera)
      Symbol: child
    • MMM-MotionEye (Bird Nest Camera One)
      Symbol: twitter
    • MMM-MotionEye (Bird Nest Camera Two)
      Symbol: twitter
    • MMM-MotionEye (Bird Nest Camera Three)
      Symbol: twitter
    • MMM-Chart (togels all 4 charts)
      Symbol: area-chart
    • iFrame (MMM-Remote-Control)
      Symbol: sliders
    • iFrame (SONOS Web Controler)
      Symbol: My own picture.
    

    Here are the defined classes and the modules they trigger.

    Profile classes: {
    	Eriks Modules: {
    		MMM-Profilepicture - Personal background picture.
    		Clock - The time (Default module).
    		Updatenotification - Information about MM updates (Default module).
    		MMM-SystemStats - Information about the MM-System (Temp, load and free RAM).
    		MMM-cryptocurrency - Current bitcoin price.
    		MMM-Suncalc - Shows actual day light time.
    		Calendar_Monthly - A visual view of the current month’s week layout (and dates).
    		Calendar - Erik’s Google calendar (Currently showing: Personal calendar, Swedish holidays and Week numbers).
    		MMM-newsfeedtouch - News from http://feber.se
    		MMM-newsfeedtouch - News form http://www.hd.se, "http://www.sydsvenskan.se and http://feeds.bbci.co.uk/news/world/europe.
    		Compliments - Personal compliments (from specified json file).
    		Currentweather - Local weather information at Mirrors location (Default module).
    		Weatherforecast - Local weather forecast at Mirrors location (Default module).
    		MMM-WunderGround - Weather information about current and forecast at ARN (Arlanda Airport, Stockholm, Sweden).
    	}, 
    	Camillas Modules: {
    		MMM-Profilepicture - Personal background picture.
    		Clock - The time (Default module).
    		MMM-Suncalc - Shows actual day light time.
    		Calendar_Monthly - A visual view of the current month’s week layout (and dates).
    		MMM-newsfeedtouch - News form http://www.hd.se, "http://www.sydsvenskan.se
    		Compliments - Personal compliments (from specified json file).
    		Currentweather - Local weather information at Mirrors location (Default module).
    		Weatherforecast - Local weather forecast at Mirrors location (Default module).
    		Compliments - Personal compliments (from file).
    	}, 
    	Louises Modules: {
    		MMM-Profilepicture - Personal background picture.
    		Clock - The time (Default module).
    		MMM-Suncalc - Shows actual day light time.
    		Calendar_Monthly - A visual view of the current month’s week layout (and dates).
    		Calendar - Louise Google calendar (Currently showing: Personal calendar, Swedish holidays and Week numbers).
    		Compliments - Personal compliments (from specified json file).
    		Currentweather - Local weather information at Mirrors location (Default module).
    		Weatherforecast - Local weather forecast at Mirrors location (Default module).
    		Compliments - Personal compliments (from file).
    
    	},
    	Jobbas Modules: {
    		MMM-Profilepicture - Personal background picture.
    		Updatenotification - Information about MM updates (Default module).
    		Clock - The time (Default module).
    		MMM-SystemStats - Information about the MM-System (Temp, load and free RAM).
    		MMM-cryptocurrency - Current bitcoin price.
    		MMM-Suncalc - Shows actual day light time.
    		Calendar_Monthly - A visual view of the current month’s week layout (and dates).
    		Calendar - Eriks Google calendar (Currently showing: Personal calendar, Swedish holidays and Week numbers).
    		Currentweather - Local weather information at Mirrors location (Default module).
    		Weatherforecast - Local weather forecast at Mirrors location (Default module).
    		MMM-WunderGround - Weather information about current and forecast at ARN (Arlanda Airport, Stockholm, Sweden).
    	},
    	Medias Modules: {
    		MMM-Profilepicture - Personal background picture.
    		MMM-plex-recently-added - Latest TV-Episodes added to my Plex Server.
    		MMM-plex-recently-added - Latest Movies added to my Plex Server.
    		MMM-newsfeedtouch - Movie news from http://www.fandango.com
    	},
    	Väders Modules: {
    		MMM-Profilepicture - Personal background picture.
    		MMM-Suncalc - Shows actual day light time.
    		MMM-SystemStats - Information about the MM-System (Temp, load and free RAM).
    		Calendar_Monthly - A visual view of the current month’s week layout (and dates).
    		MMM-newsfeedtouch - Weather news from https://www.smhi.se (Swedish weather service).
    		Currentweather - Local weather information at Mirrors location (Default module).
    		Weatherforecast - Local weather forecast at Mirrors location (Default module).
    		MMM-WunderGround - Weather information about current and forecast at ARN (Arlanda Airport, Stockholm, Sweden).
    		MMM-Globe - Full disc (Europe).
    	},
    	Husets Modules: {
    		MMM-Profilepicture - Personal background picture.
    		Clock - The time (Default module).
    		MMM-Suncalc - Shows actual day light time.
    		MMM-SystemStats - Information about the MM-System (Temp, load and free RAM).
    		MMM-Chart * 4 - Temp and Humidity for: Inside, outside, crawlspace and attic.
    	},
    	Växthusets Modules: {
    		MMM-Profilepicture - Personal background picture.
    		Clock - The time (Default module).
    		MMM-Suncalc - Shows actual day light time.
    		MMM-SystemStats - Information about the MM-System (Temp, load and free RAM)
    		Currentweather - Local weather information at Mirrors location (Default module).
    		Weatherforecast - Local weather forecast at Mirrors location (Default module).
    		MMM-Chart - Temp and Humidity for outside.
    	},
    	Default and Everyones Modules: {
    		Alert - Alert to everyone (Default module).
    		MMM-Memo - Displays memos (Used for displaying temporary information in my case).
    		MMM-TouchNavigation - Profile switching buttons.
    		MMM-Modulebar - Bar with buttons for toggling (show/hide) other modules.
    		MM-Hide-All - Temporarly hide everything on the mirror screen.
    	},	
    	Nones Modules: {
    		MMM-Sonos - Displays what's playing in my SONOS system when something is playing (or using MMM-Modulebar).
    		MMM-MotionEye - Displaying the Prusa i3 MK2 (3D-Printer) camera when in action (or using MMM-Modulebar).
    		MMM-MotionEye - Displaying our daughter’s room when someone is moving in there (or using MMM-Modulebar).
    		MMM-MotionEye - Displaying my Server camera (overview of the server, firewall and UPS) showed when movement is registered (or using MMM-Modulebar).
    		MMM-MotionEye - Displaying Bird nest 1, showing if there is movement in the nest (or using MMM-Modulebar).
    		MMM-MotionEye - Displaying Bird nest 2, showing if there is movement in the nest (or using MMM-Modulebar).
    		MMM-MotionEye - Displaying Bird nest 3, showing if there is movement in the nest (or using MMM-Modulebar).
    		iFrame - Displaying MMM-Remote-Control when showed (using MMM-Modulebar).
    		iFrame - Displaying SONOS-Web-Controler-Interface (for controlling my SONOS system) when showed (using MMM-Modulebar).
    	}
    }
    

    Module list:

    Full Module List and positions: {
    	• MMM-Remote-Control
    	  Position: None
    	• MMM-ModuleScheduler
    	  Position: None
    	• MMM-ProfileSwitcher
    	  Position: None
    	• MMM-Profilepicture * 7
    	  Position: fullscreen_below
    	• Alert
    	  Position: None
    	• Updatenotification
    	  Position: top_bar
    	• MMM-Memo
    	  Position: top_center
    	• Clock
    	  Position: top_left
    	• MMM-Suncalc
    	  Position: top_left
    	• MMM-SystemStats
    	  Position: top_left
    	• MMM-cryptocurrency
    	  Position: top_left
    	• Calendar_monthly
    	  Position: top_left
    	• Calendar * 2
    	  Position: top_left
    	• MMM-Sonos
    	  Position: top_center
    	• MMM-plex-recently-added
    	  Position: middle_center
    	• MMM-plex-recently-added
    	  Position: middle_center
    	  Position: top_left
    	• MMM-TouchNavigation
    	  Position: bottom_bar
    	• MMM-newsfeedtouch * 4
    	  Position: middle_center and lower_third
    	• Compliments * 3
    	  Position: lower_third
    	• MMM-JSONStatusChecker * 2
    	  Position: bottom_right
    	• Currentweather
    	  Position: top_right
    	• Weatherforecast
    	  Position: top_right
    	• MMM-WunderGround
    	  Position: top_right
    	• MM-Hide-All
    	  Position: bottom_left
    	• MMM-MyCommute
    	  Position: bottom_left
    	• MMM-MotionEye * 6
    	  Position: bottom_left, bottom_center and bottom_right
    	• MMM-Chart * 4
    	  Position: top_center
    	• MMM-TextClock
    	  Position: middle_center
    	• iFrame * 2 
    	  Position: lower_third
    	• MMM-Globe
    	  Position: middle_center
    	• MMM-Modulebar
    	  Position: bottom_bar
    }
    

    Here you have my conf and custom.css files.

    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!


  • Module Developer

    VERY impressed… WOW great work!


  • Module Developer

    @cowboysdude Thank you! :)


  • Module Developer

    @Snille

    The word BRILLIANT comes to mind.

    Good stuff, Snille!


  • Module Developer

    @Mykle1 Thank you… :)



  • Really nice work! I would like to know some more about your hardware, especially mirror type (seller, price etc) and what type of touch panel you’re using.
    Still in the planning stage of my build but since I’m doing all the software myself I still have some time to sort everything out. :D


  • Module Developer

    @grillchips Hi! Thank you. I’m using a Pilkington MirrorView mirror. It’s a 50/50 mirror (bought it through my work) and it work well when it’s normal lighting I think. If I open the door in the hallway and the sun shines in to the hallway it’s hard to see what’s on the screen.
    Then I’m (for now) using a Raspberry Pi 3 and a IR Multitouch Overlay Frame to give the mirror “touch” capability. There where a bit of trickery to the setup of the IR-Frame, you can find the information in this thread.
    Then I’m using a LPD8806 LED Strip to light up behind the frame. Here I’m for the moment using PixelWeb with Bibliopixel 2.x as a back end. It’s not fully integrated yet with the mirror software. I built a small sh script that sends a json string to PixelWebs (in official) API. :)

    Hehe, As you can imagine, it’s still a long way to go on the software part, you know how it is. There is always something that can get a little better… :)

    I think that’s the important bits. Let me know if you want to know more. :)


  • Module Developer

    Any chance we can get some close ups? :)


  • Module Developer

    @cowboysdude Sure, what would you like to see? In the google gallery (the link above) there are lots of “close ups” but is it something in particular you are interested in?


  • Module Developer

    @Snille Sorry didn’t see the link!! That looks awesome. The bottom is a touch menu If I"m thinking correctly?

    Please do share how you have the LED’s working for backlight… I’m very interested in that! :)


Log in to reply
 

Looks like your connection to MagicMirror Forum was lost, please wait while we try to reconnect.