Skip to content

Releases: MagicMirrorOrg/MagicMirror

MagicMirror on the wall, I've got an update for y'all!

01 Apr 18:48
a2d7cdc
Compare
Choose a tag to compare

[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)

Twenty Twenty Two!

01 Jan 18:33
a6cbc9f
Compare
Choose a tag to compare

[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.

Lets Fix Lets Encrypt

01 Oct 16:51
222a5f3
Compare
Choose a tag to compare

[2.17.1] - 2021-10-01

Fixed

  • Fixed error when accessing letsencrypt certificates.

Test Shenanigans

01 Oct 13:20
5a4fbbf
Compare
Choose a tag to compare

[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).

Welcome to the team, Jest!

01 Jul 12:30
26a76f8
Compare
Choose a tag to compare

[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.

Spring Cleaning

01 Apr 12:26
491f5aa
Compare
Choose a tag to compare

[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 … 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).

Goodbye Travis!

01 Jan 18:18
10dc315
Compare
Choose a tag to compare

[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)

Stay Healthy!

01 Oct 10:16
3dbe8bf
Compare
Choose a tag to compare

[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.

Halfway 2020

01 Jul 18:17
018cb91
Compare
Choose a tag to compare

[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

The Big Change

01 Apr 10:22
447c0bf
Compare
Choose a tag to compare

[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.