MagicMirror² is an open source modular smart mirror platform

Overview

MagicMirror²: The open source modular smart mirror platform.

License GitHub Actions Build Status CodeCov Status

MagicMirror² is an open source modular smart mirror platform. With a growing list of installable modules, the MagicMirror² allows you to convert your hallway or bathroom mirror into your personal assistant. MagicMirror² is built by the creator of the original MagicMirror with the incredible help of a growing community of contributors.

MagicMirror² focuses on a modular plugin system and uses Electron as an application wrapper. So no more web server or browser installs necessary!

Documentation

For the full documentation including installation instructions, please visit our dedicated documentation website: https://docs.magicmirror.builders.

Links

Contributing Guidelines

Contributions of all kinds are welcome, not only in the form of code but also with regards to

  • bug reports
  • documentation
  • translations

For the full contribution guidelines, check out: https://docs.magicmirror.builders/getting-started/contributing.html

Enjoying MagicMirror? Consider a donation!

MagicMirror² is opensource and free. That doesn't mean we don't need any money.

Please consider a donation to help us cover the ongoing costs like webservers and email services. If we receive enough donations we might even be able to free up some working hours and spend some extra time improving the MagicMirror² core.

To donate, please follow this link.

MagPi Top 50

Comments
  • New Module System Discussion - Please contribute.

    New Module System Discussion - Please contribute.

    Maybe it's a good idea to discuss the new Module System before we writeout the API.

    @paviro, I noticed you've contributed. Thanks for this. I really appreciate your help! Just a few questions though:

    The functions you proposed, are those method of a module class? I can't really wrap my head around how this would work, could you elaborate?

    Also, I think the added regions are a bit unnecessary. In most cases you can just add content in one of the corners (the content will stack) or align right or left in the upper third, center or lower third. I think we should try to keep the layout simple.

    Aslo, what do you guys think about using a system like vue.js? I'm not a big fan of jQuery, and prefer a mvvm model. But this might make it to difficult for most users to contribute.

    EDIT 2016/3/23: First steps in the development are made. See: https://github.com/MichMich/MagicMirror/issues/80#issuecomment-200411278

    question 
    opened by MichMich 115
  • Discussion: Simplify the core.

    Discussion: Simplify the core.

    Since I open sourced MagicMirror², I have received many awesome pull requests adding a lot of nice features to the Magic Mirror core. I am very grateful for that! Unfortunately, this comes with a downside: the application gets a lot more complicated.

    The reason I open sourced MagicMirror² was because it is a perfect starter project for newcomers. Getting their feet wet in javascript and software development in general (see manifesto). With the current complexity, this project is slowly moving away from this.

    I also noted that the amount of bash code is increasing, while the main intention of version 2 was to try to do everything in 1 program language: javascript. (Opposed to v1, which was a combination of languages like PHP, Javascript en in some cases Python).

    Looking at other OS projects, there are some beautiful examples on how the project can be focused at what it does best. One example I like to mention is OctoPrint/OctoPi. Software to control your 3D printer. While @foosel does a great job to maintain the core application (OctoPrint), the packaged Rasberry Pi image (OctoPi) is maintained in a different repo by a different user (@GuySoft).

    If we use that same approach there are a lot of things we can take out the core repo, and let other users start their own repo's to accomplish the same features while separating concerns.

    In my opinion, the following parts could initially be taken out of the core repo, and taken over by other repo's:

    • Installer script
    • Update script
    • Start Script
    • PM2 integration
    • Docker Package

    Of course, we won't take out these features as long as no other solutions are in place. As an install and update replacement, we need to write a good manual.

    The added benefit of this approach is that the release schedule of the above features is no longer tied to the quarterly release schedule of MagicMirror².

    With the new approach I think it's good to set a few guidelines to which the future versions should adhere:

    • Javascript, HTML, CSS only.
    • No compile scripts (ie. webpack, sass, less)
    • Focus (only) on Raspberry support.
    • Install/Run/Update using default commands: npm install, git pull, etc. Which will help people to learn and understand these commands.

    Since this project would have never been such a success without the help of the community, I want to discuss this approach before taking any action. So I'm looking forward to your input.

    Please let me know what you think with an open mind.

    Thanks! Michael.

    EDIT: Provisional TO DO List

    Based on the discussion below, I made a provisional to do list which could be the base for the simplification of this repository. The to do list is not set in stone, and could change based on the feedback in this issue.

    • [X] Remove installer scripts (make sure an external repository is available as a replacement).
    • [X] Remove update scripts.
    • [X] Remove start script.
    • [X] Separate Client & Serveronly commands as regular npm commands: npm run start & npm run server.
    • [X] Cleanup folders (remove /installers & /splashscreen and remove all root .sh files). Where necessary, replace shell code with javascript code.
    • [ ] Implement handler for incompatible modules.
    • [X] Create separate documentation site and repo.
    • [x] Improve documentation on how to install and update. This should reflect the procedure without an installer/updater, but it should also mention the available third party installers/updaters.
    • [X] Make an overview of the hard- and software requirements.
    • [ ] Make an overview of the supported (tested) hardware and operating systems.

    Feel free to share your ideas and feedback!

    discussion 
    opened by MichMich 85
  • this.sendSocketNotification is not a function

    this.sendSocketNotification is not a function

    I have just about finished my Traffic module to get current commute time, but I'm having difficulty sending a socket notification other than the initial one in my start function. The project can be found here and the issue lies in MMM-Traffic.js.

    I send a socket notification in start which queries the google maps api in node_helper.js then sends a socket notification back to MMM-Traffic.js which will then call updateDom(). I'm using updateCommute() as a proxy for setInterval that will send the initial socket notification at the user defined interval, but I am getting an error saying that this.sendSocketNotification is not a function. Any ideas?

    bug 
    opened by saml-dev 81
  • MagicMirror Forum

    MagicMirror Forum

    @MichMich and I are currently setting up a forum for the MagicMirror community. What kind of categories would you guys like to see? Currently there are: sdsd

    question 
    opened by paviro 75
  • Electron not starting on Raspberry Pi

    Electron not starting on Raspberry Pi

    I just installed a Raspberry Pi with a clean Jessie installation to give MM2 a try. Unfortunately, the app will not start, and doesn't give any errors of feedback.

    See image below. Any ideas, @paviro & @nhubbard?

    screen shot 2016-04-06 at 16 57 26

    bug 
    opened by MichMich 73
  • Error in npm install while installing vendor files please help

    Error in npm install while installing vendor files please help

    pi@raspberrypi:~/MagicMirror $ npm install npm WARN deprecated [email protected]: Deprecated because Grunt is practically unmaintained. Move on to something better. This package will continue to work with Grunt v1, but it will not receive any updates. npm WARN deprecated @types/[email protected]: This is a stub types definition. vfile-message provides its own type definitions, so you do not need this installed.

    [email protected] install /home/pi/MagicMirror/node_modules/electron-chromedriver node ./download-chromedriver.js

    [email protected] postinstall /home/pi/MagicMirror/node_modules/core-js node -e "try{require('./postinstall')}catch(e){}"

    Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!

    The project needs your help! Please consider supporting of core-js on Open Collective or Patreon:

    https://opencollective.com/core-js https://www.patreon.com/zloirock

    Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)

    [email protected] postinstall /home/pi/MagicMirror/node_modules/console-stamp node ./msg.js

    Attention Console-stamp version 3.0.0 Release Candidate is out. Install by using the tag '@next'. NB: Breaking changes. For more details goto: https://www.npmjs.com/package/console-stamp/v/next

    [email protected] postinstall /home/pi/MagicMirror/node_modules/electron node install.js

    [email protected] install /home/pi/MagicMirror echo "Installing vendor files ... " && cd vendor && npm install --loglevel=error

    Installing vendor files ...

    npm ERR! Unexpected end of JSON input while parsing near '...5vp6b8jEE6P9iUqepRgrK'

    npm ERR! A complete log of this run can be found in: npm ERR! /home/pi/.npm/_logs/2020-04-03T14_15_02_623Z-debug.log npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! [email protected] install: echo "Installing vendor files ... npm ERR! " && cd vendor && npm install --loglevel=error npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the [email protected] install script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

    npm ERR! A complete log of this run can be found in: npm ERR! /home/pi/.npm/_logs/2020-04-03T14_15_02_963Z-debug.log

    please help i am new to this

    wontfix 
    opened by PoojaAmin29 70
  • Timeshift calendar issue / Recurring Google Calendar events for times when UTC date differ from local date appear at wrong time in MM

    Timeshift calendar issue / Recurring Google Calendar events for times when UTC date differ from local date appear at wrong time in MM

    Please only submit reproducible issues.

    If you're not sure if it's a real bug or if it's just you, please open a topic on the forum: https://forum.magicmirror.builders/category/15/bug-hunt Problems installing or configuring your MagicMirror? Check out: https://forum.magicmirror.builders/category/10/troubleshooting

    When submitting a new issue, please supply the following information:

    Platform: RP3B+

    Node Version: 10.17.0

    MagicMirror Version: v2.9

    Description: Since the time shift in Germany last sunday reocurring events are in the "old time zone (-1h) in Google Calendar they are displayed correctly but on the mirror itself they are displayed wrong.

    Steps to Reproduce: make new calendar with reocurring event (not whole day event) and try to display it

    Expected Results: the right time

    Actual Results: the time -1h

    Configuration: -

    Do you have any idea how to fix this? The timezones on the raspberry itself is correct

    bug PR Welcome 
    opened by simphide 65
  • private Google ical calendar

    private Google ical calendar

    Having a little issue with loading my Google calendar, I can load my office 365 calendar just fine but for some reason the Google private ical one refuses to load.

    {
                        module: 'calendar',
                        header: 'Calendar',
                        position: 'top_left',
                        config: {
                                calendars: [
                                        {
                                                symbol: 'calendar-check-o',
                                                url: 'https://calendar.google.com/calendar/ical/username%40gmail.com/private-string/basic.ics'
                                        },
                                        {
                                                symbol: 'calendar',
                                                url: 'https://outlook.office365.com/owa/calendar/[email protected]/string/calendar.ics'
                                        },
                                ]
                        }
                },
    

    With the above code (without the obfuscation) only the office365 calendar will display, if I remove the office365 calendar then the google calendar only displays "loading events..."

    bug 
    opened by viersa 62
  • Pm2 Log Errors - How can i solve these errors ? Screen goes black after a while

    Pm2 Log Errors - How can i solve these errors ? Screen goes black after a while

    /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [28.12.2021 13:46.51.216] [WARN] You're using a full whitelist configuration to allow for all IPs Tue, 28 Dec 2021 12:46:51 GMT express deprecated res.send(status): Use res.sendStatus(status) instead at modules/MMM-Remote-Control/node_helper.js:138:25 /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [28.12.2021 13:48.37.248] [ERROR] WARNING! Could not validate config file. Starting with default configuration. Please correct syntax errors at or above this line: /home/pi/MagicMirror/config/config.js:90  {  ^

    SyntaxError: Unexpected token '{'  at wrapSafe (internal/modules/cjs/loader.js:986:16)  at Module._compile (internal/modules/cjs/loader.js:1034:27)  at Object.Module._extensions..js (internal/modules/cjs/loader.js:1108:10)  at Module.load (internal/modules/cjs/loader.js:935:32)  at Module._load (internal/modules/cjs/loader.js:776:14)  at Function.f._load (electron/js2c/asar_bundle.js:5:12913)  at Module.require (internal/modules/cjs/loader.js:959:19)  at require (internal/modules/cjs/helpers.js:88:18)  at loadConfig (/home/pi/MagicMirror/js/app.js:69:14)  at App.start (/home/pi/MagicMirror/js/app.js:212:3) /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [28.12.2021 13:50.25.169] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [28.12.2021 13:52.34.401] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [28.12.2021 13:54.24.598] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [28.12.2021 13:56.15.696] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [28.12.2021 13:57.12.836] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [28.12.2021 14:03.35.703] [WARN] You're using a full whitelist configuration to allow for all IPs [28.12.2021 14:12.06.071] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [28.12.2021 14:19.11.743] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [28.12.2021 14:21.01.131] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [28.12.2021 14:22.10.511] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [28.12.2021 14:23.36.657] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [28.12.2021 14:25.07.967] [ERROR] WARNING! Could not validate config file. Starting with default configuration. Please correct syntax errors at or above this line: /home/pi/MagicMirror/config/config.js:143 { ^

    SyntaxError: Unexpected token '{'  at wrapSafe (internal/modules/cjs/loader.js:986:16)  at Module._compile (internal/modules/cjs/loader.js:1034:27)  at Object.Module._extensions..js (internal/modules/cjs/loader.js:1108:10)  at Module.load (internal/modules/cjs/loader.js:935:32)  at Module._load (internal/modules/cjs/loader.js:776:14)  at Function.f._load (electron/js2c/asar_bundle.js:5:12913)  at Module.require (internal/modules/cjs/loader.js:959:19)  at require (internal/modules/cjs/helpers.js:88:18)  at loadConfig (/home/pi/MagicMirror/js/app.js:69:14)  at App.start (/home/pi/MagicMirror/js/app.js:212:3) /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [28.12.2021 14:26.33.999] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [28.12.2021 14:28.47.516] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [28.12.2021 14:29.16.076] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [28.12.2021 14:31.13.222] [WARN] You're using a full whitelist configuration to allow for all IPs Gdk-Message: 23:00:00.970: electron: Fatal IO error 11 (Die Ressource ist zur Zeit nicht verfügbar) on X server :0.

    XIO: fatal IO error 62 (Der virtuelle Zeitnehmer ist abgelaufen) on X server ":0" after 11902688 requests (11902688 known processed) with 0 events remaining. [28.12.2021 23:02.28.676] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGSEGV [28.12.2021 23:02.36.709] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGSEGV [28.12.2021 23:02.45.547] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGSEGV [28.12.2021 23:02.52.936] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGSEGV [28.12.2021 23:03.11.406] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGSEGV [28.12.2021 23:03.21.152] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGSEGV [28.12.2021 23:03.29.015] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGSEGV [28.12.2021 23:03.38.495] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGSEGV [28.12.2021 23:03.43.583] [WARN] You're using a full whitelist configuration to allow for all IPs Invalid MIT-MAGIC-COOKIE-1 key/home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGSEGV [28.12.2021 23:04.08.158] [WARN] You're using a full whitelist configuration to allow for all IPs [29.12.2021 06:27.59.070] [ERROR] Calendar Error. Could not fetch calendar: http://p12-caldav.icloud.com/published/2/MTk3NDg4NzIwOTE5NzQ4OJen2vZPDPO6ZjKDI5IIr79mZRTz4px5MNIbzMHGisQCPVn-bb7-rMKJRQXT-HvKaLs2H8xYBU6yq8si1DE_1Po Error: Internal Server Error at NodeHelper.checkFetchStatus (/home/pi/MagicMirror/js/node_helper.js:121:9) at runMicrotasks () at processTicksAndRejections (internal/process/task_queues.js:93:5) [29.12.2021 11:49.56.931] [ERROR] Calendar Error. Could not fetch calendar: http://p12-caldav.icloud.com/published/2/MTk3NDg4NzIwOTE5NzQ4OJen2vZPDPO6ZjKDI5IIr79mZRTz4px5MNIbzMHGisQCPVn-bb7-rMKJRQXT-HvKaLs2H8xYBU6yq8si1DE_1Po Error: Bad Request at NodeHelper.checkFetchStatus (/home/pi/MagicMirror/js/node_helper.js:121:9) at runMicrotasks () at processTicksAndRejections (internal/process/task_queues.js:93:5) /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [29.12.2021 15:28.38.305] [WARN] You're using a full whitelist configuration to allow for all IPs Gdk-Message: 16:22:09.780: electron: Fatal IO error 11 (Die Ressource ist zur Zeit nicht verfügbar) on X server :0.

    [29.12.2021 16:23.10.686] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [29.12.2021 16:23.58.486] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [29.12.2021 16:24.22.567] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [29.12.2021 16:32.14.842] [WARN] You're using a full whitelist configuration to allow for all IPs [29.12.2021 16:37.41.656] [WARN] You're using a full whitelist configuration to allow for all IPs XIO: fatal IO error 11 (Die Ressource ist zur Zeit nicht verfügbar) on X server ":0" after 41529100 requests (41529100 known processed) with 0 events remaining. Gdk-Message: 22:25:08.953: electron: Fatal IO error 11 (Die Ressource ist zur Zeit nicht verfügbar) on X server :0.

    /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [30.12.2021 22:27.46.806] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [30.12.2021 22:28.24.729] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [30.12.2021 22:28.34.006] [WARN] You're using a full whitelist configuration to allow for all IPs /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [30.12.2021 22:33.18.173] [WARN] You're using a full whitelist configuration to allow for all IPs

    <--- Last few GCs --->

    [3787:0x6103000] 101962762 ms: Mark-sweep 876.8 (983.0) -> 870.2 (982.8) MB, 3464.2 / 40.3 ms (average mu = 0.990, current mu = 0.993) allocation failure scavenge might not succeed [3787:0x6103000] 101966444 ms: Scavenge 871.4 (982.8) -> 870.5 (982.8) MB, 26.0 / 0.1 ms (average mu = 0.990, current mu = 0.993) allocation failure [3787:0x6103000] 101974528 ms: Scavenge 871.4 (982.8) -> 870.5 (983.8) MB, 7.5 / 0.1 ms (average mu = 0.990, current mu = 0.993) allocation failure

    <--- JS stacktrace --->

    /home/pi/MagicMirror/node_modules/electron/dist/electron exited with signal SIGINT [01.01.2022 11:23.07.634] [WARN] You're using a full whitelist configuration to allow for all IPs

    <--- Last few GCs --->

    [3302:0x75aa000] 105228928 ms: Mark-sweep 876.4 (983.5) -> 875.0 (983.5) MB, 3956.5 / 0.6 ms (average mu = 0.471, current mu = 0.450) allocation failure scavenge might not succeed [3302:0x75aa000] 105241072 ms: Mark-sweep 876.4 (983.5) -> 875.1 (983.8) MB, 6107.0 / 0.7 ms (average mu = 0.486, current mu = 0.497) allocation failure scavenge might not succeed

    <--- JS stacktrace --->

    [02.01.2022 20:10.50.593] [ERROR] (node:3251) UnhandledPromiseRejectionWarning: Error: fatal: Konnte '/home/pi/MagicMirror/modules/MMM-MyGarbage/.git/index.lock' nicht erstellen: Keine Berechtigung

    at Object.action (/home/pi/MagicMirror/modules/MMM-Remote-Control/node_modules/simple-git/src/lib/plugins/error-detection.plugin.js:30:33)
    at PluginStore.exec (/home/pi/MagicMirror/modules/MMM-Remote-Control/node_modules/simple-git/src/lib/plugins/plugin-store.js:21:33)
    at /home/pi/MagicMirror/modules/MMM-Remote-Control/node_modules/simple-git/src/lib/runners/git-executor-chain.js:95:45
    at new Promise (<anonymous>)
    at GitExecutorChain.handleTaskData (/home/pi/MagicMirror/modules/MMM-Remote-Control/node_modules/simple-git/src/lib/runners/git-executor-chain.js:93:16)
    at GitExecutorChain.<anonymous> (/home/pi/MagicMirror/modules/MMM-Remote-Control/node_modules/simple-git/src/lib/runners/git-executor-chain.js:77:46)
    at Generator.next (<anonymous>)
    at fulfilled (/home/pi/MagicMirror/modules/MMM-Remote-Control/node_modules/simple-git/src/lib/runners/git-executor-chain.js:5:58)
    

    (Use electron --trace-warnings ... to show where the warning was created) [02.01.2022 20:10.50.596] [ERROR] (node:3251) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 4) [02.01.2022 20:10.50.601] [ERROR] (node:3251) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. [02.01.2022 20:10.51.843] [ERROR] (node:3251) UnhandledPromiseRejectionWarning: Error: fatal: Konnte '/home/pi/MagicMirror/modules/MMM-MyGarbage/.git/index.lock' nicht erstellen: Keine Berechtigung

    at Object.action (/home/pi/MagicMirror/modules/MMM-Remote-Control/node_modules/simple-git/src/lib/plugins/error-detection.plugin.js:30:33)
    at PluginStore.exec (/home/pi/MagicMirror/modules/MMM-Remote-Control/node_modules/simple-git/src/lib/plugins/plugin-store.js:21:33)
    at /home/pi/MagicMirror/modules/MMM-Remote-Control/node_modules/simple-git/src/lib/runners/git-executor-chain.js:95:45
    at new Promise (<anonymous>)
    at GitExecutorChain.handleTaskData (/home/pi/MagicMirror/modules/MMM-Remote-Control/node_modules/simple-git/src/lib/runners/git-executor-chain.js:93:16)
    at GitExecutorChain.<anonymous> (/home/pi/MagicMirror/modules/MMM-Remote-Control/node_modules/simple-git/src/lib/runners/git-executor-chain.js:77:46)
    at Generator.next (<anonymous>)
    at fulfilled (/home/pi/MagicMirror/modules/MMM-Remote-Control/node_modules/simple-git/src/lib/runners/git-executor-chain.js:5:58)
    

    [02.01.2022 20:10.51.844] [ERROR] (node:3251) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 6)

    opened by Fredi009sg 53
  • Display time in calendar

    Display time in calendar

    Hi,

    actually I test the new MagicMirror² a little bit and I've seen some differences between the old and the new version in the calendar functions (time). The old version has more functionality in my opinion. For example:

    old version: ManCity - PSG in 2 hours same moment on the new version: ManCity - PSG Today

    There are a few more examples with since 2 hours etc. Will you implement those features in future?

    Regards Maurice

    enhancement 
    opened by djsunrise19 52
  • Weather modules dont show up anymore

    Weather modules dont show up anymore

    After https://github.com/MichMich/MagicMirror/pull/2161 got merged into develop my weather modules (current & forecast) dont show up anymore.

    Not sure what happens but IMHO that PR seems to be incomplete and breaks existing configs and should therefor should be reworked.

    opened by rejas 49
  • Update MagicMirror-Documentation

    Update MagicMirror-Documentation

    especially the weatherprovider development section got some updates (https://github.com/MichMich/MagicMirror-Documentation/pull/138) that are needed to be merged and released @MichMich

    opened by rejas 0
  • Version 2.22 doesn't run on Raspi OS Stretch,  undefined symbol: gbm_bo_get_modifier

    Version 2.22 doesn't run on Raspi OS Stretch, undefined symbol: gbm_bo_get_modifier

    users are reporting that after upgrade to 2.22 they are seeing a new Electron error

    .node_modules/[…]/dist/electron: symbol lookup error: undefined symbol: gbm_bo_get_modifier.
    

    the desktop env is downlevel from what is used by electron V22. (interesting coincidence)

    only fix is to upgrade OS.. I don't think the software upgrade works as next version is buster which has been superceded by bullseye.

    rebuild of sd card at bullseye resolves the problem..

    forum link https://forum.magicmirror.builders/topic/17494/mirror-broken-after-v2-22-0-upgrade?page=1

    opened by sdetweil 2
  • Weather module using Environment Canada, days are reversed.. but not weather information!

    Weather module using Environment Canada, days are reversed.. but not weather information!

    Platform: Raspberry Pi 3 on Raspbian Buster Node version: v16.19.0 MagicMirror version: 2.22.0

    Description: I use the weather module with Environment Canada as provider. It always worked well, until today when I noticed that the day names are reversed. The weather information is not reversed though. I have attached two screenshots - one is the MagicMirror display, the other is the Environment Canada webpage. Note that these are in french. The day names displayed on the MagicMirror are "Aujourd'hui" (Today) - which is a monday), "Demain" (Tomorrow), then "sam." (Saturday), "ven." (Friday), "jeu." (Thursday) and then "mer." (Wednesday). These should be "Aujourd'hui, Demain, mer., jeu., ven. and sam."

    Note that the weather information is correct. The weather forecast is in the correct order when you compare to the Environment Canada screenshot.

    I did upgrade MagicMirror to the latest version yesterday afternoon. But I only noticed the error a few minutes ago.

    Configuration: My edited config.js file is also attached... but does not appear. Here is the relevant info:

    { module: "weather", position: "top_left", // This can be any of the regions. // Best results in left or right regions. config: { weatherProvider: "envcanada", siteCode: "xxxxxxx", provCode: "xx", location: "xxxxx, xx", type: "forecast", locationID: "", showPrecipitationAmount: "true", // Ne fonctionne pas? colored: "true", tableClass: "medium", maxNumberOfDays: 7 }

    Screenshot from 2023-01-02 13-19-35

    Screenshot from 2023-01-02 12-56-02

    opened by etrefal 2
  • MagicMirror won't start - Electron launches automatically to blank screen

    MagicMirror won't start - Electron launches automatically to blank screen

    Hello and thank you for opening an issue.

    Please make sure that you have read the following lines before submitting your Issue:

    I'm not sure if this is a bug

    If you're not sure if it's a real bug or if it's just you, please open a topic on the forum: https://forum.magicmirror.builders/category/15/bug-hunt

    I'm having troubles installing or configuring MagicMirror

    Problems installing or configuring your MagicMirror? Check out: https://forum.magicmirror.builders/category/10/troubleshooting

    A common problem is that your config file could be invalid. Please run in your MagicMirror² directory: npm run config:check and see if it reports an error.

    I found a bug in the MagicMirror² installer

    If you are facing an issue or found a bug while trying to install MagicMirror² via the installer please report it in the respective GitHub repository: https://github.com/sdetweil/MagicMirror_scripts

    I found a bug in the MagicMirror² Docker image

    If you are facing an issue or found a bug while running MagicMirror² inside a Docker container please create an issue in the corresponding repository: https://gitlab.com/khassel/magicmirror


    I found a bug in MagicMirror

    Please make sure to only submit reproducible issues. You can safely remove everything above the dividing line. When submitting a new issue, please supply the following information:

    Platform: Place your platform here... give us your web browser/Electron version and your hardware (Raspberry Pi 2/3/4, Windows, Mac, Linux, System V UNIX).

    Node Version: Make sure it's version 14 or later (recommended is 16).

    MagicMirror² Version: Please let us know which version of MagicMirror² you are running. It can be found in the package.json file.

    Description: Provide a detailed description about the issue and include specific details to help us understand the problem. Adding screenshots will help describing the problem.

    Steps to Reproduce: List the step by step process to reproduce the issue.

    Expected Results: Describe what you expected to see.

    Actual Results: Describe what you actually saw.

    Configuration: What does the used config.js file look like? Don't forget to remove any sensitive information!

    Additional Notes: Provide any other relevant notes not previously mentioned. This is optional.

    opened by dapter22 7
  • Module wather: Openweathermap: current and hourly show wrong temperature

    Module wather: Openweathermap: current and hourly show wrong temperature

    Platform

    • Firefox 108.0.1 on Windows to display
    • electron: how do I find out? I googled it but didn't find any solution how to find out. Maybe 19.1.0 as I found "optionalDependencies": { "electron": "^19.1.0" in the package.json
    • Raspberry Pi 3b+
    • Raspian OS 32bit (Debian 11.6)
    • Raspberry Pi 3 Model B Rev 1.2 Node Version
    • 16.19.0 MagicMirror² Version:
    • 2.21.0 Description: Instead of a current temperature the weather module with openweathermap shows 26,6°. Current temperature really is around 7°C. Steps to Reproduce: Use my config. Expected Results: Correct temperature (around 7°C) Actual Results: 26.6°C Configuration
     		
    let config = { //bla bla bla
    				units: "metric",
    		tempUnits: "metric",
    		windUnits: "metric",
    modules :[
    			module: "weather",
    			position: "top_right",
    			config: {
    				// using apiVersion: 3.0, results inst "loading..."
    				units: "metric",
    				tempUnits: "metric",
    				windUnits: "metric",
    				degreeLabel: true,
    				appendLocationNameToHeader: false,
    				weatherProvider: "openweathermap",
    				type: "current",  // same problem four "hourly"
    				location: "Overath",
    				locationID: "2855859", 
    				apiKey: "mysecretapi",
    				weatherEndpoint: '/onecall',
    				updateInterval: 6000000,
    				animationSpeed: 0, 
    				decimalSymbol: ",",
    				initialLoadDelay: 400,
    			}
    		}, 
     		{
    			module: "weather",
    			position: "top_right",
    			config: {
    				degreeLabel: true,
    				appendLocationNameToHeader: false,
    				weatherProvider: "openweathermap",
    				type: "forecast",
    				location: "Overath",
    				locationID: "2855859",
    				apiKey: "mysecretapi",
    				weatherEndpoint: '/forecast',
    				updateInterval: 6000000,
    				animationSpeed: 0, 
    				decimalSymbol: ",",
    			}
    		}, 
    // bla bla bla
    
    opened by Coernel82 10
Releases(v2.22.0)
  • v2.22.0(Jan 1, 2023)

    [2.22.0] - 2023-01-01

    Thanks to: @angeldeejay, @buxxi, @dariom, @dWoolridge, @KristjanESPERANTO, @MagMar94, @naveensrinivasan, @retroflex, @SkySails and @Tom.

    Special thanks to @khassel, @rejas and @sdetweil for taking over most (if not all) of the work on this release as project collaborators. This version would not be there without their effort. Thank you!

    Added

    • Added test for remoteFile option in compliments module
    • Added hourlyWeather functionality to Weather.gov weather provider
    • Removed weatherEndpoint definition from weathergov.js (not used)
    • Added css class names "today" and "tomorrow" for default calendar
    • Added Collaboration.md
    • Added new github action for dependency review (#2862)
    • Added a WeatherProvider for Open-Meteo
    • Added Yr as a weather provider
    • Added config options "ignoreXOriginHeader" and "ignoreContentSecurityPolicy"

    Removed

    • Removed usage of internal fetch function of node until it is more stable

    Updated

    • Cleaned up test directory (#2937) and jest config (#2959)
    • Wait for all modules to start before declaring the system ready (#2487)
    • Updated e2e tests (moved done() in helper functions) and use es6 syntax in all tests
    • Updated da translation
    • Rework weather module
      • Make sure smhi provider api only gets a maximum of 6 digits coordinates (#2955)
      • Use fetch instead of XMLHttpRequest in weatherprovider (#2935)
      • Reworked how weatherproviders handle units (#2849)
      • Use unix() method for parsing times, fix suntimes on the way (#2950)
      • Refactor conversion functions into utils class (#2958)
    • The cors-method in server.js now supports sending and recieving HTTP headers
    • Replace &hellip; by
    • Cleanup compliments module
    • Updated dependencies including electron to v22 (#2903)

    Fixed

    • Correctly show apparent temperature in SMHI weather provider
    • Ensure updatenotification module isn't shown when local is ahead of remote
    • Handle node_helper errors during startup (#2944)
    • Possibility to change FontAwesome class in calendar, so icons like fab fa-facebook-square works.
    • Fix cors problems with newsfeed articles (as far as possible), allow disabling cors per feed with option useCorsProxy: false (#2840)
    • Tests not waiting for the application to start and stop before starting the next test
    • Fix electron tests failing sometimes in github workflow
    • Fixed gap in clock module when displayed on the left side with displayType=digital
    • Fixed playwright issue by upgrading to v1.29.1 (#2969)
    Source code(tar.gz)
    Source code(zip)
  • v2.21.0(Oct 1, 2022)

    [2.21.0] - 2022-10-01

    Special thanks to: @BKeyport, @buxxi, @davide125, @khassel, @kolbyjack, @krukle, @MikeBishop, @rejas, @sdetweil, @SkySails and @veeck

    Added

    • Possibility to fetch calendars through socket notifications.
    • New scripts install-mm (and install-mm:dev) for simplifying mm installation (now: npm run install-mm) and adding params --no-audit --no-fund --no-update-notifier for less noise.
    • New showTimeToday option in calendar module shows time for current-day events even if timeFormat is "relative".
    • Add hourly forecasts, apparent temperature & custom location name to SMHI weather provider.

    Removed

    • Old weather deprecated modules currentweather and weatherforecast.

    Updated

    • Removed DAYAFTERTOMORROW from English.
    • Update dependencies.
    • Updated jsdoc.
    • Updated font tree to use variables consistantly.
    • Removed deprecated Docker Repository from issue template.

    Fixed

    • Broadcast all calendar events while still honoring global and per-calendar maximumEntries.
    • Respect rss ttl provided by newsfeed (#2883).
    • Fix multi day calendar events always presented as "(1/X)" instead of the amount of days the event has progressed.
    • Fix weatherbit provider to use type config value instead of endpoint.
    • Fix calendar events which DO NOT specify rrule byday adjusted incorrectly (#2885).
    • Fix e2e tests not failing on errors (#2911).
    Source code(tar.gz)
    Source code(zip)
  • v2.20.0(Jul 2, 2022)

    [2.20.0] - 2022-07-02

    Special thanks to the following contributors: @eouia, @khassel, @kolbyjack, @KristjanESPERANTO, @nathannaveen, @naveensrinivasan, @rejas, @rohitdharavath and @sdetweil.

    Added

    • Added a new config option httpHeaders used by helmet (see https://helmetjs.github.io/). You can now set own httpHeaders which will override the defaults in js/defauls.js which is useful e.g. if you want to embed MagicMirror into annother website (solves #2847).
    • Show endDate for calendar events when dateHeader is enabled and showEnd is set to true (#2192).
    • Added the notification emitting from the weather module on infromation updated.
    • Use recommended file extention for YAML files (#2864).

    Updated

    • Use latest node 18 when running tests on github actions.
    • Update electron to v19 and other dependencies.
    • Use internal fetch function of node instead external node-fetch library if used node version >= v18.
    • Include duplicate events in broadcasts.

    Fixed

    • Fix problems with non latin fonds caused by updating to fontsource (fixes #2835).
    Source code(tar.gz)
    Source code(zip)
  • v2.19.0(Apr 1, 2022)

    [2.19.0] - 2022-04-01

    Special thanks to the following contributors: @10bias, @CFenner, @JHWelch, @k1rd3rf, @khassel, @kolbyjack, @krekos, @KristjanESPERANTO, @Nerfzooka, @oraclesean, @oscarb, @philnagel, @rejas, @sdetweil, @shin10, @SiderealArt and @Tom-Hirschberger.

    Added

    • Added a config option under the weather module, absoluteDates, providing an option to format weather forecast date output with either absolute or relative dates.
    • Added test for new weather forecast absoluteDates porperty.
    • The modules get a class hidden added/removed if they get hidden/shown which will also toggle pointer-events.
    • Added new config option showTitleAsUrl to newsfeed module. If set, the diplayed title is a link to the article which is useful when running in a browser and you want to read this article.
    • Added internal cors proxy to get weather providers working without public proxies (fixes #2714). The new url http(s)://address:port/cors?url=https://whatever-to-proxy can be used in other modules too.
    • Added a WeatherProvider for Weatherflow.
    • Added new env var ELECTRON_DISABLE_GPU which disable gpu under electron if set (fixes #2831).
    • Added missing Czech translations.

    Updated

    • Deprecated roboto fonts package roboto-fontface-bower replaced with fontsource.
    • Update electron to v17, helmet to v5 (use defaults of v4) and other dependencies
    • Updates Font Awesome css class to new default style (fixes #2768)
    • Replaced deprecated modules currentweather and weatherforecast with dummy modules only displaying that they have to be replaced.
    • Include all calendar events from the configured date range when broadcasting.
    • Update Danish and German translation.
    • Update node-ical to v0.15 and added luxon as dependency for not breaking the "no-optional" install (see #2718 and #2824).

    Fixed

    • Improved and speedup e2e tests, artificial wait after mm start removed.
    • Improved husky setup not blocking git commit if husky or npm is not installed.
    • Using a consistent spelling of MagicMirror².
    • Fix minor console output issue for loading translations (#2814).
    • Don't adjust startDate for full day events if endDate is in the past.
    • Fix windspeed conversion error in openweathermap provider. (#2812)
    • Fix conflicting parms turning off showEnd for full day events. (#2629)
    Source code(tar.gz)
    Source code(zip)
  • v2.18.0(Jan 1, 2022)

    [2.18.0] - 2022-01-01

    Special thanks to the following contributors: @AmpioRosso, @eouia, @fewieden, @jupadin, @khassel, @kolbyjack, @KristjanESPERANTO, @MariusVaice, @rejas, @rico24 and @sdetweil.

    Added

    • Added test for calendar recurring event with checks the correct date displayed (related to #2752).

    Updated

    • ESLint version supports now ECMAScript 2018.
    • Cleaned up updatenotification module and switched to nunjuck template.
    • Moved calendar tests from category electron to e2e.
    • Update missed translations for Korean language (ko.json).
    • Update missed translations for Dutch language (nl.json).
    • Cleaned up alert module and switched to nunjuck template.
    • Moved weather tests from category electron to e2e.
    • Updated github actions.
    • Replace spectron with playwright, update dependencies including electron update to v16.
    • Added lithuanian language to translations.js.
    • Show info message if newsfeed is empty (fixes #2731).
    • Added dangerouslyDisableAutoEscaping config option for newsfeed templates (fixes #2712).
    • Added missing shebang to installers/mm.sh.
    • Node versions in templates and github workflows.

    Fixed

    • Fixed wrong file kr.json to ko.json. Use language code 'ko' instead of 'kr' for Korean language.
    • Fixed feels_like data from openweathermaps current weather being ignored (#2678).
    • Fixed chaotic newsfeed display after network connection loss thanks to @jalibu (#2638).
    • Fixed incorrect time zone correction of recurring full day events (#2632 and #2634).
    • Fixed e2e tests by increasing testTimeout.
    • Revert node-ical update due to missing luxon package.
    • Fixed User-Agent-Header for newsfeed and calendar module (#2729).
    • Replace broken shields in Readme and use https for links.
    • Fixed electron tests with retry.
    • Fixed Calendar recurring cross timezone error (add/subtract a day, not just offset hours) (#2632).
    • Fixed Calendar showEnd and Full Date overlay (#2629).
    • Fixed regression on #2632, #2752.
    • Broadcast custom symbols in CALENDAR_EVENTS.
    Source code(tar.gz)
    Source code(zip)
  • v2.17.1(Oct 1, 2021)

  • v2.17.0(Oct 1, 2021)

    [2.17.0] - 2021-10-01

    Special thanks to the following contributors: @apiontek, @eouia, @jupadin, @khassel and @rejas.

    Added

    • Added showTime parameter to clock module for enabling/disabling time display in analog clock.
    • Added custom electron switches from user config (config.electronSwitches).
    • Added unit tests for updatenotification module.

    Updated

    • Bump electron to v13 (and spectron to v15) and update other dependencies in package.json.
    • Refactor test configs, use default test config for all tests.
    • Updated github templates.
    • Actually test all js and css files when lint script is run.
    • Update jsdocs and print warnings during testing too.
    • Update weathergov provider to try fetching not just current, but also foreacst, when API URLs available.
    • Refactored clock layout.
    • Refactored methods from weatherproviders into weatherobject (isDaytime, updateSunTime).
    • Use of logger.js in jest tests.
    • Run prettier over all relevant files.
    • Move tests needing electron in new category electron, use server only mode in e2e tests.
    • Update dependencies in package.json.

    Fixed

    • Fix undefined error with ignoreToday option in weather module (#2620).
    • Fix time zone correction in calendar module when the date hour is equal to the time zone correction value (#2632).
    • Fix black cursor on startup when using electron.
    • Fix update notification not working for own repository (#2644).
    Source code(tar.gz)
    Source code(zip)
  • v2.16.0(Jul 1, 2021)

    [2.16.0] - 2021-07-01

    Special thanks to the following contributors: @210954, @B1gG, @codac, @Crazylegstoo, @daniel, @earlman, @ezeholz, @FrancoisRmn, @jupadin, @khassel, @KristjanESPERANTO, @njwilliams, @oemel09, @r3wald, @rejas, @rico24, Faizan Ahmed.

    Added

    • Added French translations for "MODULE_CONFIG_ERROR" and "PRECIP".
    • Added German translation for "PRECIP".
    • Added Dutch translation for "WEEK", "PRECIP", "MODULE_CONFIG_CHANGED" and "MODULE_CONFIG_ERROR".
    • Added first test for Alert module.
    • Added support for dateFormat when not using timeFormat: "absolute".
    • Added custom-properties for colors and fonts for improved styling experience, see custom.css.sample file.
    • Added custom-properties for gaps around body and between modules.
    • Added test case for recurring calendar events.
    • Added new Environment Canada provider for default WEATHER module (weather data for Canadian locations only).
    • Added list view for newsfeed module.
    • Added dev dependency jest, switching from mocha to jest.

    Updated

    • Bump node-ical to v0.13.0 (now last runtime dependency using deprecated request package is removed).
    • Use codecov in informational mode.
    • Refactor code into es6 where possible (e.g. var -> let/const).
    • Use node v16 in github workflow (replacing node v10).
    • Moved some files into better suited directories.
    • Update dependencies in package.json, require node >= v12, remove rrule-alt and rrule.
    • Update dependencies in package.json and migrate husky to v6, fix husky setup in prod environment.
    • Cleaned up error handling in newsfeed and calendar modules for real.
    • Updated default WEATHER module such that a provider can optionally set a custom unit-of-measure for precipitation (weatherObject.precipitationUnits).
    • Update documentation.
    • Update jest tests: Reset changes on js/logger.js, mock logger.js in global_vars tests.
    • Update dependencies in package.json.

    Removed

    • Switching from mocha to jest so removed following dev dependencies: chai, chai-as-promised, mocha, mocha-each, mocha-logger.

    Fixed

    • Fix calendar start function logging inconsistency.
    • Fix updatenotification start function logging inconsistency.
    • Checks and applies the showDescription setting for the newsfeed module again.
    • Fix issue with openweathermap not showing current or forecast info when using onecall API.
    • Fix tests in weather module and add one for decimalPoint in forecast.
    • Fix decimalSymbol in the forecast part of the new weather module (#2530).
    • Fix wrong treatment of appendLocationNameToHeader when using ukmetofficedatahub.
    • Fix alert not recognizing multiple alerts (#2522).
    • Fix fetch option httpsAgent to agent in calendar module (#466).
    • Fix module updatenotification which did not work for repos with many refs (#1907).
    • Fix config check failing when encountering let syntax ("Parsing error: Unexpected token config").
    • Fix calendar debug check.
    • Really run prettier over all files.
    • Fix logger.js after jest changes, use --forceExit running jest.
    • Workaround for dev_console test using getWindowCount.
    Source code(tar.gz)
    Source code(zip)
  • v2.15.0(Apr 1, 2021)

    [2.15.0] - 2021-04-01

    Special thanks to the following contributors: @EdgardosReis, @MystaraTheGreat, @TheDuffman85, @ashishtank, @buxxi, @codac, @fewieden, @khassel, @klaernie, @qu1que, @rejas, @sdetweil & @thomasrockhu.

    ℹ️ Note: This update uses new dependencies. Please update using the following command: git pull && npm install.

    Added

    • Added Galician language.
    • Added GitHub workflows for automated testing and changelog enforcement.
    • Added CodeCov badge to Readme.
    • Added CURRENTWEATHER_TYPE notification to currentweather and weather module, use it in compliments module.
    • Added start:dev command to the npm scripts for starting electron with devTools open.
    • Added logging when using deprecated modules weatherforecast or currentweather.
    • Added Portuguese translations for "MODULE_CONFIG_CHANGED" and "PRECIP".
    • Respect parameter ColoredSymbolOnly also for custom events.
    • Added a new parameter to hide time portion on relative times.
    • module.show has now the option for a callback on error.
    • Added locale to sample config file.
    • Added support for self-signed certificates for the default calendar module (#466).
    • Added hiddenOnStartup flag to module config (#2475).

    Updated

    • Updated markdown files for github.
    • Cleaned up old code on server side.
    • Convert -0 to 0 when displaying temperature.
    • Code cleanup for FEELS like and added {DEGREE} placeholder for FEELSLIKE for each language.
    • Converted newsfeed module to use templates.
    • Updated documentation and help screen about invalid config files.
    • Moving weather provider specific code and configuration into each provider and making hourly part of the interface.
    • Bump electron to v11 and enable contextIsolation.
    • Don't update the DOM when a module is not displayed.
    • Cleaned up jsdoc and tests.
    • Exposed logger as node module for easier access for 3rd party modules.
    • Replaced deprecated request package with node-fetch and digest-fetch.
    • Refactored calendar fetcher.
    • Cleaned up newsfeed module.
    • Cleaned up translations and translator code.

    Removed

    • Removed danger.js library.
    • Removed ical which was substituted by node-ical in release v2.13.0. Module developers must install this dependency themselves in the module folder if needed.
    • Removed valid-url library.

    Fixed

    • Added default log levels to stop calendar log spamming.
    • Fix socket.io cors errors, see breaking change since socket.io v3.
    • Fix Issue with weather forecast icons due to fixed day start and end time (#2221).
    • Fix empty directory for each module's main javascript file in the inspector.
    • Fix Issue with weather forecast icons unit tests with different timezones (#2221).
    • Fix issue with unencoded characters in translated strings when using nunjuck template (Loading &hellip; as an example).
    • Fix socket.io backward compatibility with socket v2 clients.
    • Fix 3rd party module language loading if language is English.
    • Fix e2e tests after spectron update.
    • Fix updatenotification creating zombie processes by setting a timeout for the git process.
    • Fix weather module openweathermap not loading if lat and lon set without onecall.
    • Fix calendar daylight savings offset calculation if recurring start date before 2007.
    • Fix calendar time/date adjustment when time with GMT offset is different day (#2488).
    • Fix calendar daylight savings offset calculation if recurring FULL DAY start date before 2007 (#2483).
    • Fix newsreaders template, for wrong test for nowrap in 2 places (should be if not).
    Source code(tar.gz)
    Source code(zip)
  • v2.14.0(Jan 1, 2021)

    [2.14.0] - 2021-01-01

    Special thanks to the following contributors: @Alvinger, @AndyPoms, @ashishtank, @bluemanos, @flopp999, @jakemulley, @jakobsarwary1, @marvai-vgtu, @mirontoli, @rejas, @sdetweil, @Snille & @Sub028.

    ℹ️ Note: This update uses new dependencies. Please update using the following command: git pull && npm install.

    Added

    • Added new log level "debug" to the logger.
    • Added new parameter "useKmh" to weather module for displaying wind speed as kmh.
    • Chuvash translation.
    • Added Weatherbit as a provider to Weather module.
    • Added SMHI as a provider to Weather module.
    • Added Hindi & Gujarati translation.
    • Added optional support for DEGREE position in Feels like translation.
    • Added support for variables in nunjucks templates for translate filter.
    • Added Chuvash translation.
    • Calendar: new options "limitDays" and "coloredEvents".
    • Added new option "limitDays" - limit the number of discreet days displayed.
    • Added new option "customEvents" - use custom symbol/color based on keyword in event title.
    • Added GitHub workflows for automated testing and changelog enforcement.

    Updated

    • Merging .gitignore in the config-folder with the .gitignore in the root-folder.
    • Weather module - forecast now show TODAY and TOMORROW instead of weekday, to make it easier to understand.
    • Update dependencies to latest versions.
    • Update dependencies eslint, feedme, simple-git and socket.io to latest versions.
    • Update lithuanian translation.
    • Update config sample.
    • Highlight required version mismatch.
    • No select Text for TouchScreen use.
    • Corrected logic for timeFormat "relative" and "absolute".
    • Added missing function call in module.show()
    • Translator variables can have falsy values (e.g. empty string)
    • Fix issue with weather module with DEGREE label in FEELS like

    Deleted

    • Removed Travis CI intergration.

    Fixed

    • JSON Parse translation files with comments crashing UI. (#2149)
    • Calendar parsing where RRULE bug returns wrong date, add Windows timezone name support. (#2145, #2151)
    • Wrong node-ical version installed (package.json) requested version. (#2153)
    • Fix calendar fetcher subsequent timing. (#2160)
    • Rename Greek translation to correct ISO 639-1 alpha-2 code (gr > el). (#2155)
    • Add a space after icons of sunrise and sunset. (#2169)
    • Fix calendar when no DTEND record found in event, startDate overlay when endDate set. (#2177)
    • Fix windspeed convertion error in ukmetoffice weather provider. (#2189)
    • Fix console.debug not having timestamps. (#2199)
    • Fix calendar full day event east of UTC start time. (#2200)
    • Fix non-fullday recurring rule processing. (#2216)
    • Catch errors when parsing calendar data with ical. (#2022)
    • Fix Default Alert Module does not hide black overlay when alert is dismissed manually. (#2228)
    • Weather module - Always displays night icons when local is other then English. (#2221)
    • Update Node-ical 0.12.4 , fix invalid RRULE format in cal entries
    • Fix package.json for optional electron dependency (2378)
    • Update node-ical version again, 0.12.5, change RRULE fix (#2371, #2379)
    • Remove undefined objects from modules array (#2382)
    • Update node-ical version again, 0.12.7, change RRULE fix (#2371, #2379), node-ical now throws error (which we catch)
    • Update simple-git version to 2.31 unhandled promise rejection (#2383)
    Source code(tar.gz)
    Source code(zip)
  • v2.13.0(Oct 1, 2020)

    [2.13.0] - 2020-10-01

    Special thanks to the following contributors: @bryanzzhu, @bugsounet, @chamakura, @cjbrunner, @easyas314, @larryare, @oemel09, @rejas, @sdetweil & @sthuber90.

    ℹ️ Note: This update uses new dependencies. Please update using the following command: git pull && npm install.

    Added

    • --dry-run option added in fetch call within updatenotification node_helper. This is to prevent MagicMirror from consuming any fetch result. Causes conflict with MMPM when attempting to check for updates to MagicMirror and/or MagicMirror modules.
    • Test coverage with Istanbul, run it with npm run test:coverage.
    • Add lithuanian language.
    • Added support in weatherforecast for OpenWeather onecall API.
    • Added config option to calendar-icons for recurring- and fullday-events.
    • Added current, hourly (max 48), and daily (max 7) weather forecasts to weather module via OpenWeatherMap One Call API.
    • Added eslint-plugin for jsdoc comments.
    • Added new configDeepMerge option for module developers.

    Updated

    • Change incorrect weather.js default properties.
    • Cleaned up newsfeed module.
    • Cleaned up jsdoc comments.
    • Cleaned up clock tests.
    • Move lodash into devDependencies, update other dependencies.
    • Switch from ical to node-ical library.

    Fixed

    • Fix backward compatibility issues for Safari < 11.
    • Fix the use of "maxNumberOfDays" in the module "weatherforecast depending on the endpoint (forecast/daily or forecast)". #2018
    • Fix calendar display. Account for current timezone. #2068
    • Fix logLevel being set before loading config.
    • Fix incorrect namespace links in svg clockfaces. #2072
    • Fix weather/providers/weathergov for API guidelines. #2045
    • Fix "undefined" in weather modules header. #1985
    • Fix #2110, #2111, #2118: Recurring full day events should not use timezone adjustment. Just compare month/day.
    Source code(tar.gz)
    Source code(zip)
  • v2.12.0(Jul 1, 2020)

    [2.12.0] - 2020-07-01

    Special thanks to the following contributors: @AndreKoepke, @andrezibaia, @bryanzzhu, @chamakura, @DarthBrento, @Ekristoffe, @khassel, @Legion2, @ndom91, @radokristof, @rejas, @XBCreepinJesus & @ZoneMR.

    ℹ️ Note: This update uses new dependencies. Please update using the following command: git pull && npm install.

    Added

    • Added option to config the level of logging.
    • Added prettier for an even cleaner codebase.
    • Hide Sunrise/Sunset in Weather module.
    • Hide Sunrise/Sunset in Current Weather module.
    • Added Met Office DataHub (UK) provider.

    Updated

    • Cleaned up alert module code.
    • Cleaned up check_config code.
    • Replaced grunt-based linters with their non-grunt equivalents.
    • Switch to most of the eslint:recommended rules and fix warnings.
    • Replaced insecure links with https ones.
    • Cleaned up all "no-undef" warnings from eslint.
    • Added location title wrapping for calendar module.
    • Updated the BG translation.

    Deleted

    • Removed truetype (ttf) fonts.

    Fixed

    • The broken modules due to Socket.io change from last release. #1973
    • Add backward compatibility for old module code in socketclient.js. #1973
    • Support multiple instances of calendar module with different config. #1109
    • Fix the use of "maxNumberOfDays" in the module "weatherforecast". #2018
    • Throw error when check_config fails. #1928
    • Bug fix related to 'maxEntries' not displaying Calendar events. #2050
    • Updated ical library to latest version. #1926
    Source code(tar.gz)
    Source code(zip)
  • v2.11.0(Apr 1, 2020)

    [2.11.0] - 2020-04-01

    🚨 READ THIS BEFORE UPDATING 🚨

    In the past years the project has grown a lot. This came with a huge downside: poor maintainability. If I let the project continue the way it was, it would eventually crash and burn. More important: I would completely lose the drive and interest to continue the project. Because of this the decision was made to simplify the core by removing all side features like automatic installers and support for exotic platforms. This release (2.11.0) is the first real release that will reflect (parts) of these changes. As a result of this, some things might break. So before you continue make sure to backup your installation. Your config, your modules or better yet: your full MagicMirror folder. In other words: update at your own risk.

    For more information regarding this major change, please check issue #1860.

    Deleted

    • Remove installers.
    • Remove externalized scripts.
    • Remove jshint dependency, instead eslint checks your config file now

    Added

    • Brazilian translation for "FEELS".
    • Ukrainian translation.
    • Finnish translation for "PRECIP", "UPDATE_INFO_MULTIPLE" and "UPDATE_INFO_SINGLE".
    • Added the ability to hide the temp label and weather icon in the currentweather module to allow showing only information such as wind and sunset/rise.
    • The clock module now optionally displays sun and moon data, including rise/set times, remaining daylight, and percent of moon illumination.
    • Added Hebrew translation.
    • Add HTTPS support and update config.js.sample
    • Run tests on long term support and latest stable version of nodejs
    • Added the ability to configure a list of modules that shouldn't be update checked.
    • Run linters on git commits
    • Added date functionality to compliments: display birthday wishes or celebrate an anniversary

    Fixed

    • Force declaration of public ip address in config file (ISSUE #1852)
    • Fixes run-start.sh: If running in docker-container, don't check the environment, just start electron (ISSUE #1859)
    • Fix calendar time offset for recurring events crossing Daylight Savings Time (ISSUE #1798)
    • Fix regression in currentweather module causing 'undefined' to show up when config.hideTemp is false
    • Fix FEELS translation for Croatian
    • Fixed weather tests #1840
    • Fixed Socket.io can't be used with Reverse Proxy in serveronly mode #1934
    • Fix update checking skipping 3rd party modules the first time

    Changed

    • Remove documentation from core repository and link to new dedicated docs site: docs.magicmirror.builders.
    • Updated config.js.sample: Corrected some grammar on config.js.sample comment section.
    • Removed run-start.sh script and update start commands:
      • To start using electron, use npm run start.
      • To start in server only mode, use npm run server.
    • Remove redundant logging from modules.
    • Timestamp in log output now also contains the date
    • Turkish translation.
    • Option to configure the size of the currentweather module.
    Source code(tar.gz)
    Source code(zip)
  • v2.10.1(Jan 10, 2020)

  • v2.10.0(Jan 1, 2020)

    [2.10.0] - 2020-01-01

    Special thanks to @sdetweil for all his great contributions!

    ℹ️ Note: This update uses new dependencies. Please update using the following command: git pull && npm install.

    Added

    • Timestamps in log output.
    • Padding in dateheader mode of the calendar module.
    • New upgrade script to help users consume regular updates installers/upgrade-script.sh.
    • New script to help setup pm2, without install installers/fixuppm2.sh.

    Updated

    • Updated lower bound of lodash and helmet dependencies for security patches.
    • Updated compliments.js to handle newline in text, as textfields to not interpolate contents.
    • Updated raspberry.sh installer script to handle new platform issues, split node/npm, pm2, and screen saver changes.
    • Improve handling for armv6l devices, where electron support has gone away, add optional serveronly config option.
    • Improved run-start.sh to handle for serveronly mode, by choice, or when electron not available.
    • Only check for xwindows running if not on macOS.

    Fixed

    • Fixed issue in weatherforecast module where predicted amount of rain was not using the decimal symbol specified in config.js.
    • Module header now updates correctly, if a module need to dynamically show/hide its header based on a condition.
    • Fix handling of config.js for serverOnly mode commented out.
    • Fixed issue in calendar module where the debug script didn't work correctly with authentication.
    • Fixed issue that some full day events were not correctly recognized as such.
    • Display full day events lasting multiple days as happening today instead of some days ago if they are still ongoing.
    Source code(tar.gz)
    Source code(zip)
  • v2.9.0(Oct 1, 2019)

    ❤️ Donate: Enjoying MagicMirror²? Please consider a donation! With your help we can continue to improve the MagicMirror² core.

    [2.9.0] - 2019-10-01

    ℹ️ Note: This update uses new dependencies. Please update using the following command: git pull && npm install. If you are having issues running Electron, make sure your Raspbian is up to date.

    Added

    • Spanish translation for "PRECIP".
    • Adding a Malay (Malaysian) translation for MagicMirror².
    • Add test check URLs of vendors 200 and 404 HTTP CODE.
    • Add tests for new weather module and helper to stub ajax requests.

    Updated

    • Updatenotification module: Display update notification for a limited (configurable) time.
    • Enabled e2e/vendor_spec.js tests.
    • The css/custom.css will be rename after the next release. We've add into run-start.sh a instruction by GIT to ignore with --skip-worktree and rm --cached. #1540
    • Disable sending of notification CLOCK_SECOND when displaySeconds is false.

    Fixed

    • Updatenotification module: Properly handle race conditions, prevent crash.
    • Send NEWS_FEED notification also for the first news messages which are shown.
    • Fixed issue where weather module would not refresh data after a network or API outage. #1722
    • Fixed weatherforecast module not displaying rain amount on fallback endpoint.
    • Notifications CLOCK_SECOND & CLOCK_MINUTE being from startup instead of matched against the clock and avoid drifting.
    Source code(tar.gz)
    Source code(zip)
  • v2.8.0(Jul 1, 2019)

    ❤️ Donate: Enjoying MagicMirror²? Please consider a donation! With your help we can continue to improve the MagicMirror² core.

    [2.8.0] - 2019-07-01

    ℹ️ Note: This update uses new dependencies. Please update using the following command: git pull && npm install. If you are having issues running Electron, make sure your Raspbian is up to date.

    Added

    • Option to show event location in calendar
    • Finnish translation for "Feels" and "Weeks"
    • Russian translation for “Feels”
    • Calendar module: added nextDaysRelative config option
    • Add broadcastPastEvents config option for calendars to include events from the past maximumNumberOfDays in event broadcasts
    • Added feature to broadcast news feed items NEWS_FEED and updated news items NEWS_FEED_UPDATED in default newsfeed module (when news is updated) with documented default and config.js options in README.md
    • Added notifications to default clock module broadcasting CLOCK_SECOND and CLOCK_MINUTE for the respective time elapsed.
    • Added UK Met Office Datapoint feed as a provider in the default weather module.
    • Added new provider class
    • Added suncalc.js dependency to calculate sun times (not provided in UK Met Office feed)
    • Added "tempUnits" and "windUnits" to allow, for example, temp in metric (i.e. celsius) and wind in imperial (i.e. mph). These will override "units" if specified, otherwise the "units" value will be used.
    • Use Feels Like temp from feed if present
    • Optionally display probability of precipitation (PoP) in current weather (UK Met Office data)
    • Automatically try to fix eslint errors by passing --fix option to it
    • Added sunrise and sunset times to weathergov weather provider #1705
    • Added "useLocationAsHeader" to display "location" in config.js as header when location name is not returned
    • Added to newsfeed.js: in order to design the news article better with css, three more class-names were introduced: newsfeed-desc, newsfeed-desc, newsfeed-desc

    Updated

    • English translation for "Feels" to "Feels like"
    • Fixed the example calender url in config.js.sample
    • Update ical.js to solve various calendar issues.
    • Update weather city list url #1676
    • Only update clock once per minute when seconds aren't shown

    Fixed

    • Fixed uncaught exception, race condition on module update
    • Fixed issue #1696, some ical files start date to not parse to date type
    • Allowance HTML5 autoplay-policy (policy is changed from Chrome 66 updates)
    • Handle SIGTERM messages
    • Fixes sliceMultiDayEvents so it respects maximumNumberOfDays
    • Minor types in default NewsFeed README.md
    • Fix typos and small syntax errors, cleanup dependencies, remove multiple-empty-lines, add semi-rule
    • Fixed issues with calendar not displaying one-time changes to repeating events
    • Updated the fetchedLocationName variable in currentweather.js so that city shows up in the header

    Updated installer

    • give non-pi2+ users (pi0, odroid, jetson nano, mac, windows, ...) option to continue install
    • use current username vs hardcoded 'pi' to support non-pi install
    • check for npm installed. node install doesn't do npm anymore
    • check for mac as part of PM2 install, add install option string
    • update pm2 config with current username instead of hard coded 'pi'
    • check for screen saver config, "/etc/xdg/lxsession", bypass if not setup
    Source code(tar.gz)
    Source code(zip)
  • v2.7.1(Apr 2, 2019)

  • v2.7.0(Apr 1, 2019)

    [2.7.0] - 2019-04-01

    ℹ️ Note: This update uses new dependencies. Please update using the following command: git pull && npm install. If you are having issues running Electron, make sure your Raspbian is up to date.

    ❤️ Donate: Enjoying MagicMirror²? Please consider a donation! With your help we can continue to improve the MagicMirror² core.

    Added

    • Italian translation for "Feels"
    • Basic Klingon (tlhIngan Hol) translations
    • Disabled the screensaver on raspbian with installation script
    • Added option to truncate the number of vertical lines a calendar item can span if wrapEvents is enabled.
    • Danish translation for "Feels" and "Weeks"
    • Added option to split multiple day events in calendar to separate numbered events
    • Slovakian translation
    • Alerts now can contain Font Awesome icons
    • Notifications display time can be set in request
    • Newsfeed: added support for ARTICLE_INFO_REQUEST notification
    • Add name config option for calendars to be sent along with event broadcasts

    Updated

    • Bumped the Electron dependency to v3.0.13 to support the most recent Raspbian. #1500
    • Updated modernizr code in alert module, fixed a small typo there too
    • More verbose error message on console if the config is malformed
    • Updated installer script to install Node.js version 10.x

    Fixed

    • Fixed temperature displays in currentweather and weatherforecast modules #1503, #1511.
    • Fixed unhandled error on bad git data in updatenotification module #1285.
    • Weather forecast now works with openweathermap in new weather module. Daily data are displayed, see issue #1504.
    • Fixed analogue clock border display issue where non-black backgrounds used (previous fix for issue 611)
    • Fixed compatibility issues caused when modules request different versions of Font Awesome, see issue #1522. MagicMirror now uses Font Awesome 5 with v4 shims included for backwards compatibility.
    • Installation script problems with raspbian
    • Calendar: only show repeating count if the event is actually repeating #1534
    • Calendar: Fix exdate handling when multiple values are specified (comma separated)
    • Calendar: Fix relative date handling for fulldate events, calculate difference always from start of day #1572
    • Fix null dereference in moduleNeedsUpdate when the module isn't visible
    • Calendar: Fixed event end times by setting default calendarEndTime to "LT" (Local time format). [#1479]
    • Calendar: Fixed missing calendar fetchers after server process restarts #1589
    • Notification: fixed background color (was white text on white background)
    • Use getHeader instead of data.header when creating the DOM so overwriting the function also propagates into it
    • Fix documentation of useKMPHwind option in currentweather

    New weather module

    • Fixed weather forecast table display #1499.
    • Dimmed loading indicator for weather forecast.
    • Implemented config option decimalSymbol #1499.
    • Aligned indoor values in current weather vertical #1499.
    • Added humidity support to nunjuck unit filter.
    • Do not display degree symbol for temperature in Kelvin #1503.
    • Weather forecast now works with openweathermap for both, /forecast and /forecast/daily, in new weather module. If you use the /forecast-weatherEndpoint, the hourly data are converted to daily data, see issues #1504, #1513.
    • Added fade, fadePoint and maxNumberOfDays properties to the forecast mode #1516
    • Fixed Loading string and decimalSymbol string replace #1538
    • Show Snow amounts in new weather module #1545
    • Added weather.gov as a new weather provider for US locations
    Source code(tar.gz)
    Source code(zip)
  • v2.6.0(Jan 1, 2019)

    [2.6.0] - 2019-01-01

    ℹ️ Note: This update uses new dependencies. Please update using the following command: git pull && npm install. If you are having issues updating, make sure you are running the latest version of Node.

    ✨ Experimental ✨

    • New default module weather. This module will eventually replace the current currentweather and weatherforecast modules. The new module is still pretty experimental, but it's included so you can give it a try and help us improve this module. Please give us you feedback using this forum post.

    A huge, huge, huge thanks to user @fewieden for all his hard work on the new weather module!

    Added

    • Possibility to add classes to the cell of symbol, title and time of the events of calendar.
    • Font-awesome 5, still has 4 for backwards compatibility.
    • Missing showEnd in calendar documentation
    • Screenshot for the new feed module
    • Screenshot for the compliments module
    • Screenshot for the clock module
    • Screenshot for the current weather
    • Screenshot for the weather forecast module
    • Portuguese translation for "Feels"
    • Croatian translation
    • Fading for dateheaders timeFormat in Calendar #1464
    • Documentation for the existing scale option in the Weather Forecast module.

    Fixed

    • Allow to parse recurring calendar events where the start date is before 1900
    • Fixed Polish translation for Single Update Info
    • Ignore entries with unparseable details in the calendar module
    • Bug showing FullDayEvents one day too long in calendar fixed
    • Bug in newsfeed when removeStartTags is used on the description #1478

    Updated

    • The default calendar setting showEnd is changed to false.

    Changed

    • The Weather Forecast module by default displays the ° symbol after every numeric value to be consistent with the Current Weather module.
    Source code(tar.gz)
    Source code(zip)
  • v2.5.0(Oct 1, 2018)

    [2.5.0] - 2018-10-01

    Added

    • Support multi-line compliments
    • Simplified Chinese translation for "Feels"
    • Polish translate for "Feels"
    • French translate for "Feels"
    • Translations for newsfeed module
    • Support for toggling news article in fullscreen
    • Hungarian translation for "Feels" and "Week"
    • Spanish translation for "Feels"
    • Add classes instead of inline style to the message from the module Alert
    • Support for events having a duration instead of an end
    • Support for showing end of events through config parameters showEnd and dateEndFormat

    Fixed

    • Fixed gzip encoded calendar loading issue #1400.
    • Mixup between german and spanish translation for newsfeed.
    • Fixed close dates to be absolute, if no configured in the config.js - module Calendar
    • Fixed the UpdateNotification module message about new commits in the repository, so they can be correctly localized in singular and plural form.
    • Fix for weatherforecast rainfall rounding #1374
    • Fix calendar parsing issue for Midori on RasperryPi Zero w, related to issue #694.
    • Fix weather city ID link in sample config
    • Fixed issue with clientonly not updating with IP address and port provided on command line.

    Updated

    • Updated Simplified Chinese translation
    • Swedish translations
    • Hungarian translations for the updatenotification module
    • Updated Norsk bokmål translation
    • Updated Norsk nynorsk translation
    • Consider multi days event as full day events
    Source code(tar.gz)
    Source code(zip)
  • v2.4.1(Jul 4, 2018)

  • v2.4.0(Jul 1, 2018)

    [2.4.0] - 2018-07-01

    ⚠️ Warning: This release includes an updated version of Electron. This requires a Raspberry Pi configuration change to allow the best performance and prevent the CPU from overheating. Please read the information on the MagicMirror Wiki.

    ℹ️ Note: This update uses new dependencies. Please update using the following command: git pull && npm install

    Added

    • Enabled translation of feelsLike for module currentweather
    • Added support for on-going calendar events
    • Added scroll up in fullscreen newsfeed article view
    • Changed fullscreen newsfeed width from 100% to 100vw (better results)
    • Added option to calendar module that colors only the symbol instead of the whole line
    • Added option for new display format in the calendar module with date headers with times/events below.
    • Ability to fetch compliments from a remote server
    • Add regex filtering to calendar module
    • Customize classes for table
    • Added option to newsfeed module to only log error parsing a news article if enabled
    • Add update translations for Português Brasileiro

    Changed

    • Upgrade to Electron 2.0.0.
    • Remove yarn-or-npm which breaks production builds.
    • Invoke module suspend even if no dom content. #1308

    Fixed

    • Fixed issue where wind chill could not be displayed in Fahrenheit. #1247
    • Fixed issues where a module crashes when it tries to dismiss a non existing alert. #1240
    • In default module currentWeather/currentWeather.js line 296, 300, self.config.animationSpeed can not be found because the notificationReceived function does not have "self" variable.
    • Fixed browser-side code to work on the Midori browser.
    • Fixed issue where heat index was reporting incorrect values in Celsius and Fahrenheit. #1263
    • Fixed weatherforecast to use dt_txt field instead of dt to handle timezones better
    • Newsfeed now remembers to show the description when "ARTICLE_LESS_DETAILS" is called if the user wants to always show the description. #1282
    • clientonly/*.js is now linted, and one linting error is fixed
    • Fix issue #1196 by changing underscore to hyphen in locale id, in align with momentjs.
    • Fixed issue where heat index and wind chill were reporting incorrect values in Kelvin. #1263

    Updated

    • Updated Italian translation
    • Updated German translation
    • Updated Dutch translation
    Source code(tar.gz)
    Source code(zip)
  • v2.3.1(Apr 1, 2018)

  • v2.3.0(Apr 1, 2018)

    [2.3.0] - 2018-04-01

    Added

    • Add new settings in compliments module: setting time intervals for morning and afternoon
    • Add system notification MODULE_DOM_CREATED for notifying each module when their Dom has been fully loaded.
    • Add types for module.
    • Implement Danger.js to notify contributors when CHANGELOG.md is missing in PR.
    • Allow to scroll in full page article view of default newsfeed module with gesture events from MMM-Gestures
    • Changed 'compliments.js' - update DOM if remote compliments are loaded instead of waiting one updateInterval to show custom compliments
    • Automated unit tests utils, deprecated, translator, cloneObject(lockstrings)
    • Automated integration tests translations
    • Add advanced filtering to the excludedEvents configuration of the default calendar module
    • New currentweather module config option: showFeelsLike: Shows how it actually feels like. (wind chill or heat index)
    • New currentweather module config option: useKMPHwind: adds an option to see wind speed in Kmph instead of just m/s or Beaufort.
    • Add dc:date to parsing in newsfeed module, which allows parsing of more rss feeds.

    Changed

    • Add link to GitHub repository which contains the respective Dockerfile.
    • Optimized automated unit tests cloneObject, cmpVersions
    • Update notifications use now translation templates instead of normal strings.
    • Yarn can be used now as an installation tool
    • Changed Electron dependency to v1.7.13.

    Fixed

    • News article in fullscreen (iframe) is now shown in front of modules.
    • Forecast respects maxNumberOfDays regardless of endpoint.
    • Fix exception on translation of objects.
    Source code(tar.gz)
    Source code(zip)
  • v2.2.2(Jan 2, 2018)

  • v2.2.0(Jan 1, 2018)

    [2.2.0] - 2018-01-01

    Note: This update uses new dependencies. Please update using the following command: git pull && npm install

    Changed

    • Calender week is now handled with a variable translation in order to move number language specific.
    • Reverted the Electron dependency back to 1.4.15 since newer version don't seem to work on the Raspberry Pi very well.

    Added

    • Add option to use Nunjucks templates in modules. (See helloworld module as an example.)
    • Add Bulgarian translations for MagicMirror² and Alert module.
    • Add graceful shutdown of modules by calling stop function of each node_helper on SIGINT before exiting.
    • Link update subtext to Github diff of current version versus tracking branch.
    • Add Catalan translation.
    • Add ability to filter out newsfeed items based on prohibited words found in title (resolves #1071)
    • Add options to truncate description support of a feed in newsfeed module
    • Add reloadInterval option for particular feed in newsfeed module
    • Add no-cache entries of HTTP headers in newsfeed module (fetcher)
    • Add Czech translation.
    • Add option for decimal symbols other than the decimal point for temperature values in both default weather modules: WeatherForecast and CurrentWeather.

    Fixed

    • Fixed issue with calendar module showing more than maximumEntries allows
    • WeatherForecast and CurrentWeather are now using HTTPS instead of HTTP
    • Correcting translation for Indonesian language
    • Fix issue where calendar icons wouldn't align correctly
    Source code(tar.gz)
    Source code(zip)
  • V2.2.1(Jan 1, 2018)

  • v.2.1.3(Oct 1, 2017)

    [2.1.3] - 2017-10-01

    Note: This update uses new dependencies. Please update using the following command: git pull && npm install

    Changed

    • Remove Roboto fonts files inside fonts and these are installed by npm install command.

    Added

    • Add clientonly script to start only the electron client for a remote server.
    • Add symbol and color properties of event when CALENDAR_EVENTS notification is broadcasted from default/calendar module.
    • Add .vscode/ folder to .gitignore to keep custom Visual Studio Code config out of git.
    • Add unit test the capitalizeFirstLetter function of newfeed module.
    • Add new unit tests for function shorten in calendar module.
    • Add new unit tests for function getLocaleSpecification in calendar module.
    • Add unit test for js/class.js.
    • Add unit tests for function roundValue in currentweather module.
    • Add test e2e showWeek feature in spanish language.
    • Add warning Log when is used old authentication method in the calendar module.
    • Add test e2e for helloworld module with default config text.
    • Add ability for currentweather module to display indoor humidity via INDOOR_HUMIDITY notification.
    • Add Welsh (Cymraeg) translation.
    • Add Slack badge to Readme.

    Updated

    • Changed 'default.js' - listen on all attached interfaces by default.
    • Add execution of npm list after the test are ran in Travis CI.
    • Change hooks for the vendors e2e tests.
    • Add log when clientonly failed on starting.
    • Add warning color when are using full ip whitelist.
    • Set version of the express-ipfilter on 0.3.1.

    Fixed

    • Fixed issue with incorrect allignment of analog clock when displayed in the center column of the MM.
    • Fixed ipWhitelist behaviour to make empty whitelist ([]) allow any and all hosts access to the MM.
    • Fixed issue with calendar module where 'excludedEvents' count towards 'maximumEntries'.
    • Fixed issue with calendar module where global configuration of maximumEntries was not overridden by calendar specific config (see module doc).
    • Fixed issue where this.file(filename) returns a path with two hashes.
    • Workaround for the WeatherForecast API limitation.
    Source code(tar.gz)
    Source code(zip)
  • v2.1.2(Jul 1, 2017)

    [2.1.2] - 2017-07-01

    Changed

    • Revert Docker related changes in favor of docker-MagicMirror. All Docker images are outsourced. (#856)
    • Change Docker base image (Debian + Node) to an arm based distro (AlpineARM + Node) (#846)
    • Fix the dockerfile to have it running from the first time.

    Added

    • Add in option to wrap long calendar events to multiple lines using wrapEvents configuration option.
    • Add test e2e show title newsfeed for newsfeed module.
    • Add task to check configuration file.
    • Add test check URLs of vendors.
    • Add test of match current week number on clock module with showWeek configuration.
    • Add test default modules present modules/default/defaultmodules.js.
    • Add unit test calendar_modules function capFirst.
    • Add test for check if exists the directories present in defaults modules.
    • Add support for showing wind direction as an arrow instead of abbreviation in currentWeather module.
    • Add support for writing translation fucntions to support flexible word order
    • Add test for check if exits the directories present in defaults modules.
    • Add calendar option to set a separate date format for full day events.
    • Add ability for currentweather module to display indoor temperature via INDOOR_TEMPERATURE notification
    • Add ability to change the path of the custom.css.
    • Add translation Dutch to Alert module.
    • Added Romanian translation.

    Updated

    • Added missing keys to Polish translation.
    • Added missing key to German translation.
    • Added better translation with flexible word order to Finnish translation

    Fixed

    • Fix instruction in README for using automatically installer script.
    • Bug of duplicated compliments as described in here.
    • Fix double message about port when server is starting
    • Corrected Swedish translations for TODAY/TOMORROW/DAYAFTERTOMORROW.
    • Removed unused import from js/electron.js
    • Made calendar.js respect config.timeFormat irrespecive of locale setting
    • Fixed alignment of analog clock when a large calendar is displayed in the same side bar
    Source code(tar.gz)
    Source code(zip)
An Open-Source Platform to certify open-source projects.

OC-Frontend This includes the frontend for Open-Certs. ?? After seeing so many open-source projects being monetized ?? without giving any recognition

Open Certs 15 Oct 23, 2022
💰The Shopify-like Digital Commerce engine provides an Open-Source 🆓 and Headless/Modular Architecture ⚡

?? The Shopify-like Digital Commerce ⚡ ?? The Shopify-like Digital Commerce engine provides an Open-Source ?? and Serverless Architecture ⚡ ?? The Sho

OceanSoft 7 Nov 7, 2022
official github mirror of gg-struggle

gg-struggle tl;dr gg-struggle is a program that reduces loading times by caching the Guilty Gear server responses, reducing slowdowns caused by latenc

cybermelon 28 Mar 12, 2022
Awesome mirror.xyz.

优质 Mirror 信息源列表 目录 Mirror 信息源列表 什么是 Mirror 如何提交 为什么要收集这张列表 Mirror 信息源列表 列表上的信息源订阅数不多,暂时取消展示 RSS 订阅数。 简介 订阅链接 标签 Shawn https://submirror.xyz/dao4ever.e

Robin Wen 28 Nov 7, 2022
Mirror from https://github.com/BochilGaming/games-wabot/tree/multi-device

Games-Wabot Join Group Diskusi NO BOT Deploy to Heroku Heroku Buildpack BuildPack LINK FFMPEG here IMAGEMAGICK here FOR TERMUX USER Type mentioned bel

null 48 Dec 20, 2022
mirrord lets you easily mirror traffic from your production environment to your development environment.

mirrord lets you easily mirror traffic from your Kubernetes cluster to your development environment. It comes as both Visual Studio Code extension and a CLI tool.

MetalBear 2.1k Dec 24, 2022
A high-speed download mirror list of common software for Chinese users.

cdMir mir.ug0.ltd 介绍 这是一个软件镜像站,旨在通过搜集或搭建镜像的方式,为处于中国大陆的用户提供高速下载服务。 如果您需要软件并未被 cdMir 收录,请联系我们(包括但不限于 发布Issues、社交媒体联系、邮箱联系),我们会考虑并添加。 如果您认为我们值得支持,请 star

Had 14 Dec 29, 2022
A CLI tool to make Taobao's npm mirror sync your package immediately.

npm-mirror-sync A CLI tool to make Taobao's npm mirror sync your package immediately. 让淘宝的 NPM 镜像立即收录你的包的新版本。 背景 相信国内小伙伴都在用淘宝的 NPM 镜像(npmmirror.com)作为

CSS魔法 10 Jun 9, 2022
This Lens Protocol module allows you to create a Transparent Promotion system in which the post creator can add a reward for who (ex: influencers) mirror it.

promote-module (in progress) This Lens Protocol module allows you to create a Transparent Promotion system in which the post creator can add a reward

Alessandro Manfredi 9 Oct 2, 2022
Reference for How to Write an Open Source JavaScript Library - https://egghead.io/series/how-to-write-an-open-source-javascript-library

Reference for How to Write an Open Source JavaScript Library The purpose of this document is to serve as a reference for: How to Write an Open Source

Sarbbottam Bandyopadhyay 175 Dec 24, 2022
Shikhar 4 Oct 9, 2022
This is a project for open source enthusiast who want to contribute to open source in this hacktoberfest 2022. 💻 🎯🚀

HACKTOBERFEST-2022-GDSC-IET-LUCKNOW Beginner-Hacktoberfest Need Your first pr for hacktoberfest 2k22 ? come on in About Participate in Hacktoberfest b

null 8 Oct 29, 2022
A collection of smart contracts for the Stackup platform 🤖 📑

Contracts A collection of smart contracts for the Stackup platform. Dev Blog Deployed Contracts See releases for deployed contracts of previous versio

Stackup 16 Nov 29, 2021
This is a development platform to quickly generate, develop & deploy smart contract based applications on StarkNet.

generator-starknet This is a development platform to quickly generate, develop, & deploy smart contract based apps on StarkNet. Installation First, in

Only Dust 34 Nov 18, 2022
JellyChain1 is a blockchain network platform that supports smart contracts and can act as a payment system/cryptocurrency

JellyChain1 is an experimental blockchain network, that will serve as a starter blockchain test network and scale out database software and other applications. JellyChain1 is created to cut energy costs when mining transactions on the blockchain.

JellyChain 10 Dec 1, 2022
Bringing an all Open-Source Platform to study Data Structures and Algorithms ⚡

NeoAlgo-Docs Bringing an all Open-Source Platform to study Data Structures and Algorithms ⚡ ?? Installation You will need to have NodeJS and Yarn inst

Tesseract Coding 24 Jun 2, 2022
LucaMail - an Open Source,Cross Platform Email Client

LucaMail v0.0.1-beta An Awesome Cross Platform Email Client! Note : This Project Is Still in Beta Version Website . Report Bug . Request Feature . Dis

Yuva raghav 210 Dec 28, 2022
An open source movie library platform for viewing movie info and saving movies for later.

GoodWatch An open source movie library platform for viewing movie info and saving movies for later. How to get started? Fork and clone the repo. Then

null 13 Apr 28, 2022
Open source data infrastructure platform. Designed for developers, built for speed.

Gigahex is a web based data infrastructure platform to deploy and manage Apache Spark™, Apache Kafka and Apache Hadoop clusters. Currently, it support

Gigahex 22 Dec 6, 2022