

Multiple modules can be placed in the same position and are rendered in the same order they are provided within the configuration. For example, bottom_bar places the headlines centered at the bottom of the screen as shown in the screenshot. There are a total of 13 positions that MM2 divides the UI into. Modules that provide a visual aspect can be positioned in the UI using the position option. Modules are defined in the modules section of the global MM2 configuration as an array of JSON objects. Each component has its own configuration in addition to the MM2 core options that are always available. This interface is implemented with five MM2 modules: a community-contributed MQTT client for the dinner menu, along with the built-in clock, current weather, weather forecast, and news-feed modules. Here is a screenshot of the MM2 interface, taken from a mirror I built for my home (rendered in a web browser): My MM2 Interface

Everything is controlled by a JavaScript configuration file. Some modules are more complicated than others, especially ones that interact with hardware or communicate with each other more fiddling might be required in those circumstances. The installation documentation provides multiple different options for getting started, including cloning the repository, using a Docker image, or using a pre-configured Raspberry Pi OS (formerly Raspbian) image.īuilding the interface for MM2 is straightforward for many (if not most) configurations.

However, the project itself exclusively supports Raspberry Pi devices (excluding the Zero series). Since Electron is cross-platform, in theory MM2 can be run in most common environments.
RASPBERRY PI MAGIC MIRROR CODE CODE
The latest release fixed a number of bugs, added the ability to configure MM2’s log verbosity, and cleaned up several places in the code to make the project easier to maintain. The core MM2 project has 243 contributors to date the most recent was in July 2020. MM2 ships with a handful of default modules hundreds of third-party modules written by contributors are also available. The core framework provides WebSocket communication between the browser-based user interface (UI) and the backend services this framework is then used by modules to provide the functionality of the UI. The project can be divided broadly into two segments: the core framework and the modules. MM2 is built using Electron and operates on a web server and browser model. In another post Teeuw stated that MM2 was funded by a, who contracted him to build a custom mirror as the centerpiece of their new home’s living room. And while I admire this effort, I felt it needed some rethinking in order to grow beyond what was possible with the current version. In the past two years, many community members worked on expanding the MagicMirror system allowing them to customize it to their needs. MM2 was designed to replace the original code base in the announcement, Teeuw explained why: In December 2016, Teeuw announced MagicMirror 2 under the MIT license. By October 2016, The MagPi (the official Raspberry Pi Foundation magazine) had declared Teeuw’s project a first place winner in its “50 Greatest Raspberry Pi Projects” issue. With the right know-how, the surface can even become interactive through the use of hand gestures or as a touchscreen.ĭuring the first two years after Teeuw’s posts, the GitHub repository for the project had been forked over 500 times.

This information could take the form of drive times, train schedules, daily news, server loads, sports scores, or even the feed from the doorbell when someone is at the door.
RASPBERRY PI MAGIC MIRROR CODE SOFTWARE
The MM2 project provides the software to convert what would otherwise be a normal household mirror into a valuable source of information. The recent release of MagicMirror 2 (MM2) version 2.12.0 gives us an opportunity to learn more about where the project started and where it is today. Since his post, others around the world have built these devices for their home (including myself), forming both a community and an interesting open-source project. The system consisted of a Raspberry Pi and monitor running a web browser in kiosk mode, with a web server that provided a dashboard interface - all stored in a custom-built case with a one-way mirror. Back in 2014, a Raspberry Pi enthusiast by the name of Michael Teeuw shared his build of a “magic mirror” with the world in a six-part series.
