MagicMirror² v2.5.0 is available! For more information about this release, check out this topic.

Google Home Hub

  • Following the recent introduction of the Google Home Hub I was wondering if something similar could be achieved via Magic Mirror. As I have a Raspberry Pi 3B and Raspberry Pi Touchscreen with enclosure lying around the real effort would be in setting up and configuration of Magic Mirror.

    So I started putting the hardware together and installing a fresh Rasbian STRETCH (with Desktop) OS on it. I hooked it up to my Wifi network and enabled ssh.

    After doing the usual raspi-config I added lcd_rotate=2 to the config.txt to rotate the screen (and touchpoints)

    Then I installed MagicMirror and made it autostart using pm2. So I now have a default MagicMirror running on a 7" touchscreen in a enclosure. So far so good…

    Next steps would be to:

    • Configuration of my own modules in Magic Mirror
    • Setup multiple “slides” with modules
    • Find a way to show a different screen (with Google Photos backgroud, date & time and outside temperature) as a MagicMirror screensaver
    • Use the OS screensaver to turn the screen off after x minutes/hours (or more something like the Toon dim function)
    • Abandon the project halfway to start another one
    • Theme the interface
    • Turn off the OS screensaver when movement is detected
    • Show data, scenes and switches from domoticz and Home Assistant
    • I could implement Google Assistant (I don’t really care for voice assistants)

  • I decided to setup the “screensaver” set of modules first:

    alt text

    I managed to get the MMM-GooglePhotos module running, but somehow the photo overlaps doesn’t use the whole screen.
    To solve this I set the margin in main.css to 0 and added a padding of 30 pixels:

    margin: 0;
    padding: 30px;

    I also adjusted the height and width calculation:

    height: calc(100% - 90px);
    width: calc(100% - 90px);

    After that I setup the Clock to only show the hours and minutes in the lower left corner.

    showDate: false,
    displaySeconds: false

    Below that I put the CurrentWeather Module, that will only show the rounded outside temperature.

    roundTemp: true,
    onlyTemp: true

    The weather icon is now shown in grey, maybe I will add an additional color per icon later on.


  • Module Developer

    I use a 7" touchscreen Pi as a “desk assistant” running MagicMirror. I keep a scrolling calendar for the day on one half, and I rotate the other half through a bunch of panels using mmm-carousel.

    You can simulate a lot of what this Google device does, however, it’s likely to be quite hard to get the touchscreen working in a similar way. Swiping, tapping, etc, bringing up a keyboard - these are all things Android does very seamlessly and easily. MagicMirror just doesn’t have the support for those, unfortunately.

    I spent some time trying to get some gestures to work - I wanted a “double-tap” to turn on and off the screen - but wasn’t really able to make much progress because the basic support for it in electron just wasn’t there

    But good luck on this project, I think this is a worthwhile goal and I’ll be following your progress

  • thx @emlowe for your feedback

    I must admit that I hesitated going forward with this project, but I realised I’m not in to make a perfect Google Home Hub replica. I want to find out how close I can get with the features I want.

    The carousel seems similar to what Google does when you ask something. I also looked into the MMM-Page-Selector module because it seems to be a good way to define the different screens. It also seems to be working together with the MMM-Voice-Commands module.

    For now I want to make two screens working, one screensaver screen with the Google Photo background, clock and temperature. And one with some information, just to have a proof of concept.