All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
ℹ️ 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.
- New default module weather. This module will eventually replace the current
currentweather
andweatherforecast
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.
- 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.
- 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
- The default calendar setting
showEnd
is changed tofalse
.
- The Weather Forecast module by default displays the ° symbol after every numeric value to be consistent with the Current Weather module.
- Romanian translation for "Feels"
- 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 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 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
- Fix weather parsing issue #1332.
ℹ️ Note: This update uses new dependencies. Please update using the following command: git pull && npm install
- 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
- Upgrade to Electron 2.0.0.
- Remove yarn-or-npm which breaks production builds.
- Invoke module suspend even if no dom content. #1308
- 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 Italian translation
- Updated German translation
- Updated Dutch translation
- Downgrade electron to 1.4.15 to solve the black screen issue.#1243
- 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.
- 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.
- News article in fullscreen (iframe) is now shown in front of modules.
- Forecast respects maxNumberOfDays regardless of endpoint.
- Fix exception on translation of objects.
- Add missing
package-lock.json
.
- Changed Electron dependency to v1.7.10.
- Fixed linting errors.
Note: This update uses new dependencies. Please update using the following command: git pull && npm install
- 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.
- 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 eachnode_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 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
Note: This update uses new dependencies. Please update using the following command: git pull && npm install
- Remove Roboto fonts files inside
fonts
and these are installed by npm install command.
- 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 fromdefault/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.
- 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 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.
- 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.
- 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.
- Added missing keys to Polish translation.
- Added missing key to German translation.
- Added better translation with flexible word order to Finnish translation.
- 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.
Note: This update uses new dependencies. Please update using the following command: git pull && npm install
- Add
anytime
group for Compliments module. - Compliments module can use remoteFile without default daytime arrays defined.
- Installer: Use init config.js from config.js.sample.
- Switched out
rrule
package forrrule-alt
and fixes inical.js
in order to fix calendar issues. (#565) - Make mouse events pass through the region fullscreen_above to modules below.
- Scaled the splash screen down to make it a bit more subtle.
- Replace HTML tables with markdown tables in README files.
- Added
DAYAFTERTOMORROW
,UPDATE_NOTIFICATION
andUPDATE_NOTIFICATION_MODULE
to Finnish translations. - Run
npm test
on Travis automatically. - Show the splash screen image even when is reboot or halted.
- Added some missing translaton strings in the sv.json file.
- Run task jsonlint to check translation files.
- Restructured Test Suite.
- Added Docker support (Pull Request #673).
- Calendar-specific support for
maximumEntries
, andmaximumNumberOfDays
. - Add loaded function to modules, providing an async callback.
- Made default newsfeed module aware of gesture events from MMM-Gestures
- Add use pm2 for manager process into Installer RaspberryPi script.
- Russian Translation.
- Afrikaans Translation.
- Add postinstall script to notify user that MagicMirror installed successfully despite warnings from NPM.
- Init tests using mocha.
- Option to use RegExp in Calendar's titleReplace.
- Hungarian Translation.
- Icelandic Translation.
- Add use a script to prevent when is run by SSH session set DISPLAY enviroment.
- Enable ability to set configuration file by the enviroment variable called MM_CONFIG_FILE.
- Option to give each calendar a different color.
- Option for colored min-temp and max-temp.
- Add test e2e helloworld.
- Add test e2e enviroment.
- Add
chai-as-promised
npm module to devDependencies. - Basic set of tests for clock module.
- Run e2e test in Travis.
- Estonian Translation.
- Add test for compliments module for parts of day.
- Korean Translation.
- Added console warning on startup when deprecated config options are used.
- Add option to display temperature unit label to the current weather module.
- Added ability to disable wrapping of news items.
- Added in the ability to hide events in the calendar module based on simple string filters.
- Updated Norwegian translation.
- Added hideLoading option for News Feed module.
- Added configurable dateFormat to clock module.
- Added multiple calendar icon support.
- Added tests for Translations, dev argument, version, dev console.
- Added test anytime feature compliments module.
- Added test ipwhitelist configuration directive.
- Added test for calendar module: default, basic-auth, backward compability, fail-basic-auth.
- Added meta tags to support fullscreen mode on iOS (for server mode)
- Added
ignoreOldItems
andignoreOlderThan
options to the News Feed module - Added test for MM_PORT enviroment variable.
- Added a configurable Week section to the clock module.
- Update .gitignore to not ignore default modules folder.
- Remove white flash on boot up.
- Added
update
in Raspberry Pi installation script. - Fix an issue where the analog clock looked scrambled. (#611)
- If units is set to imperial, the showRainAmount option of weatherforecast will show the correct unit.
- Module currentWeather: check if temperature received from api is defined.
- Fix an issue with module hidden status changing to
true
although lock string prevented showing it. - Fix newsfeed module bug (removeStartTags)
- Fix when is set MM_PORT enviroment variable.
- Fixed missing animation on
this.show(speed)
when module is alone in a region.
Note: This update uses new dependencies. Please update using the following command: git pull && npm install
- Finnish translation.
- Danish translation.
- Turkish translation.
- Option to limit access to certain IP addresses based on the value of
ipWhitelist
in theconfig.js
, default is access from localhost only (Issue #456). - Added ability to change the point of time when calendar events get relative.
- Add Splash screen on boot.
- Add option to show humidity in currentWeather module.
- Add VSCode IntelliSense support.
- Module API: Add Visibility locking to module system. See documentation for more information.
- Module API: Method to overwrite the module's header. See documentation for more information.
- Module API: Option to define the minimum MagicMirror version to run a module. See documentation for more information.
- Calendar module now broadcasts the event list to all other modules using the notification system. See documentation for more information.
- Possibility to use the the calendar feed as the source for the weather (currentweather & weatherforecast) location data. See documentation for more information.
- Added option to show rain amount in the weatherforecast default module
- Add module
updatenotification
to get an update whenever a new version is availabe. See documentation for more information. - Add the abilty to set timezone on the date display in the Clock Module
- Ability to set date format in calendar module
- Possibility to use currentweather for the compliments
- Added option
disabled
for modules. - Added option
address
to set bind address. - Added option
onlyTemp
for currentweather module to show show only current temperature and weather icon. - Added option
remoteFile
to compliments module to load compliment array from filesystem. - Added option
zoom
to scale the whole mirror display with a given factor. - Added option
roundTemp
for currentweather and weatherforecast modules to display temperatures rounded to nearest integer. - Added abilty set the classes option to compliments module for style and text size of compliments.
- Added ability to configure electronOptions
- Calendar module: option to hide private events
- Add root_path for global vars
- Modified translations for Frysk.
- Modified core English translations.
- Updated package.json as a result of Snyk security update.
- Improve object instantiation to prevent reference errors.
- Improve logger.
Log.log()
now accepts multiple arguments. - Remove extensive logging in newsfeed node helper.
- Calendar times are now uniformly capitalized.
- Modules are now secure, and Helmet is now used to prevent abuse of the Mirror's API.
- Solve an issue where module margins would appear when the first module of a section was hidden.
- Solved visual display errors on chrome, if all modules in one of the right sections are hidden.
- Global and Module default config values are no longer modified when setting config values.
- Hide a region if all modules in a region are hidden. Prevention unwanted margins.
- Replaced
electron-prebuilt
package withelectron
in order to fix issues that would happen after 2017. - Documentation of alert module
- Added ability to remove tags from the beginning or end of newsfeed items in 'newsfeed.js'.
- Added ability to define "the day after tomorrow" for calendar events (Definition for German and Dutch already included).
- Added CII Badge (we are compliant with the CII Best Practices)
- Add support for doing http basic auth when loading calendars
- Add the abilty to turn off and on the date display in the Clock Module
- Fix typo in installer.
- Add message to unsupported Pi error to mention that Pi Zeros must use server only mode, as ARMv6 is unsupported. Closes #374.
- Fix API url for weather API.
- Force fullscreen when kioskmode is active.
- Update the .github templates and information with more modern information.
- Update the Gruntfile with a more functional StyleLint implementation.
- Brazilian Portuguese Translation.
- Option to enable Kiosk mode.
- Added ability to start the app with Dev Tools.
- Added ability to turn off the date display in
clock.js
when in analog mode. - Greek Translation
- Prevent
getModules()
selectors from returning duplicate entries. - Append endpoints of weather modules with
/
to retreive the correct data. (Issue #337) - Corrected grammer in
module.js
from 'suspend' to 'suspended'. - Fixed openweathermap.org URL in config sample.
- Prevent currentweather module from crashing when received data object is incorrect.
- Fix issue where translation loading prevented the UI start-up when the language was set to 'en'. (Issue #388)
- Updated package.json to fix possible vulnerabilities. (Using Snyk)
- Updated weathericons
- Updated default weatherforecast to work with the new icons.
- More detailed error message in case config file couldn't be loaded.
- Add max newsitems parameter to the newsfeed module.
- Translations for Simplified Chinese, Traditional Chinese and Japanese.
- Polish Translation
- Add an analog clock in addition to the digital one.
- Edit Alert Module to display title & message if they are provided in the notification (Issue #300)
- Removed 'null' reference from updateModuleContent(). This fixes recent Edge and Internet Explorer browser displays (Issue #319)
- Added default string to calendar titleReplace.
- Norwegian Translations (nb and nn)
- Portuguese Translation
- Swedish Translation
- Added reference to Italian Translation.
- Added the missing NE translation to all languages. #344
- Added proper User-Agent string to calendar call.
- Add option to use locationID in weather modules.
- Changelog
- Italian Translation
- Improve the installer by fetching the latest Node.js without any 3rd party interferences.
It includes (but is not limited to) the following features:
- Modular system allowing 3rd party plugins.
- An Node/Electron based application taking away the need for external servers or browsers.
- A complete development API documentation.
- Small cute fairies that kiss you while you sleep.
This was part of the blogpost: http://michaelteeuw.nl/post/83916869600/magic-mirror-part-vi-production-of-the