Magic Mirror addon for home assistant

Tags: #<Tag:0x00007f7390091d60> #<Tag:0x00007f7390091bf8>

Anyone there?

for magic mirror alone normally when you want to install modules you have to be in magic mirror modules directory then git clone the modules you want.

I can’t install any module with the addon , and it seems no one can help

Can you access magic mirror folder from ssh to do git clone the modules?

Furthermore, I read from the read me of this post. The way to install or use the module is

{
    "gitupdate": true,
    "npmupdate": false,
    "npminstall": false,
    "modules": [
        { "name": "MMM-OnScreenMenu", "git": "https://github.com/shbatm/MMM-OnScreenMenu" },  <--- this is the MMM-OnScreenMenu module
        { "name": "DailyXKCD", "git": "https://github.com/Blastitt/DailyXKCD.git" } <-- this is DailyXKCD modules
    ]
}

So may be you don’t need ssh at all, Just put the modules you need and the link of the module.

Yes, i read the docs, try two different modules, but cant make it to work, i guess something Is missing

@lerroy_b Hey, been out of town. Will look at it this week. That was copy pasta and did not test sorry.

@fernandex00 can you show my my configuration? All you should need to do is updated the modules with the ones you want and add to the config the modules and its settings and restart the addon.

I added the Quote of the Day module without too much trouble. You don’t need to install any other dependencies (to my knowledge). Here is my Hass.io plugin configuration and \config\magicmirror\config\config.js files. You need to edit the config.js in order to place the module somewhere on the Magic Mirror front-end.

Hass.io plugin:

{
  "gitupdate": true,
  "npmupdate": false,
  "npminstall": false,
  "modules": [
    {
      "name": "MMM-quote-of-the-day",
      "git": "https://github.com/Sispheor/MMM-quote-of-the-day.git",
      "cmd": ""
    },
    {
      "name": "MMM-pages",
      "git": "https://github.com/edward-shen/MMM-pages.git",
      "cmd": ""
    },
    {
      "name": "MMM-iFrame",
      "git": "https://github.com/alberttwong/MMM-iFrame.git",
      "cmd": ""
    },
    {
      "name": "MMM-homeassistant-sensors",
      "git": "https://github.com/leinich/MMM-homeassistant-sensors.git",
      "cmd": "cd $MIRROR_APP_PATH/modules/MMM-homeassistant-sensors && wget https://github.com/Templarian/MaterialDesign-Webfont/archive/master.zip && unzip master.zip"
    },
    {
      "name": "MMM-HASS",
      "git": "https://github.com/sytone/MMM-HASS.git",
      "cmd": ""
    }
  ]
}

config.js file:

/* Magic Mirror Config Sample
 *
 * By Michael Teeuw http://michaelteeuw.nl
 * MIT Licensed.
 *
 * For more information how you can configurate this file
 * See https://github.com/MichMich/MagicMirror#configuration
 *
 */

var config = {
	address: "", // Address to listen on, can be:
	                      // - "localhost", "127.0.0.1", "::1" to listen on loopback interface
	                      // - another specific IPv4/6 to listen on a specific interface
	                      // - "", "0.0.0.0", "::" to listen on any interface
	                      // Default, when address config is left out, is "localhost"
	port: 8080,
	ipWhitelist: [], // Set [] to allow all IP addresses
	                                                       // or add a specific IPv4 of 192.168.1.5 :
	                                                       // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"],
	                                                       // or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format :
	                                                       // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"],

	language: "en",
	timeFormat: 24,
	units: "imperial",

	modules: [
		{
			module: "alert",
		},
		{
			module: "updatenotification",
			position: "top_bar"
		},
		{
			module: "clock",
			position: "top_left"
		},
		{
			module: "MMM-quote-of-the-day",
			position: "top_left",
			config: {
				language: "en",
				updateInterval: "1d"
			}
		},		
		{
			module: "currentweather",
			position: "top_right",
			config: {
				location: "YOURCITYHERE",
				locationID: "CITYNUMBERHERE",  //ID from http://www.openweathermap.org/help/city_list.txt
				appid: "b7f4d1141e7b5d0cc4f877bff213f823"
			}
		},
		{
			module: "weatherforecast",
			position: "top_right",
			header: "Weather Forecast",
			config: {
				location: "YOURCITYHERE",
				locationID: "CITYNUMBERHERE",  //ID from http://www.openweathermap.org/help/city_list.txt
				appid: "b7f4d1141e7b5d0cc4f877bff213f823"
			}
		},	
		{
			module: "newsfeed",
			position: "bottom_bar",
			config: {
				feeds: [
					{
						title: "New York Times",
						url: "http://rss.nytimes.com/services/xml/rss/nyt/US.xml"
					},
					{
						title: "Reddit",
						url: "https://www.reddit.com/r/worldnews.rss"
					}														
				],
				showSourceTitle: true,
				showPublishDate: true
			}
		},
	]

};

/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {module.exports = config;}
2 Likes

hi, sorry for the delay,here is my config for example this 2 modules

{
      "name": "MMM-GoogleFit",
      "git": "https://github.com/amcolash/MMM-GoogleFit.git",
      "cmd": ""
    },
    {
      "name": "PushbulletNotes",
      "git": "https://github.com/maliciousbanjo/PushBulletNotes.git",
      "cmd": ""
    },

and this in the config,js

    {
    module: 'MMM-GoogleFit',
    position: 'position',
    config: {
        // If desired
    }
    },
    {
			module: "PushBulletNotes",
			header: "Notifications",
			disabled: false,
			position: "bottom_left",
			config: {
				accessToken: "my token",
				numberOfNotifications: 5,
				displayNotificationIcon: true,
				displayMessage: true,
				displayCount: true,
				fade: true,
				maxMsgCharacters: 50,
				maxHeaderCharacters: 32
			}
		},

now, i uninstall the addon, and try to install again, but i get this error
ERROR (SyncWorker_14) [hassio.docker.addon] Can't build 64f57845/aarch64-addon-magic_mirror:0.23.3: The command '/bin/sh -c git clone --depth 1 -b master https://github.com/MichMich/MagicMirror.git . && npm install --unsafe-perm' returned a non-zero code: 1

I’ve been having issues with modules that access the Hassio API not loading. MMM-homeassistant-sensors and MMM-HASS are the two that I’d like to use, but are not displaying properly. MMM-HASS worked briefly, but MMM-homeassistant-sensors has never worked.

My config.js file is largely untouched; it is set up as follows:

{
		module: "MMM-HASS",
		position: "top_right",
		config: {
				host: "hassio/homeassistant", // Special docker ha api proxy
				port: "",
				https: false,
				devices: [
				{ deviceLabel: "PiHole",
						deviceReadings: [
						{ sensor: "sensor.pihole_ads_blocked_today", icon: "wi wi-thermometer", suffix: " blocked ads"},
						{ sensor: "sensor.pihole_dns_queries_today", icon: "wi wi-humidity", suffix: " queries"}
						]
				},
				{ deviceLabel: "Weather",
						deviceReadings: [
						{ sensor: "sensor.owm_temperature", icon: "wi wi-thermometer", suffix: "°", notification: "INDOOR_TEMPERATURE"},
						{ sensor: "sensor.owm_humidity", icon: "wi wi-humidity", suffix: "%"}
						]
				},
				{ deviceLabel: "Hassio",
						deviceReadings: [
						{ sensor: "sensor.processor_use", icon: "fa fa-tachometer-alt", suffix: "%"}
						]
				}
				]
		}
}, 
{
		module: 'MMM-homeassistant-sensors',
		position: 'top_right',
		config: {
				url: 'http://hassio/homeassistant/api/states', // Special docker ha api proxy
				prettyName: false,
				stripName: false,
				values: [{
					sensor: "sensor.processor_use",
					icons: [{
							"default": "chip"
						}
					]
				}, {
					sensor: "switch.living_room_lamp",
					icons: [{
							"state_off": "lightbulb-outline",
							"state_on": "lightbulb-on-outline"
						}
					]
				}
			]
		}
}, 

My MM log gives me the following errors:

Request URL: http://hassio/homeassistant/api/states/sensor.pihole_ads_blocked_today
Request URL: http://hassio/homeassistant/api/states/sensor.pihole_dns_queries_today
Request URL: http://hassio/homeassistant/api/states/sensor.owm_temperature
Request URL: http://hassio/homeassistant/api/states/sensor.owm_humidity
Request URL: http://hassio/homeassistant/api/states/sensor.processor_use

The Hassio System Log gives me the following:

18-09-02 20:34:47 WARNING (MainThread) [hassio.api.proxy] Unknown HomeAssistant API access!

What am I missing?

Hi!
I am trying out your addon. Got everything to start without any error messages but when i open Magicmirror screen it does not show anything i only see a black screen.
I have not done anything with the config file. Do i need to do this before anything will show?

This is my config.

{
  "gitupdate": true,
  "npmupdate": false,
  "npminstall": false,
  "modules": [
    {
      "name": "MMM-OnScreenMenu",
      "git": "https://github.com/sytone/MMM-OnScreenMenu.git",
      "cmd": ""
    },
    {
      "name": "DailyXKCD",
      "git": "https://github.com/Blastitt/DailyXKCD.git",
      "cmd": ""
    },
    {
      "name": "MMM-pages",
      "git": "https://github.com/edward-shen/MMM-pages.git",
      "cmd": ""
    },
    {
      "name": "MMM-iFrame",
      "git": "https://github.com/alberttwong/MMM-iFrame.git",
      "cmd": ""
    },
    {
      "name": "MMM-homeassistant-sensors",
      "git": "https://github.com/leinich/MMM-homeassistant-sensors.git",
      "cmd": "cd $MIRROR_APP_PATH/modules/MMM-homeassistant-sensors && wget https://github.com/Templarian/MaterialDesign-Webfont/archive/master.zip && unzip master.zip"
    },
    {
      "name": "MMM-HASS",
      "git": "https://github.com/sytone/MMM-HASS.git",
      "cmd": ""
    }
  ]
}

hi, i fresh install hassOS, and get the same error, it appears that the addon is not compatible with hassos, i get this error
ERROR (SyncWorker_13) [hassio.docker.addon] Can't build 64f57845/aarch64-addon-magic_mirror:0.23.3: The command '/bin/sh -c git clone --depth 1 -b master https://github.com/MichMich/MagicMirror.git . && npm install --unsafe-perm' returned a non-zero code: 1

It is working for me on HassOS v. 1.9 and hassio v. 0.77.2. Sorry, but I’m not sure why it’s not working for you.

i tried several times trying to install, even a restore from a snapshot, not working

You need to allow local API access for the plugin. This should be automatic but there are changes to authentication in HA that I have not looked at.

Thanks for the lead. I’ll look into this.

sorry for the late response, i go back to hassio from hassos, managed to install magic mirror, add the same module quote of they day with your exact config file and in the addon, it wont appear, i think something is missing in my config

this is the config

         {
  "gitupdate": true,
  "npmupdate": false,
  "npminstall": false,
  "modules": [
    {
      "name": "MMM-OnScreenMenu",
      "git": "https://github.com/sytone/MMM-OnScreenMenu.git",
      "cmd": ""
    },
    {
      "name": "DailyXKCD",
      "git": "https://github.com/Blastitt/DailyXKCD.git",
      "cmd": ""
    },
    {
      "name": "MMM-pages",
      "git": "https://github.com/edward-shen/MMM-pages.git",
      "cmd": ""
    },
    {
      "name": "MMM-iFrame",
      "git": "https://github.com/alberttwong/MMM-iFrame.git",
      "cmd": ""
    },
    {
      "name": "MMM-homeassistant-sensors",
      "git": "https://github.com/leinich/MMM-homeassistant-sensors.git",
      "cmd": "cd $MIRROR_APP_PATH/modules/MMM-homeassistant-sensors && wget https://github.com/Templarian/MaterialDesign-Webfont/archive/master.zip && unzip master.zip"
    },
    {
      "name": "MMM-HASS",
      "git": "https://github.com/sytone/MMM-HASS.git",
      "cmd": ""
    },
    {
      "name": "MMM-GoogleFit",
      "git": "https://github.com/amcolash/MMM-GoogleFit.git",
      "cmd": ""
    },
    {
      "name": "PushBulletNotes",
      "git": "https://github.com/maliciousBanjo/PushBulletNotes.git",
      "cmd": ""
    },
    {
      "name": "internet-monitor",
      "git": "https://github.com/ronny3050/internet-monitor.git",
      "cmd": ""
    },
    {
      "name": "MMM-quote-of-the-day",
      "git": "https://github.com/Sispheor/MMM-quote-of-the-day.git",
      "cmd": ""
    }
  ]
}

this is config.js

/* Magic Mirror Config for HASS.IOSample
 *
 * Orginal by Michael Teeuw http://michaelteeuw.nl
 * MIT Licensed.
 *
 * For more information how you can configurate this file
 * See https://github.com/MichMich/MagicMirror#configuration
 *
 * When running in HASS.IO the address and ipWhitelist need to be 
 * empty and any access mcontrols need to be on the host
 * and not in the container.
 */

var config = {
    address: "", // Empty as running in a docker container.
    port: 8080, // Update port in HASS.IO configuration and not here.
    ipWhitelist: [], // Empty as in docker container, ACL from the host.

    //
    // The settings below are for a basic setup, please modifiy as needed. 
    //
    language: "en",
    timeFormat: 24,
    units: "metric",
    customCss: "css/custom.css",

    modules: [
        {
            module: "alert",
        },
        {
            module: "updatenotification",
            position: "top_bar"
        },
        {
            module: 'MMM-OnScreenMenu',
            position: 'bottom_right',
            config: {
                touchMode: true,
                enableKeyboard: true,
                menuItems: {
                    notify1: {  title: "Home", 
                        icon: "eye", 
                        notification: "PAGE_CHANGED", 
                        payload: 0 },
                    notify2: {  title: "Comics", 
                        icon: "eye", 
                        notification: "PAGE_CHANGED", 
                        payload: 1 },
                    notify3: {  title: "Home Assistant", 
                        icon: "eye", 
                        notification: "PAGE_CHANGED", 
                        payload: 2 }
                }
            }
        },
        {
            module: "MMM-pages",
            config: {
                modules: [
                        [ "calendar", "clock","weatherforecast","currentweather","newsfeed", "MMM-HASS", "MMM-homeassistant-sensors" ],
                        [ "DailyXKCD" ],
                        [ "MMM-iFrame" ],
                        [ "MMM-GoogleFit" ],
                        [ "PushBulletNotes" ]
                ],
                excludes: ["alert", "updatenotification", "MMM-OnScreenMenu"],
            }            
        },
        {
            module: 'internet-monitor',
                position: 'top_center',
                header: 'Internet Monitor',
                config:{
                    type: '',
                    maxTime: 20000,
                    updateInterval: 0,
                    verbose: false,
                    displayStrength: true,
                    displaySpeed: true,
                    strengthIconSize: 80,
                    maxGaugeScale: 100,
                },
        },    
        {
            module: 'MMM-iFrame',
            position: 'fullscreen_below',	// This can be any of the regions.
            config: {
                    url: ["http://192.168.0.19:8123"],
                    updateInterval: 60 * 60 * 1000,// Refresh every 60 minutes
                    width: "100%",
                    height: "1000px"
                }
        },
        {
            module: "DailyXKCD",
            position: 'top_left',
            config: {
                invertColors: true,
                showTitle: true,
                showAltText: false
            }            
        },
        {
            module: "clock",
            position: "top_left"
        },
        {
            module: "calendar",
            header: "Holidays",
            position: "top_left",
            config: {
                calendars: [
                    {
                        symbol: "calendar-check-o ",
                        url: "http://www.calendarlabs.com/templates/ical/US-Holidays.ics"
                    },
                    {
                        symbol: "calendar-check-o",
                        url: ""
                    },
                    {
                        symbol: "calendar-check-o",
                        url: ""
                    }
                ]
            }
        },
        {
            module: "compliments",
            position: "lower_third"
        },
        {
            module: "currentweather",
            position: "top_right",
            config: {
                location: "",
                locationID: ""
            }
        },
        {
            module: "weatherforecast",
            position: "top_right",
            header: "Weather Forecast",
            config: {
                location: "",
                locationID: """
            }
        },
        {
            module: 'MMM-GoogleFit',
            position: 'top_left',
            config: {
                // If desired
            }
        },
        {
            module: 'PushBulletNotes',
            header: 'Notifications',
            disabled: false,
            position: 'bottom_left', // Or any valid MagicMirror position.
            config: {
                accessToken: 'mytoken',
                numberOfNotifications: 5,
                displayNotificationIcon: true,
                displayMessage: true,
                displayCount: true,
                fade: true,
                maxMsgCharacters: 50,
                maxHeaderCharacters: 32
            }
        },
        {
            module: "MMM-quote-of-the-day",
            position: "lower_third",
            config: {
                language: "es",
                updateInterval: "1d"
            }
        },
        {
            module: "newsfeed",
            position: "bottom_bar",
            config: {
                feeds: [
                    {
                        title: "New York Times",
                        url: "http://www.nytimes.com/services/xml/rss/nyt/HomePage.xml",
                    },
                    {
                        title: "Los Tiempos",
                        url: "http://www.lostiempos.com/rss/ultimas"
                    },
                    {
                        title: "Arstechnica",
                        url: "http://feeds.arstechnica.com/arstechnica/index?format=xml"
                    }
                ],
                showSourceTitle: true,
                showPublishDate: true
            }
        },
        {
                module: "MMM-HASS",
                position: "top_left",
                config: {
                        host: "192.168.0.19", // Special docker ha api proxy
                        port: "8123",
                        apipassword: "pss",
                        https: false,
                        devices: [
                        { deviceLabel: "Exterior",
                                deviceReadings: [
                                { sensor: "sensor.dark_sky_temperature", icon: "wi wi-thermometer", suffix: "°"},
                                { sensor: "sensor.dark_sky_humidity", icon: "wi wi-humidity", suffix: "%"}
                                ]
                        },
                        { deviceLabel: "Interior",
                                deviceReadings: [
                                { sensor: "sensor.temperature_158d0001a2c279", icon: "wi wi-thermometer", suffix: "°", notification: "INDOOR_TEMPERATURE"},
                                { sensor: "sensor.humidity_158d0001a2c279", icon: "wi wi-humidity", suffix: "%"}
                                ]
                        },
                        { deviceLabel: "Internet",
                                deviceReadings: [
                                { sensor: "sensor.speedtest_ping", icon: "fa fa-tachometer-alt", suffix: ""}
                                ]
                        }
                        ]
                  }
        },        
        {
		    module: 'MMM-homeassistant-sensors',
		    position: 'top_left',
		    config: {
			    url: 'http://192.168.0.19:8123/api/states?api_password=pass', // Special docker ha api proxy
			    prettyName: false,
			    stripName: false,
			    values: [{
					sensor: "sensor.processor_use",
					icons: [{
							"default": "chip"
						}
					]
				}, {
					sensor: "binary_sensor.motion_sensor_158d00014dc0e8",
					icons: [{
							"state_off": "run",
							"state_on": "run-fast"
						}
					]
				}, {
					sensor: "switch.phone",
					icons: [{
							"state_off": "lightbulb-outline",
							"state_on": "lightbulb-on-outline"
						}
					]
				}, {
					sensor: "switch.tablet",
					icons: [{
							"state_off": "lightbulb-outline",
							"state_on": "lightbulb-on-outline"
						}
					]
				},  {
                    sensor: "sensor.dark_sky_temperature",
					icons: [{
							"default": "weather-fog"
						}
                    ]
                },  {
                    sensor: "sensor.temperature_158d0001a2c279",
					icons: [{
							"default": "oil-temperature"
						}
                    ]
                },  {
                    sensor: "sensor.humidity_158d0001a2c279",
					icons: [{
							"default": "weather-windy"
						}
                    ]
                }
			]

		}
	},
          
    ]

};

/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {module.exports = config;}

I need some help. The addon is installed correctly and I can see it in a browser. But how can I display it on the same raspberry pi with hassio? When I plug in the monitor and switch to HDMI it doesnt show.

Im going bananas… cant figure out what “Special docker ha api proxy”-URL to use

    {
            module: "MMM-HASS",
            position: "top_left",
            config: {
                    host: "what goes here?", // Special docker ha api proxy
                    port: "and here?",
                    https: false,
                    devices: [
                    { deviceLabel: "Exterior",
                            deviceReadings: [
                            { sensor: "sensor.medel_temp_ute", icon: "wi wi-thermometer", suffix: "°"},
                            { sensor: "sensor.weather_humidity", icon: "wi wi-humidity", suffix: "%"}
                            ]
                    },
                    { deviceLabel: "Interior",
                            deviceReadings: [
                            { sensor: "sensor.kitchen_temperature", icon: "wi wi-thermometer", suffix: "°", notification: "INDOOR_TEMPERATURE"},
                            { sensor: "sensor.kitchen_temperature", icon: "wi wi-humidity", suffix: "%"} 
                            ]
                    }
                    ]
              }
    },        
    {
	    module: 'MMM-homeassistant-sensors',
	    position: 'top_left',
	    config: {
		    url: 'and also here?', // Special docker ha api proxy
		    prettyName: false,
		    stripName: false,
		    values: [{
				sensor: "sensor.processor_use",
				icons: [{
						"default": "chip"
					}
				]
			}

image

 {
					sensor: "sensor.kitchen_motion_sensor",
					icons: [{
							"state_off": "run",
							"state_on": "run-fast"
						}
					]
				}, {
					sensor: "light.bedroom",
					icons: [{
							"state_off": "lightbulb-outline",
							"state_on": "lightbulb-on-outline"
						}
					]
				}, {
					sensor: "light.dining",
					icons: [{
							"state_off": "lightbulb-outline",
							"state_on": "lightbulb-on-outline"
						}
					]
				}, {
					sensor: "light.guest_room",
					icons: [{
							"state_off": "lightbulb-outline",
							"state_on": "lightbulb-on-outline"
						}
					]
				}, {
					sensor: "light.hallway",
					icons: [{
							"state_off": "lightbulb-outline",
							"state_on": "lightbulb-on-outline"
						}
					]
				}, {
					sensor: "light.kitchen",
					icons: [{
							"state_off": "lightbulb-outline",
							"state_on": "lightbulb-on-outline"
						}
					]
				}, {
					sensor: "light.living_room",
					icons: [{
							"state_off": "lightbulb-outline",
							"state_on": "lightbulb-on-outline"
						}
					]
				}, {
					sensor: "light.sink",
					icons: [{
							"state_off": "lightbulb-outline",
							"state_on": "lightbulb-on-outline"
						}
					]
				}
			]

		}
	}        
    ]

};

/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {module.exports = config;}

I struggle a lot in the end managed to do it, in mmm-hass the host in my case Is the ip of the rbp 192.168.0.7 the port Is 8123 of home assistant and in the mmm-homeassistant-the URL Is the complete path http://192.168.0.7:8123 hope it helps