A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

Categories

  • Announcements regarding the MagicMirror software and forum.

    58 Topics
    417 Posts
    S
    [2.30.0] - 2025-01-01

    Thanks to: @xsorifc28, @HeikoGr, @bugsounet, @khassel, @KristjanESPERANTO, @rejas, @sdetweil.

    ⚠️ This release needs nodejs version v20 or v22 or higher, minimum version is v20.18.1

    Added [core] Add wayland and windows start options to package.json (#3594) [docs] Add step for npm publishing in release process (#3595) [core] Add GitHub workflow to run spellcheck a few days before each release (#3623) [core] Add test flag to index.html to pass to module js for test mode detection (needed by #3630) [core] Add export on animation names (#3644) [compliments] Add support for refreshing remote compliments file, and test cases (#3630) [linter] Re-add eslint-plugin-importnow that it supports ESLint v9 (#3586) [linter] Re-activate eslint-plugin-package-json to lint package.json (#3643) [linter] Add linting for markdown files (#3646) [linter] Add some handy ESLint rules. [calendar] Add ability to display end date for full date events, where end is not same day (showEnd=true) (#3650) [core] Add text to the config.js.sample file about the locale variable (#3654, #3655) [core] Add fetch timeout for all node_helpers (thru undici, forces node 20.18.1 minimum) to help on slower systems. (#3660) (3661) Changed [core] Run code style checks in workflow only once (#3648) [core] Fix animations export #3644 only on server side (#3649) [core] Use project URL in fallback config (#3656) [core] Fix Access Denied crash writing js/positions.js (on synology nas) #3651. new message, MM starts, but no modules showing (#3652) [linter] Switch to ‘npx’ for lint-staged in pre-commit hook (#3658) Removed [tests] Remove node-pty and drivelist from rebuilded test (#3575) [deps] Remove @eslint/js dependency. Already installed with eslint in deep (#3636) Updated [repo] Reactivate stale.yaml as GitHub action to mark issues as stale after 60 days and close them 7 days later (if no activity) (#3577, #3580, #3581) [core] Update electron dependency to v32 (test electron rebuild) and all other dependencies too (#3657) [tests] All test configs have been updated to allow full external access, allowing for easier debugging (especially when running as a container) [core] Run and test with node 23 (#3588) [workflow] delete exception allow-ghsas: GHSA-8hc4-vh64-cxmj in dep-review.yaml (#3659) Fixed [updatenotification] Fix pm2 using detection when pm2 script is inside or outside MagicMirror root folder (#3576) (#3605) (#3626) (#3628) [core] Fix loading node_helper of modules: avoid black screen, display errors and continue loading with next module (#3578) [weather] Change default value for weatherEndpoint of provider openweathermap to “/onecall” (#3574) [tests] Fix electron tests with mock dates, the mock on server side was missing (#3597) [tests] Fix testcases with hard coded Date.now (#3597) [core] Fix missing basePath where location.host is used (#3613) [compliments] croner library changed filenames used in latest version (#3624) [linter] Fix ESLint ignore pattern which caused that default modules not to be linted (#3632) [core] Fix module path in case of sub/sub folder is used and use path.resolve for resolve moduleFolder and defaultModuleFolder in app.js (#3653) [calendar] Update to resolve issues #3098 #3144 #3351 #3422 #3443 #3467 #3537 related to timezone changes [calendar] Fix #3267 (styles array), also fixes event with both exdate AND recurrence(and testcase) [calendar] Fix showEndsOnlyWithDuration not working, #3598, applies ONLY to full day events [calendar] Fix showEnd for Full Day events (#3602) [tests] Suppress “module is not defined” in e2e tests (#3647) [calendar] Fix #3267 (styles array, really this time!) [core] Fix #3662 js/positions.js created incorrectly

    https://github.com/MagicMirrorOrg/MagicMirror/releases/tag/v2.30.0

  • Discuss the MagicMirror² core framework.

    472 Topics
    4k Posts
    S

    @casper1 can you explain more??

    what did you do? update node??

  • Anything harware related can be found here.

    767 Topics
    7k Posts
    S

    The ReSpeaker 4-Mic Array is currently out of stock everywhere. Spent quite a while researching on the forum and elsewhere, before posting this. I believe it’s one of the best microphones for MM integration with voice control. Are there any similar or better alternatives available?

  • Add exciting new features to your mirror.

    6k Topics
    55k Posts
    M

    @oquendo421

    maximumEntries: 4,

    Hmmmm… I think you’d better increase this value more.

  • Make your mirror your own but modifying its appearance.

    409 Topics
    3k Posts
    K

    Hi everyone, i have no clue what im doing…i dont know how to code or really how the rpi/magicmirror works but here i am. So basically im using the default weather module (as it works) and i just wanna replace those icons with custom icons. I also wanna note that im using openmeteo and not the default openweathermap or wtv its called because it didn’t work.

    here is my config.js file (the weather part):

    module: "weather", position: "top_right", // Adjust position as needed locationName: "xxxx", displayLocation: "xxxx", header: "xxxx", config: { locationName: "xxxx", displayLocation: "xxxx", header: "xxxx", weatherProvider: "openmeteo", // Specify the Open-Meteo provider apiBase: "https://api.open-meteo.com/v1", // REQUIRED: Base URL for Open-Meteo lat: xxxx, // REQUIRED: Latitude of the location lon: xxxx, // REQUIRED: Longitude of the location maxNumberOfDays: 8, // OPTIONAL: Number of forecast days (default is 5) pastDays: 0, // OPTIONAL: Number of past days of data to include (default is 0) units: "imperial", // Set this to 'imperial' for Fahrenheit and miles per hour tempUnits: "imperial", // Make sure to match with 'imperial' windUnits: "imperial", type: "current", // OPTIONAL: Change to "current" if only current weather data is desired iconTable: { '0': 'wi-day-sunny', // Clear sky '1': 'wi-day-cloudy', // Mainly clear '2': 'wi-cloudy', // Partly cloudy '3': 'wi-cloudy', // Overcast '45': 'wi-fog', // Fog '48': 'wi-fog', // Depositing rime fog '51': 'wi-showers', // Drizzle: Light intensity '53': 'wi-showers', // Drizzle: Moderate intensity '55': 'wi-showers', // Drizzle: Dense intensity '56': 'wi-sleet', // Freezing drizzle: Light intensity '57': 'wi-sleet', // Freezing drizzle: Dense intensity '61': 'wi-rain', // Rain: Slight '63': 'wi-rain', // Rain: Moderate '65': 'wi-rain', // Rain: Heavy intensity '66': 'wi-sleet', // Freezing rain: Light intensity '67': 'wi-sleet', // Freezing rain: Heavy intensity '71': 'wi-snow', // Snow fall: Slight '73': 'wi-snow', // Snow fall: Moderate '75': 'wi-snow', // Snow fall: Heavy intensity '77': 'wi-snow', // Snow grains '80': 'wi-showers', // Rain showers: Slight '81': 'wi-rain', // Rain showers: Moderate '82': 'wi-rain', // Rain showers: Violent '85': 'wi-snow', // Snow showers: Slight '86': 'wi-snow', // Snow showers: Heavy '95': 'wi-thunderstorm', // Thunderstorm: Slight or moderate '96': 'wi-thunderstorm', // Thunderstorm with slight hail '99': 'wi-thunderstorm' // Thunderstorm with heavy hail } } }, { module: "weather", position: "top_right", // Adjust position as needed locationName: "xxxx", displayLocation: "xxxx", header: "xxxx", config: { locationName: "xxxx", displayLocation: "xxxx", header: "xxxx", weatherProvider: "openmeteo", // Specify the Open-Meteo provider apiBase: "https://api.open-meteo.com/v1", // REQUIRED: Base URL for Open-Meteo lat: xxxx, // REQUIRED: Latitude of the location lon: xxxx, // REQUIRED: Longitude of the location maxNumberOfDays: 8, // OPTIONAL: Number of forecast days (default is 5) pastDays: 0, // OPTIONAL: Number of past days of data to include (default is 0) units: "imperial", // Set this to 'imperial' for Fahrenheit and miles per hour tempUnits: "imperial", // Make sure to match with 'imperial' windUnits: "imperial", type: "forecast", // OPTIONAL: Change to "current" if only current weather data is desired iconTable: { '0': 'wi-day-sunny', // Clear sky '1': 'wi-day-cloudy', // Mainly clear '2': 'wi-cloudy', // Partly cloudy '3': 'wi-cloudy', // Overcast '45': 'wi-fog', // Fog '48': 'wi-fog', // Depositing rime fog '51': 'wi-showers', // Drizzle: Light intensity '53': 'wi-showers', // Drizzle: Moderate intensity '55': 'wi-showers', // Drizzle: Dense intensity '56': 'wi-sleet', // Freezing drizzle: Light intensity '57': 'wi-sleet', // Freezing drizzle: Dense intensity '61': 'wi-rain', // Rain: Slight '63': 'wi-rain', // Rain: Moderate '65': 'wi-rain', // Rain: Heavy intensity '66': 'wi-sleet', // Freezing rain: Light intensity '67': 'wi-sleet', // Freezing rain: Heavy intensity '71': 'wi-snow', // Snow fall: Slight '73': 'wi-snow', // Snow fall: Moderate '75': 'wi-snow', // Snow fall: Heavy intensity '77': 'wi-snow', // Snow grains '80': 'wi-showers', // Rain showers: Slight '81': 'wi-rain', // Rain showers: Moderate '82': 'wi-rain', // Rain showers: Violent '85': 'wi-snow', // Snow showers: Slight '86': 'wi-snow', // Snow showers: Heavy '95': 'wi-thunderstorm', // Thunderstorm: Slight or moderate '96': 'wi-thunderstorm', // Thunderstorm with slight hail '99': 'wi-thunderstorm' // Thunderstorm with heavy hail } } },

    sorry if that looks bad…also note that i got that table from this reddit post (the second image in the post): https://www.reddit.com/r/filemaker/comments/14yrpb9/openmeteo_weather_api_integration_free_icons_free/

    here is my custom.css file:

    /*! * Weather Icons 2.0.8 * Updated September 19, 2015 * Weather themed icons for Bootstrap * Author - Erik Flowers - erik@helloerik.com * Email: erik@helloerik.com * Twitter: http://twitter.com/Erik_UX * ------------------------------------------------------------------------------ * Maintained at http://erikflowers.github.io/weather-icons * * License * ------------------------------------------------------------------------------ * - Font licensed under SIL OFL 1.1 - * http://scripts.sil.org/OFL * - CSS, SCSS and LESS are licensed under MIT License - * http://opensource.org/licenses/mit-license.html * - Documentation licensed under CC BY 3.0 - * http://creativecommons.org/licenses/by/3.0/ * - Inspired by and works great as a companion with Font Awesome * "Font Awesome by Dave Gandy - http://fontawesome.io" */ @font-face { font-family: 'weathericons'; src: url('../font/weathericons-regular-webfont.woff') format('woff'); font-weight: normal; font-style: normal; } .wi { display: inline-block; font-family: 'weathericons'; font-style: normal; font-weight: normal; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .wi-fw { text-align: center; width: 1.4em; } .wi-rotate-90 { filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); } .wi-rotate-180 { filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); } .wi-rotate-270 { filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); } .wi-flip-horizontal { filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); -webkit-transform: scale(-1, 1); -ms-transform: scale(-1, 1); transform: scale(-1, 1); } .wi-flip-vertical { filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); -webkit-transform: scale(1, -1); -ms-transform: scale(1, -1); transform: scale(1, -1); } /* Current Weather Icons */ .currentweather .wi-day-sunny { content: url("/home/kool/MagicMirror/css/icons/6fa/day.svg") !important; } .currentweather .wi-night-clear { content: url("/home/kool/MagicMirror/css/icons/6fa/night.svg") !important; } .currentweather .wi-cloudy { content: url("/home/kool/MagicMirror/css/icons/6fa/cloudy.svg") !important; } .currentweather .wi-fog { content: url("/home/kool/MagicMirror/css/icons/6fa/fog.svg") !important; } .currentweather .wi-rain { content: url("/home/kool/MagicMirror/css/icons/6fa/rain.svg") !important; } /* Add more current weather icons as needed */ /* Weather Forecast Icons */ } .weatherforecast .wi-day-sunny { content: url("/home/kool/MagicMirror/css/icons/6fas/day.svg") !important; } .weatherforecast .wi-night-clear { content: url("/home/kool/MagicMirror/css/icons/6fa/night.svg") !important; } .weatherforecast .wi-cloudy { content: url("/home/kool/MagicMirror/css/icons/6fa/cloudy.svg") !important; } .weatherforecast .wi-fog { content: url("/home/kool/MagicMirror/css/icons/6fa/fog.svg") !important; } .weatherforecast .wi-rain { content: url("/home/kool/MagicMirror/css/icons/6fa/rain.svg") !important; } /* Hide Humidity */ .humidity { display: none !important; }

    I got the icons from this other weather module (but that module didn’t work as openweathermap is like glitchy or something)… weather module link: https://github.com/MarcLandis/MMM-OpenWeatherMapForecast
    when i try to load the magic mirror, i see the numbers - like whats the weather and stuff, but i keep getting the default weather icons.
    basically my idea was to override the default weather icons with some custom weather icons that i found but its not exactly working
    any help would be greatly appreciated plz help me :(

  • Share your project story with pictures.

    551 Topics
    5k Posts
    S

    @cyclonej Congratulations!!

  • You have a problem with your mirror? Ask for help.

    5k Topics
    33k Posts
    evroomE

    @plainbroke
    Yes, that makes sense.
    Keyword: overlay.
    I will reply in the MPlayer issue you opened for this, to not hijack this topic.

  • A place to talk about whatever you want.

    1k Topics
    9k Posts
    S

    @veldje this doesn’t appear to be a feature of this module

    to contact the author, open an issue here to ask for that enhancement

    https://github.com/amitchone/MMM-birthdays/issues