A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.
  • Caldav freezes saying "loading"

    Unsolved Troubleshooting
    1
    0 Votes
    1 Posts
    31 Views
    T

    I have 2 different Caldavs that I pull from the same server. One works fine the other always displays “loading …”. I have looked in the output from pms logs and I don’t see any errors relating to the calendar. It just says:
    Calendar-fetcher: Broadcasting 64 events
    I was wondering if there is anywhere else that I can look to find more errors that might explain what is happening. This has worked in the past and for some reason now it just won’t. I was thinking that perhaps there could be some character or entry in one of my calendar events that is causing an issue. But I don’t know where to go to find specific calendar errors. The mirror is running on a raspberry pi 3B

  • Current birthday disappears too early

    Forum
    2
    0 Votes
    2 Posts
    39 Views
    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

  • Problems with KristjanESPERANTO/MMM-PublicTransportHafas

    Solved Troubleshooting
    6
    0 Votes
    6 Posts
    97 Views
    S

    @Klinge also, if you don’t know where an modules github page is (or don’t remember as we all do)

    in the module folder do

    git remote -v

    and it will give you the url where this module came from

  • Spot Energy Module (Nordpool?)

    Unsolved Requests
    4
    0 Votes
    4 Posts
    618 Views
    L

    @x5nder Sorry for this very late reply, i was not aware of your question though maybe you already found the answer or my answer is no longer needed. But since i found it by a simple google search. Maybe others seeks the same answer.

    First of all, yes. As of Jan 2025 i am still maintaining this module.
    Region code to use for fetching the correct price area are listed over at Nordpool

    https://data.nordpoolgroup.com/map?deliveryDate=latest&currency=EUR&market=DayAhead&mapDataType=Price&resolution=60

    Netherlands (Dutch?) is NL
    France is FR
    Oslo area is NO1
    Poland is PL
    and so on…

  • 2 Votes
    2 Posts
    101 Views
    KristjanESPERANTOK

    @mrbreaker76 Nice! Don’t forget to it to the module list. And a screenshot would be nice 😀

  • MMM-Carousel error when position is undefined

    Solved Troubleshooting
    9
    0 Votes
    9 Posts
    892 Views
    S

    @Chunnel414 long as you got it!!

  • Mirror Redesign and update

    Show your Mirror
    7
    4 Votes
    7 Posts
    727 Views
    W

    Challenged by my son to add “swipe”

    Adding MMM-Touch to the configuration.

    /* Config.js.template * Date Version Initials Comments * --------- --------- ---------- ------------------------------------------------------------------- * 09JAN25 0.9 WKS Updated file to a template format and config.env file created * 09JAN25 0.9a WKS Tested with Millbury location - passes check * 09JAN25 1.0 WKS Tested with Davenport location - passes check * * * For more information on how you can configure this file * see https://docs.magicmirror.builders/configuration/introduction.html * and https://docs.magicmirror.builders/modules/configuration.html * * You can use environment variables using a `config.js.template` file instead of `config.js` * which will be converted to `config.js` while starting. For more information * see https://docs.magicmirror.builders/configuration/introduction.html#enviromnent-variables */ let config = { address: "${CONFIG_ADDRESS}", // Address to listen on, can be: // - "localhost", "127.0.0.1", "::1" to listen on loopback interface // - another specific IPv4/6 to listen on a specific interface // - "0.0.0.0", "::" to listen on any interface // Default, when address config is left out or empty, is "localhost" port: ${CONFIG_PORT}, basePath: "/", // The URL path where MagicMirror² is hosted. If you are using a Reverse proxy // you must set the sub path here. basePath must end with a / ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.1/120"], // or add a specific IPv4 of 192.168.1.5 : // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"], // or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format : // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"], useHttps: ${USEHTTPS}, // Support HTTPS or not, default "false" will use HTTP httpsPrivateKey: "", // HTTPS private key path, only require when useHttps is true httpsCertificate: "", // HTTPS Certificate path, only require when useHttps is true language: "en", locale: "en-US", logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging timeFormat: 12, units: "${STANDARD_UNITS}", modules: [ //********************************************* // Setup the pages and sequences for display // Location: https://github.com/edward-shen/MMM-pages //*********************************************/ { module: "MMM-pages", config: { modules: [ ['calendar', "clock", "currentweather", "MMM-EyeCandy", 'MMM-Jast'], // Page 1: Dashboard display ["MMM-CalendarExt3", 'MMM-Multimonth'], // Page 2: Calendar displays ["currentweather", "weather", "MMM-EyeCandy", "MMM-WeatherGraph"], // Page 3: Weather page ["newsfeed", 'MMM-MyScoreboard', "MMM-MktIndex", 'MMM-FoxNews', 'MMM-AVStock', 'MMM-EarthquakeMonitor'], // Page 4: News and Information ["MMM-Tools", "MMM-TigoEnergySolar", 'MMM-Fuel', 'MMM-JsonTable', 'MMM-SmartOil'], // Page 5: Tools and other data ["MMM-Flights"] // Page 6: Flight data ], fixed: ["MMM-TouchButton", "MMM-Wallpaper", "MMM-page-indicator", 'MMM-Touch'], // Fixed modules on all pages animationTime: 1000, // Transition time in milliseconds rotationHomePage: 20000, rotationDelay: 10000, homePage: 0, } }, { module: 'MMM-SmartOil', position: 'top_left', config: { } }, // ---------- // Base home page modules on page 1 // ---------- //********************************************* // Display clock module // Pages: 1 // Location: Magic Mirror module //*********************************************/ { module: "clock", position: "top_left", config: { clockBold: true, timeZone: "${TIMEZONE}", showSunTimes: true, showMoonTimes: true, lat: ${LATTITUDE}, lon: ${LONGITUDE}, displayType: "digital" } }, //********************************************* // Stock listings // Pages: 1 // Location: https://github.com/jalibu/MMM-Jast //*********************************************/ { module: 'MMM-Jast', position: 'upper_third', config: { currencyStyle: "symbol", // One of ["code", "symbol", "name"] fadeSpeedInSeconds: 3.5, lastUpdateFormat: "HH:mm", maxChangeAge: 1 * 24 * 60 * 60 * 1000, maxWidth: "100%", numberDecimalsPercentages: 1, numberDecimalsValues: 2, displayMode: "static", // One of ["none", "vertical", "horizontal", "table"] showColors: true, showCurrency: true, showChangePercent: true, showChangeValue: true, showChangeValueCurrency: false, showHiddenStocks: false, showLastUpdate: false, showPortfolioValue: false, showPortfolioGrowthPercent: false, showPortfolioGrowth: false, showPortfolioPerformanceValue: false, showPortfolioPerformancePercent: false, showStockPerformanceValue: false, showStockPerformanceValueSum: false, showStockPerformancePercent: false, stocksPerPage: 3, // Only relevant for display mode "table" updateIntervalInSeconds: 300, useGrouping: false, virtualHorizontalMultiplier: 2, stocks: [ { name: 'APPLE', symbol: 'AAPL'}, { name: 'Dell', symbol: 'DELL'}, { name: 'Google', symbol: 'GOOGL'}, ] } }, // -------- // News modules on page 3 // -------- //********************************************* // MMM-MyScoreBoard to display sports scores for major leagues // Pages: 4 - News // Location: https://github.com/jclarke0000/MMM-MyScoreboard //*********************************************/ { module: "MMM-MyScoreboard", position: "bottom_right", classes: "default everyone", header: "My Scoreboard", config: { showLeagueSeparators: true, colored: true, viewStyle: "mediumLogos", sports: [ { league: "NHL", teams: ["BOS"], teams: ["Atlantic"], }, { league: "NBA", teams: ["BOS"], groups: ["East"], }, { league: "MLB", teams: ["BOS"] }, { league: "NFL", teams: ["NE"] }, ], } }, //********************************************* // MMM-EarthquakeMonitor // Pages: 4 - News // Location: https://github.com/rcollie/MMM-EarthquakeMonitor //*********************************************/ { module: "MMM-EarthquakeMonitor", position: "bottom_left", config: { updateInterval: 600000, maxNumberOfQuakes: 5, apiUrl: "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/4.5_day.geojson" } }, //********************************************* // My FoxNews module to display the FoxNews headlines with URL // Pages: 4 // Location: TBD - Still in development //*********************************************/ { module: 'MMM-FoxNews', position: 'upper_third', header: 'FoxNews Headlines', config: { updateInterval: 600000, // Update every 10 minutes maxItems: 3, // Show top 3 stories debugFlag: false, // Development flag } }, //********************************************* // Stock listings // Pages: 4 // Location: https://github.com/lavolp3/MMM-AVStock //*********************************************/ { module: 'MMM-AVStock', position: 'upper_third', header: "Market", config: { symbols : ['AAPL', 'DELL', 'GOOGL'], alias: ['Apple', 'Dell', 'Google'], } }, //********************************************* // Display market indexes on the news page // Pages: 4 // Location: https://github.com/thess/MMM-MktIndex //*********************************************/ { module: "MMM-MktIndex", position: "bottom_right", config:{ timeFormat: "YYYY-MM-DD HH:mm:ss", updateInterval: 180, } }, //********************************************* // Display newsfeed - default module // Pages: 4 // Location: MagicMirror //*********************************************/ { module: "newsfeed", position: "bottom_bar", config: { feeds: [ { title: "New York Times", url: "https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml" } ], showSourceTitle: true, showPublishDate: true } }, //------------------- // Flights page 6 // ------------------ //********************************************* // Show local flights on the map // Pages: 6 // Location: https://gitlab.com/khassel/MMM-Flights //*********************************************/ { module: 'MMM-Flights', position: 'upper_third', provider: "${FLIGHT_PROVIDER}", config: { laMin: ${FLIGHT_LAMIN}, laMax: ${FLIGHT_LAMAX}, loMax: ${FLIGHT_LOMIN}, loMin: ${FLIGHT_LOMAX}, showGrounded: false, showMap: 'ifTraffic', mapHeight: "400px", mapFixedArea: false, mapFont: '900 12px "Font Awesome 6 Free"', mapGetPlaneText(flight) { let txt = flight.flight; if (!txt) txt = flight.radar; txt = txt + "\n" + flight.altitude; if (flight.rateOfClimb < 0) { txt = txt + " \uf5af"; } else if (flight.rateOfClimb > 0) { txt = txt + " \uf5b0"; } return txt; }, }, }, //--------------------- // Tools & Settings page 5 // -------------------- //********************************************* // Tools display for settings // Pages: 5 // Location: https://github.com/eouia/MMM-Tools //*********************************************/ { module: 'MMM-Tools', position: 'top_right', header: "System Statistics", config: { refresh: 500 * 5, containerSize: null, itemSize: null } }, //********************************************* // My module created for FL Solar - Tigo Energy API // Pages: 5 // Location: TBD in development //*********************************************/ { module: "MMM-TigoEnergySolar", position: "bottom_left", // The position where you want to display the module header: "Tigo Energy Solar Dashboard", config: { apiUrl: "${TIGOENERGY_API}", username: "${TIGOENERGY_USERNAME}", password: "${TIGOENERGY_PASSWORD}", systemId: "${TIGOENERGY_SYSTEMID}", debugFlag: false, } }, //********************************************* // Fuel prices module // Pages: 5 // Location: https://github.com/fewieden/MMM-Fuel //*********************************************/ { module: "MMM-Fuel", position: "bottom_bar", config: { provider: "${MMM_FUEL_PROVIDER}", zip: "${ZIP_CODE}", types: ["regular", "midgrade", "premium"], open: true, showDistance: false, showBrand: true, } }, //********************************************* // JSON Table - used to display SmartOil output // Pages: 5 // Location: https://github.com/timdows/MMM-JsonTable //*********************************************/ { module: 'MMM-JsonTable', position: 'top_left', header: '${LOCATION_NAME} Smart Oil Sensor', config: { url: '${SMARTOIL_URL}', arrayName: '${SMARTOIL_ARRAYNAME}', } }, //********************************************* // Background wallpaper from bing // Pages: All // Location: https://github.com/kolbyjack/MMM-Wallpaper //*********************************************/ { module: "MMM-Wallpaper", position: "fullscreen_below", config: { source: "bing", slideInterval: 60 * 1000, // Change slides every minute crossfade: true, fadeEdges: true, filter: "brightness(0.2)", maximumEntries: 25, caption: true, } }, //********************************************* // Weather Graph // Pages: 3 // Location: https://github.com/FlatPepsi17/MMM-WeatherGraph //*********************************************/ { module: 'MMM-WeatherGraph', header: '${LOCATION_FULL_NAME}', position: 'top_right', // This can be any of the regions. config: { apiKey: "${OPENWEATHER_APIKEY}", showForecast: true, // 7 day forecast list showForecastPrecip: true, // show precip totals in 7 day list showGraph: true, // enable all graphing of weather precipitationGraphWidth: 400, // width in pixels. Default=400 precipitationGraphHeight: 150, // height in pixels. 0=auto-scales graphHourRange: 48, // how many hours in the graph? Max 48 showWind: true, // current wind speed at top showGraphPrecip: true, // on graph, show rain and snowfall showGraphTemp: true, // on graph, show temp graphTempColor: 'white', // on graph, color of temp line showGraphWind: true, // on graph, show wind graphWindColor: 'grey', // on graph, color of temp line showGraphHumid: true, // on graph, show humidity humidWindColor: '#88CC88', // on graph, color of humid line showGraphCloud: true, // on graph, show cloud cover % graphCloudColor: '#dedb49', // on graph, color of cloud line showSunrise: true, // next sunrise or sunset at top showSummary: true, // text of next hour's conditions showHotColdLines: true, // blue line at freezing, red line at 80 F showGraphLegend: true, // legend on bottom right of graph language: 'en', units: '${STANDARD_UNITS}', // or 'metric' time24hr: false, // false for 12hr times, true for 24hr times updateInterval: 1900000, // 15 minutes ( 15 * 60 * 1000 ) animationSpeed: 2000, // 2 seconds (2*1000) initialLoadDelay: 0, // 0 seconds (0*1000) retryDelay: 2500, // 2.5 seconds (2*1000) latitude: ${LATTITUDE}, longitude: ${LONGITUDE} } }, //********************************************* // EyeCandy used to display the local radar images // Pages: 3 // Location: https://github.com/mykle1/MMM-EyeCandy //*********************************************/ { module: "MMM-EyeCandy", header: "${LOCATION_NAME} Radar", position: "bottom_center", config: { maxWidth: "100%", // Sizes the images. Retains aspect ratio. style: '1', // Style number or use ownImagePath to override style ownImagePath: "${EYECANDY_RADAR_URL}", } }, //********************************************* // Display Weather Module // Pages: 1, 3 // Locations: Standard MagicMirror module //*********************************************/ { module: "weather", position: "bottom_center", classes: "currentweather", config: { weatherProvider: "${WEATHER_PROVIDER}", units: "${STANDARD_UNITS}", tempUnits: "${STANDARD_UNITS}", roundTemp: true, type: "current", lat: ${LATTITUDE}, lon: ${LONGITUDE} } }, //********************************************* // Display Weather Module // Pages: 3 // Locations: Standard MagicMirror module //*********************************************/ { module: "weather", position: "top_left", header: "${OPPOSITE_LOCATION} Weather", config: { weatherProvider: "${WEATHER_PROVIDER}", units: "${STANDARD_UNITS}", tempUnits: "${STANDARD_UNITS}", roundTemp: true, type: "forecast", tableClass: 'medium', lat: ${OPPOSITE_LATTITUDE}, lon: ${OPPOSITE_LONGITUDE} } }, //********************************************* // Display multi-month calendar // Pages: 2 // Locations: https://github.com/BKeyport/MMM-Multimonth //*********************************************/ { module: "MMM-Multimonth", position: "bottom_bar", config: { bigCalendar: false, monthCount: 2, monthsVertical: false, startMonth: 0, } }, //********************************************* // Calendar module for the list of calendars // Pages: // Locations: MagicMirror default module //*********************************************/ { module: "calendar", header: "Family Events", position: "top_right", hiddenOnStartup: true, config: { broadcastPastEvents: true, calendars: [ { symbol: "calendar-check", name: "family_events", color: "blue", url: "${FAMILYEVENTS_CALENDAR_URL}", }, { symbol: "calendar-check", name: "wind_mill", color: "red", url: "${WINDMILLVILLAGE_CALENDAR_URL}", }, { symbol: "calendar-check", name: "dates_to_remember", color: "gray", url: "${DATESTOREMEMBER_CALENDAR_URL}", }, { symbol: "calendar-check", name: "us_holidays", color: "red", url: "${HOLIDAY_CALENDAR_URL}" } ] } }, //********************************************* // Display the big ole calendar // Pages: 2 // Locations: https://github.com/MMRIZE/MMM-CalendarExt3 //*********************************************/ { module: "MMM-CalendarExt3", position: "middle_center", title: "", config: { mode: "week", instanceId: "basicCalendar", locale: 'en-US', weeksInView: 4, maxEventLines: 5, firstDayOfWeek: 0, calendarSet: ['family_events', "us_holidays", "wind_mill" , "dates_to_remember"], } }, //********************************************* // Touch buttons on the top of the screen // Pages: All // Locations: https://github.com/Tom-Hirschberger/MMM-TouchButton //*********************************************/ { module: "MMM-TouchButton", position: "top_bar", config: { buttons: [ { label: "Page1", // Label for Page 1 button imgIcon: "${BUTTON1_IMAGE}", action: "notification", // Trigger notification action notification: "PAGE_CHANGED", // Predefined notification in MMM-Pages payload: 0 // Page index (starts at 0) }, { label: "Page2", // Label for Page 2 button action: "notification", imgIcon: "${BUTTON2_IMAGE}", notification: "PAGE_CHANGED", payload: 1 // Page index for Page 2 }, { label: "Page3", // Label for Page 3 button imgIcon: "${BUTTON3_IMAGE}", action: "notification", notification: "PAGE_CHANGED", payload: 2 // Page index for Page 3 }, { label: "Page4", // Label for Page 4 button imgIcon: "${BUTTON4_IMAGE}", action: "notification", notification: "PAGE_CHANGED", payload: 3 // Page index for Page 4 }, { label: "Page5", // Label for Page 5 button imgIcon: "${BUTTON5_IMAGE}", action: "notification", notification: "PAGE_CHANGED", payload: 4 // Page index for Page 5 }, { label: "Page6", // Label for Page 5 button imgIcon: "${BUTTON6_IMAGE}", action: "notification", notification: "PAGE_CHANGED", payload: 5 // Page index for Page 5 } ], buttonStyle: { color: "#ffffff", backgroundColor: "#0000ff" }, panelStyle: { borderRadius: "10px", padding: "10px" } } }, //********************************************* // Page indicators on the bottom of the screen // Pages: All // Locations: https://github.com/edward-shen/MMM-page-indicator //*********************************************/ { module: "MMM-page-indicator", position: 'bottom_bar', config: { pages: 6, }, }, //********************************************* // Enable gesture commands on the mirror // Pages: All // Locations: https://github.com/gfischershaw/MMM-Touch //*********************************************/ { module: "MMM-Touch", position: "bottom_bar", disabled: false, config: { debug: false, useDisplay: false, autoMode: false, defaultMode: "default", gestureCommands: { "default":{ "TAP_1": (commander) => {commander.sendNotification("USER_PRESENCE", true);}, "SWIPE_LEFT_1": (commander) => {commander.sendNotification("PAGE_INCREMENT", null);}, "SWIPE_RIGHT_1": (commander) => {commander.sendNotification("PAGE_DECREMENT", null);}, }, }, }, }, ] }; if (typeof module !== "undefined") {module.exports = config;}
  • Introduce yourself!

    Pinned General Discussion
    194
    3 Votes
    194 Posts
    242k Views
    C

    Hi All,

    New user here and wanted to introduce myself.

    I am creating a digital calendar with touch capabilities (hopefully😅).

    I am enjoying the process. It has brought on quite a few firsts.

    First time using a raspberry pi (PI4/4GB).
    First time using GitHub.
    First time spending so much time in Linux.

    It will probably be my intro into CSS and woodworking as well.

    Thanks for all the great work the many contributors.

  • Placing a module in a specific spot?

    General Discussion
    2
    0 Votes
    2 Posts
    131 Views
    S

    @daykray you will have to use css

    position:absolute

    and

    x y

    or

    top left

    see the second link in my signature below on how to use the developer window elements tab to find out what those values are for css/custom.css

    or position relative to some other anchor (maybe the position the module is configured in)

  • MMM-AirQuality using OpenWeatherMap.org

    Utilities
    1
    0 Votes
    1 Posts
    148 Views
    B

    Hi
    I have created a module to use the OpenWeatherMap Air Pollution API Air pollution data using the onecall version 3.0 API. The module is based on the CFenner MMM-AirQuality module and Dennis Rosenbaum MMM-Template (Thanks)

    You can find it on Github here MMM-AirQuality

    It would be great to get some feedback, I have tested it on Raspberry Pi and MacOS without any issues.
    The default Air quality index is for the UK, I am working on adding the indexes used around the world to add to the module soon.

    Thanks for your time

    Ira

    See example image
    AirQualityImage.png

  • mmm-welcome

    Unsolved Troubleshooting
    1
    0 Votes
    1 Posts
    130 Views
    M

    Bonjour, j’ai installé le module MMM-Welcome. il me dit qu’il ne sait pas lire les actualités pour le moment. comment utiliser ce module et quelles sont les autres possibilités ?

    Merci

  • 0 Votes
    8 Posts
    173 Views
    S

    @joey i found my bug and fixed it. now every setup will auto restart

  • Live phone location

    Unsolved Requests
    10
    0 Votes
    10 Posts
    1k Views
    plainbrokeP

    @CharlesBarden
    That is some expensive free stuff. 48 bucks a month. Not something this community wants to know about I would guess. Spy ware is not always clean it usually has some kind of virus or key logger to steal your information for the person providing the spyware.

  • 0 Votes
    9 Posts
    386 Views
    A

    @sdetweil yeah that’s what I ended up doing. Thank you again for all your help the last few days! Glad to have everything back to normal.

  • MM-Update doesn´t work

    Solved Troubleshooting
    12
    0 Votes
    12 Posts
    295 Views
    kusselinK

    @sdetweil thank you sam…topp service

  • 0 Votes
    5 Posts
    150 Views
    M

    @blinkybob
    I’ve been running into some challenges with the direction settings too. Please try ignoreRelatedStations: true parameter. That helped me in the first module. Unfortunately, it didn’t help in the second one for the opposite direction.

  • sounds familiar? undici

    Solved Troubleshooting
    4
    0 Votes
    4 Posts
    148 Views
    S

    @ReD1470 this is why i created the upgrade script, cause there lots of little things that will make you unhappy!

  • Help with calendar

    Show your Mirror
    27
    0 Votes
    27 Posts
    688 Views
    S

    @gerbenz said in Help with calendar:

    i have in the calendar conifg: useSymbol: false,
    butt then i gett a dott at the beginning of the event.
    is it possible to remove it?

    yes, some css setting

    and i have six calendars with different collors and that works.
    but hole day events don’t color.

    css setting

    They have black text with white border around it.

    i want the color that is corrosponding with the right calendar.

    css setting

    I don’t know all the possible css settings for this module. the author has made it quite flexible via css… but like all decent manuals/readme, he provides a reference (this module has these things) , “application” of the things takes critical thinking and exploration.

    one thing to help learn/make progress is to use the browser developer window, elements tab to userstand/test css changes on the live page

    see the second link in my signature below

  • 0 Votes
    12 Posts
    630 Views
    S

    @casper1 can you explain more??

    what did you do? update node??

  • MM-Watcher - MagicMirror Config.js Auto-Refresh Script

    System
    10
    1 Votes
    10 Posts
    289 Views
    S

    @plainbroke well, mine looks nearly identical… just missing the cwd…

    I opened an issue about this 2 years ago, never got a response…
    and adding cwd (current working directory)

    I don’t know how that matters… but whatever… it works now…