A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.
  • Error after latest MM Update

    Solved
    3
    0 Votes
    3 Posts
    976 Views
    V
    Thanks a lot Fixed the prob
  • Optimize position in "bottom right"

    Unsolved
    2
    1
    0 Votes
    2 Posts
    954 Views
    Mykle1M
    @chris1971 Please try in your custom.css file and adjust accordingly .MMM-TextClock { margin-bottom: -50px; }
  • MMM-NOAA3 - Font size

    Unsolved
    8
    0 Votes
    8 Posts
    3k Views
    MedoM
    @myself: ;-) Found the solution by myself. I had the “.xsmall” part copied over from the original css file in my custom.css [image: 1552067080889-b2e5d39d-c6ac-4949-acea-854b9ff07e5e-grafik.png] This one is used to scale the font size…
  • MMM-Hotword being on all the time (also MMM-AssistantMk2)

    Unsolved
    5
    0 Votes
    5 Posts
    3k Views
    B
    Hi @CarstenD Can you please tel me what does this part of your config do? triggers:[ { trigger: "HOTWORD_DETECTED", fires: [ { fire:"HOTWORD_PAUSE", }, { fire:"ASSISTANT_ACTIVATE", delay: 200, payload: function(payload) { return { "profile": payload.hotword } Thanks.
  • Create divs dynamically and add it to carousal

    Unsolved
    4
    0 Votes
    4 Posts
    1k Views
    S
    @sunnykeerthi you need to do the same for all the content… sort of reverse of what you are doing… the content is not going to be placed in the dom if you don’t pass it back to MM. (on the return) wrapperEl.appendChild(container); last return wrapperE1; setTimeout(this.showSlides(container, counter), 2000); // Change image every 2 seconds when the timer goes off, the context of the pgm is unknown… its asyncronous… it doesn’t KNOW what container and counter are… these were built on the program stack, which has long since gone away…(2 seconds ago)… the model for MM is you call this.updateDom(optional_delay) and later MM will call getDom() to gte the Modules contribution to the dom… that contribution is not IN the dom until sometime after the getDom() rourine returns the topmost element of that contribution tree. only getDom() should provide content… var slideIndex = -1; getDom: function () { console.log('get dom'); // note that you are rebuilding your entire dom contribution EVERY time getDom is called // the prior content is destroyed (yanked out of dom), and this content is injected in its place // if all you are doing on each cycle thru is to chaneg the visibility of one element // then u should build it once, and use it later var wrapperEl = document.createElement("div"); var container = document.createElement("div"); container.className = "slideshow-container"; var div1 = document.createElement("div"); div1.className = "mySlides fade"; var img1 = document.createElement("img"); img1.src = "https://www.w3schools.com/howto/img_nature_wide.jpg"; div1.appendChild(img1); container.appendChild(div1); var div2 = document.createElement("div"); div2.className = "mySlides fade"; var img2 = document.createElement("img"); img2.src = "https://www.w3schools.com/howto/img_mountains_wide.jpg"; div2.appendChild(img2); container.appendChild(div2); var div3 = document.createElement("div"); div3.className = "mySlides fade"; var img3 = document.createElement("img"); img3.src = "https://www.w3schools.com/howto/img_snow_wide.jpg"; div3.appendChild(img3); container.appendChild(div3); wrapperEl.appendChild(container); // indicate which element above is visible // content not yet in dom this.showSlides(container); Log.log("slide payload >> "); // tell MM to insert THIS content where our contribution goes into the dom // if there was other content there, destroy it return wrapperEl; }, // only called from getDom() showSlides: function (container) { var slides = container.childNodes; console.log("ClassName " + slides.length); // where did this come from // if in your module contribution, it will not // exist in dom until AFTER getDom() returns // you are searching the DOM (document.) // it is not used here var dots = document.getElementsByClassName("dot"); // make all slides hidden (on return from getDom()) for (var i = 0; i < slides.length; i++) { slides[i].style.display = "none"; } // show next slide in list slideIndex++; // if index more than slides available, start at first again if (slideIndex > slides.length) { slideIndex = 0 } // set selected slide visible slides[slideIndex ].style.display = "block"; // indicate we should force getDom() to be called in 2 seconds // which will rebuild the dom contribution again setTimeout(this.updateDom, 2000); // Change image every 2 seconds },
  • Noob need help

    Solved
    11
    0 Votes
    11 Posts
    4k Views
    R
    @Muzziboy Great that it worked out! :)
  • Backup Magic Mirror..?

    backup back up
    3
    1 Votes
    3 Posts
    2k Views
    bheplerB
    @roxx - You can always create an ISO file of your SD card. You can restore from that if your SD card becomes corrupted. I find that copying the config.js file is 90% of the way there. It will list the modules that you have installed, which you can download fresh from GitHub with little problem. The config file will contain the API keys, so that’s the part that individual to your mirror in most cases. Having a copy of the Raspbian image on hand is probably another 5%. Spinning up a new Pi with a given config.js isn’t that hard. Flash the Raspian image to SD card and boot to it. Remove unwanted features (Wolfram Alpha, Minecraft, LibreOffice, etc.) Update, upgrade, distro upgrade. Install Node, Electron & XScreenSaver. Configure screensaver to never save the screen. Clone Magic Mirror & npm install Restoreconfig.js from backup. Clone & npm install the modules listed in the config.js file. enjoy!
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    3 Views
  • Multiple Calendars

    Unsolved
    3
    0 Votes
    3 Posts
    2k Views
    M
    Nilnik, I did sort it out, I ended up putting Birthdays and Holidays in there own section, it now displays birthdays above the holidays. My only issue now is its only showing 1 persons birthday when I know there are many within the next month. Funny the one that is showing is 5 months from now. Thanks for the quick reply. MW
  • 0 Votes
    5 Posts
    1k Views
    ?
    @jwashington Well, very hard to catch your points (Sorry, for my poor English), MMM-AssistantMk2 and MMM-Hotword couldn’t be the solution of your issue? MMM-AssistantMk2 is using service version to output visual response And MMM-Hotword is the awakener with Snowboy. Two modules are well combined and implemented into MM system directly. So you can control MM or its modules with these modules. (Of course some HARD configuration will be needed. and installation is not so easy.) But the goal of the module is not becoming alternative Google Home device. it can gives a voice command feature for controlling MM.
  • This topic is deleted!

    Unsolved
    1
    0 Votes
    1 Posts
    1 Views
  • Problem with pm2 (package.json) after installing the first module

    Unsolved
    1
    0 Votes
    1 Posts
    1k Views
    K
    Hello, currently I am building a new MM and have at the beginning unusual problems. I installed the MM blank and take my old config.js from my old MM. After that the MM starts normally via pm2. As soon as I installed the first module, the MM does not start anymore via pm2. The pm2-Logs are pi@raspberrypi:~ $ pm2 logs MagicMirror [TAILING] Tailing last 15 lines for [MagicMirror] process (change the value with --lines option) /home/pi/.pm2/logs/MagicMirror-out.log last 15 lines: 0|MagicMir | All module helpers loaded. 0|MagicMir | Starting server on port 8080 ... 0|MagicMir | Server started ... 0|MagicMir | Connecting socket for: calendar 0|MagicMir | Starting node helper for: calendar 0|MagicMir | Connecting socket for: newsfeed 0|MagicMir | Starting module: newsfeed 0|MagicMir | Sockets connected & modules started ... 0|MagicMir | Launching application. 0|MagicMir | Create new calendar fetcher for url: https://calendar.google.com/…/…/private-xxxxxxxxxx/basic.ics - Interval: 300000 0|MagicMir | Create new calendar fetcher for url: https://calendar.google.com/…/…/private-xxxxxxxxxx/basic.ics - Interval: 300000 0|MagicMir | Create new news fetcher for url: http://www.tagesschau.de/xml/rss2 - Interval: 300000 0|MagicMir | Shutting down server... 0|MagicMir | Stopping module helper: calendar 0|MagicMir | Stopping module helper: newsfeed /home/pi/.pm2/logs/MagicMirror-error.log last 15 lines: 0|MagicMir | { Error: ENOENT: no such file or directory, open 'package.json' 0|MagicMir | at Object.fs.openSync (fs.js:660:18) 0|MagicMir | at Object.fs.readFileSync (fs.js:565:33) 0|MagicMir | at Object.<anonymous> (/home/pi/MagicMirror/js/app.js:15:32) 0|MagicMir | at Module._compile (internal/modules/cjs/loader.js:654:30) 0|MagicMir | at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10) 0|MagicMir | at Module.load (internal/modules/cjs/loader.js:566:32) 0|MagicMir | at tryModuleLoad (internal/modules/cjs/loader.js:506:12) 0|MagicMir | at Function.Module._load (internal/modules/cjs/loader.js:498:3) 0|MagicMir | at Module.require (internal/modules/cjs/loader.js:598:17) 0|MagicMir | at require (internal/modules/cjs/helpers.js:11:18) 0|MagicMir | errno: -2, 0|MagicMir | code: 'ENOENT', 0|MagicMir | syscall: 'open', 0|MagicMir | path: 'package.json' } When the MM start via pm2 the package.json file seems to be corrupt. When I start with DISPLAY =: 0 it works. I would be grateful if someone could help me. Thanks in advance.
  • PIR Sensor Install Problems

    Unsolved
    4
    0 Votes
    4 Posts
    1k Views
    S
    @anhanyoung move (mv) moves single instance around Copy(cp) make another instance in another location. Depends on what u want to do.
  • Noob need support for MM2 Update to 2.2.2

    Solved
    9
    0 Votes
    9 Posts
    2k Views
    Mykle1M
    @chris1971 said in Noob need support for MM2 Update to 2.2.2: How can I mark to solved? Sorry…? Click the three vertical dots to the right of your post
  • No sound when notification is arriving pushBulletNotification..

    Unsolved
    2
    0 Votes
    2 Posts
    1k Views
    B
    Hi sollekram, A little late reply, but maybe it still helps you out. You might want to take a look at this github issue: No sound while i got new notifications and maybe you will find a solution for your problem there. This module is only using the access token to communicate with the PushBullet API. This module and configuration is running on your Magic Mirror which is not publicly accessible. If your PushBullet access token is compromised someone can pull your notifications, if you think this is the case hit the button ‘Reset All Access Tokens’ on the PushBullet website (https://www.pushbullet.com/#settings) after login and create a new access token. Bas
  • MMM-EmbedYoutube autoplay problem

    Unsolved
    3
    0 Votes
    3 Posts
    1k Views
    A
    @yawns Already tried it with same results. I changed the video id and it works now but if I change autoplay to true it starts again while the module is hidden by MMM-Pages. I also have MMM-RadioDe installed with autoplay: true, it start only when I do to page I have added it. If it is hidden it doesn’t play.
  • How to prevent calendar from showing declined events

    Unsolved
    4
    0 Votes
    4 Posts
    1k Views
    S
    @mlcampbe I have responded
  • Current weather

    Unsolved
    2
    0 Votes
    2 Posts
    743 Views
    S
    Its back must of wanted me to have a coffee?!
  • Can't connect to MMM-Admin-Interface

    Unsolved
    2
    0 Votes
    2 Posts
    964 Views
    Mykle1M
    @HCoyle said in Can't connect to MMM-Admin-Interface: address: [“0.0.0.0”], Try address: "0.0.0.0", Note: Only one entry for address. It appears you have two.
  • After update to Mirror to 2.1.3 - no working Whitlist

    Solved
    33
    0 Votes
    33 Posts
    28k Views
    R
    Just came across this post while troubleshooting this issue. I got it working by converting the ip range to CIDR format by using this page as mentioned in older posts. I added these ip’s to the whitelist (without the ::ffff: !) and it worked. It’s also important to set the address value to “0.0.0.0”