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

    1
    2 Votes
    1 Posts
    296 Views
    C
    Hello, finally I finished my first MM-module. I was struggling with the existing shelly modules so I decided to create a new one which uses only the cloud-api in order to be independent from the device itself. MMM-ShellyStatusTable The MMM-ShellyStatusTable module displays the switch status and power consumption of multiple Shelly devices in a table on the MagicMirror², including a total consumption sum. It regularly updates the data via the Shelly Cloud API Gen 1 and Gen 2+. So it should be independed from the devices in your smart home. It is currently hard to say if every device is considered correctly. I have the following devices and it works: Shelly Plug / PlugS Shelly Plus Plug S Shelly Plus 1 PM Currently no translation is available. It will follow in the next days. But it is not hard to fix by your own, I hope. I’m not really a module developer but ChatGPT finally fixed it :-) Please try and give me a feedback if you discover some problems. Maybe I can help, but I’m no sure at all :laugh:
  • MMM-NOAAAlerts

    3
    2
    2 Votes
    3 Posts
    870 Views
    KristjanESPERANTOK
    @mattkab Please add it to the module list :-)
  • Rolling 30 day calendar

    2
    0 Votes
    2 Posts
    280 Views
    S
    @siujd2001 css, he gives names in the doc i think he has week view not day view
  • MMM-CalendarExt3 - wrong icon shown in legend

    1
    1
    0 Votes
    1 Posts
    224 Views
    L
    Hi @all I have an issue with the icons/symbols, that are shown in the legend. Sometimes the legend shows an icon of the event (eventTransformer) instead of the default-calendar-icon. I am using iconify icons. For a better understanding please have a look at the screenshot: e.g. the yellow calendar. The default icon should be a brick-head one. You can find it e.g. on Monday at “LAC Training”. The Legend instead shows the bread icon. I am using the bread-icon via eventTransformer only for events that calls “Brotbüchse”. Why the legend shows this icon instead of the default one? [image: 1730100687539-calendarext3.jpeg] Here the main code of the calendar module: { module: "calendar", header: "TErmINe", //position: "top_left", config: { defaultSymbolClassName: '', useIconify: true, broadcastPastEvents: true, calendars: [ { name: "Ludwig", color: "#CD2626", fetchInterval: 5 * 60 * 1000, symbol: "game-icons:trumpet", url: "webcal:" }, { name: "Albrecht", color: "#EEEE00", fetchInterval: 5 * 60 * 1000, symbol: "ph:lego-smiley-light", url: "webcal:" }, { name: "Samuel", color: "#4876FF", symbol: "healthicons:running", fetchInterval: 5 * 60 * 1000, url: "webcal:" }, { name: "Abfall", color: "#919191", symbol: "solar:trash-bin-minimalistic-outline", fetchInterval: 5 * 60 * 1000, url: "webcal://localhost:8080/" }, { name: "Franziska", symbol: "fluent-emoji-high-contrast:unicorn", /*color: "#800080",*/ color: "#E066FF", fetchInterval: 5 * 60 * 1000, url: "webcal:" }, { name: "Daniel", color: '#008000', symbol: "game-icons:full-motorcycle-helmet", fetchInterval: 5 * 60 * 1000, url: "webcal:" }, { name: "Familie", color: "#FF8C00", symbol: "material-symbols:family-restroom", fetchinterval: 5 * 60 * 1000, url: "webcal:" }, { name: "Jahrestage", color: "#622C00", symbol: "iconoir:birthday-cake", fetchInterval: 5 * 60 * 1000, url: "webcal:" } ] } }, Here you can find the config of the CalendarExt3 module: { module: "MMM-CalendarExt3", position: "upper_third", header: "14-Tage Vorschau", title: "14 Tage Übersicht", config: { refreshInterval: 5 * 60 * 1000, useIconify: true, mode: "week", displayLegend: true, displayEndTime: false, weekIndex: 0, weeksInView: 2, instanceId: "basicCalendar", locale: 'de-DE', useMarquee: true, maxEventLines: 7, fontSize: '17px', eventHeight: '40px', firstDayOfWeek: 1, useWeather: false, showMore: true, skipDuplicated: false, calendarSet: ['Ludwig', 'Samuel', 'Albrecht', 'Daniel','Franziska', 'Familie', 'Abfall', 'Jahrestage'], eventTransformer: (ev) => { if (ev.title.search('Saxophon') > -1) ev.symbol = ["game-icons:saxophone"] if (ev.title.search('Brotbüchse') > -1) ev.symbol = ["ph:bread"] if (ev.title.search('Sport Vorschule') > -1) ev.symbol = ["solar:bottle-outline"] if (ev.title.search('Jugendfeuerwehr') > -1) ev.symbol = ["ph:siren-light"] if (ev.title.search('Gitarre') > -1) ev.symbol = ["ph:guitar-light"] if (ev.title.search('Geburtstag') > -1) ev.symbol = ["simple-line-icons:present"] if (ev.title.search('GTA Fußball') > -1) ev.symbol = ["game-icons:soccer-ball"] if (ev.title.search('GTA Handball') > -1) ev.symbol = ["mdi:handball"] if (ev.title.search('Treffen') > -1) ev.symbol = ["tabler:pacman"] if (ev.title.search('FT:') > -1) ev.symbol = ["ion:calendar-outline"] return ev } } }, Can you help to find the the root cause of the problem?
  • 0 Votes
    3 Posts
    448 Views
    M
    yes i know that but i was hoping someone has dealt with a similar problem with this module and would know some advice.
  • Eunanibus / MMM-Globe no City names

    4
    0 Votes
    4 Posts
    308 Views
    S
    @Micha3110 yes, others have reported the same problem. however there has been no fix to date
  • MMM-CalendarExtMinimonth/MMM-CalendarExt2

    2
    1
    0 Votes
    2 Posts
    211 Views
    M
    @veny I’m not supporting CX2* anymore, You may need to use CX3Agenda. https://github.com/MMRIZE/MMM-CalendarExt3Agenda [image: CX3A_110.png]
  • MMM-MealieMenu: Display weekly meal plans from Mealie

    10
    1
    2 Votes
    10 Posts
    2k Views
    zanixZ
    Version 1.7.0 Features Add support for Mealie v2 (Households) Bug Fixes Error log output
  • Open weather Api 3.0

    16
    0 Votes
    16 Posts
    6k Views
    A
    @sdetweil You’re welcome! I saw afterwards that there is another thread with similar info but this is the one the search engine led me to. After a few days of use I can see on the OpenWeatherMap.org website Billing section that I am running somewhere around 600 API calls per day. This is with four weather modules in place (for four different locations). So about 150 calls per day per module. The default updateInterval value is 10 minutes which would be 144 per day in theory. I’m going to bump my non-local ones to a 30 minute setting (careful to specify milliseconds i.e. 1,800,000 but without commas of course).
  • MMM-WeatherBackground

    54
    4 Votes
    54 Posts
    26k Views
    bheplerB
    Update for 20 October 2024: Thanks to the hard work of Kevin Sivic, the MMM-WeatherBackground module can function again. Unfortunately, the Unsplash service closed down their API to free use. You will have to log in to their website at www.unsplash.com and join their developer program. Once you have an Access Key, you can use that key to make the module function.
  • MMM-AuroraWatchUK

    1
    1
    1 Votes
    1 Posts
    167 Views
    A
    Description: Show alerts on your mirror when there’s a chance of seeing aurora over the UK, using data from https://aurorawatch.lancs.ac.uk/ - updates every 5 mins to show the current status. Works well as a top_bar banner, that only appears when the criteria you set are met (e.g only show red alerts, at nighttime, when cloud cover is less than 20%). OpenWeather API key required for the daylight and cloudcover features. Screenshots: [image: 1729415759022-11112fa8-2f02-43c5-b0c7-89567d646a07-image.png] Download: [ card:AndyHazz/MMM-AuroraWatchUK] https://github.com/AndyHazz/MMM-AuroraWatchUK
  • Duplicate the Standardcalendar / Standartkalender duplizieren

    7
    0 Votes
    7 Posts
    475 Views
    M
    @sdetweil I did that too (for days), then I get the error message: “Error in the “calendar” module. Check the login files for further details” for one calendar I restarted the Raspberry Pi a few times and now it seems to be working. I don’t know where the error was. Thank you for your time and tips. Greetings Michael
  • MMM-MealViewer

    6
    2
    2 Votes
    6 Posts
    642 Views
    D
    Let’s try this again… new repo link should work. A MagicMirror module for displaying school breakfast and lunch menus from MealViewer. Supports multiple school menus and various configuration options. You can check to see if your school uses MealViewer here. Single instance: [image: 1729165834577-single-instance.png] Multiple instance: [image: 1729165842729-multiple-instance.png] Module: https://github.com/ElliAndDad/MMM-MealViewer
  • MMM-BoschSmartHome

    29
    2
    5 Votes
    29 Posts
    9k Views
    X
    Hi, just wanted to leave you my css, which costs me a bit of time. I wanted to have a clean overview, just see the temperatures in my house. Because I have 9 thermostats, a list with all the colors was just to much for me. This css gave me a 3 column design, just with the room name and the current temperature: /** * MMM-BoschSmartHome */ .MMM-BoschSmartHome .bsh-wrapper { background-color: rgba(0,0,0,0.00); color: #fff; font-size: 10px; display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 10px; line-height: normal; } .MMM-BoschSmartHome .bsh-wrapper br { display: none; } .MMM-BoschSmartHome .bsh-wrapper, .MMM-BoschSmartHome .bsh-tile { margin: 0; padding: 0; } .MMM-BoschSmartHome .bsh-room-icon { margin-right: 8px; } .MMM-BoschSmartHome .bsh-tiles { font-size: 10px; background-color: rgba(0,0,0,0.00); } .MMM-BoschSmartHome .bsh-badge.climate-control { visibility: hidden; } .MMM-BoschSmartHome .bsh-tile { min-width: 0; /* Prevent tiles from expanding beyond their column */ width: 100%; background-color: rgba(0,0,0,0.00); color: white; } .MMM-BoschSmartHome .bsh-room-title { font-size: 10px; } .MMM-BoschSmartHome .bsh-tile.tile-row { visibility: hidden; } .MMM-BoschSmartHome .bsh-tile i { visibility: hidden; } .MMM-BoschSmartHome .bsh-tile.temperature-level span.setpoint-temperature { font-size: 10px; } .MMM-BoschSmartHome .bsh-tile.temperature-level div:first-child { visibility: hidden; position: relative; } .MMM-BoschSmartHome .bsh-tile.temperature-level span.room-temperature { visibility: visible; position: absolute; left: 0; /* Adjust this to position the temperature correctly */ min-width: 0; /* Prevent tiles from expanding beyond their column */ width: 100%; font-size: 1.8em; font-weight: bold; display: inline-block; } I’m using this config: { module: "MMM-BoschSmartHome", position: "top_left", config: { host: "", // Bosch Smart Home Bridge's local IP Address name: "MMM-BoschSmartHome", // Display name for App identifier: "MMM-BoschSmartHome", // Unique Identifier for app password: "", // Password for Bosch Smart Home Bridge refreshIntervalInSeconds: 60, // Default: 60 width: "200px", displayRoomIcons: true, // Default: false hideComponents: { "Küche": ["dishwasher"] }, // See example below. Default: {} hideEmptyRooms: false, // Hide rooms, if they have no information to display. Default: false colorizeRoomWithAirQuality: true, // Colorizes room tiles in red/orange/green depending on combined air quality. Only works with Twinguard roomOrder: ["Wohnzimmer", "Küche", "Bad EG", "Flur EG", "Schlafzimmer","Kinderzimmer", "Bad OG", "Flur OG / Büro", "HWR"], // Manually set the room order by a list of room names, e.g. ["Livingroom", "Bedroom", "Kitchen"] airquality: { purity: "none", // one of [tile, bar, donut, none] humidity: "none", // one of [tile, bar, donut, none] temperature: "none", // one of [tile, bar, donut, none] preferredTemperatureProvider: "Twinguard", // Twinguard or ClimateControl preferredHumidityProvider: "Twinguard" // Twinguard or ClimateControl }, temperatureLevel: { displayCurrentTemperature: true, // Default: true displayTargetTemperature: false, // Default: true forceRowTile: false // Show tile as row, even if there is no target temperature. Default: true }, thermostats: { display: false, // Default: true displayName: false // Default: false }, dishwasher: { display: false, // Default: true displayName: false // Default: false } } }, Thanks @ the author of this module. Before I forget something … If you have BSHC-2 and not BSHC you just have to press the button for pairing at the BSHC.2, not hold the button, like in BSHC. This simple info costs me a week.
  • Location / title in default module weather (openweather)

    3
    2
    0 Votes
    3 Posts
    443 Views
    R
    @sdetweil Hello thanks for the tip. I hadn’t actually tried this combination and now it works: … header: ‘This is where my text comes in’, … appendLocationNameToHeader: false, … Thank you!
  • MMM-OpenWeatherForecast - Replacement for MMM-DarkSkyForecast

    256
    1
    10 Votes
    256 Posts
    554k Views
    K
    @MarcLandis Thanks… I was running a very old version of Raspian and wasn’t able to update Node. Setting up a new version now :-)
  • Picture in BG on a cell related to someone'S birthday

    8
    0 Votes
    8 Posts
    389 Views
    S
    @MMRIZE @Chuck_morisse I opened issue 3552 https://github.com/MagicMirrorOrg/MagicMirror/issues/3552 to document the need for better checking in config:check (as we are switching linter versions anyhow)
  • [MMM-ApexCharts] ApexCharts.js for your mirror.

    7
    4 Votes
    7 Posts
    2k Views
    R
    @sharmstr said in [MMM-ApexCharts] ApexCharts.js for your mirror.: There are several working examples in the wiki https://github.com/sharmstr/MMM-ApexCharts/wiki/JSON Hi - thankyou very much - and apologies for somehow not finding your great documentation! I’ve been able to get sample charts working now. Just some notes on where I’ve got to with my mirror - I’ve been trying MMM-ApexCharts out using a mini power monitor called an IotaWatt as a datasource. It sits on my home network and collects power readings from my mains connection using a current transformer. You can then query this data back and possibly use it to draw graphs. Queries are just done with an http request and look like: http://MyIotaWatt.local/query?select=[time.local,InstPower_W.wh.d2]&begin=s-24h&end=s&group=1h&format=json&header=no returning (in this case) json with readings for total power usage (kWatt hours) for each of the previous 24 hours. Responses look like (e.g.) 0 0 "2024-09-21T14:05:00" 1 0.76 1 0 "2024-09-21T13:05:00" 1 0.75 2 0 "2024-09-21T12:05:00" 1 0.73 etc so this has worked well with the paired chartJsonFormat config. Things I found useful so far: if I put the http://iotawatt.local/query?… in the chartJsonUrl config then the log showed that the call failed with a CORS error. I’ve got it to return data if I add the local CORS server prefix though i.e. http://localhost:8080/cors?url=http://MyIotaWatt.local/query?... Times returned in the response match NZ local time, but the labels on my chart’s x-axis originally displayed times 12 hours earlier. I’ve included a datetimeUTC entry in my xaxis.labels config to leave it in local time xaxis: { type: "datetime", tickPlacement: "off", labels: { datetimeUTC: false, format: "HH:mm", } }, @sharmstr I’ve also been trying out showing more than one chart on the mirror, following your sample config. Is there a way to show two charts when both make their own call to a datasource (i.e. with separate chartJsonUrls?) This would be useful in my case to show a chart for Detailed power usage (over last 30 mins) and a separate chart for Overview (usage in last 24 hours). I’ve configured these charts to work individually, but when I add both to my config at the same time (with different chartIDs) the 2nd chart doesn’t show on the mirror. The log shows json responses to both calls, but also an error Uncaught (in promise) TypeError: Cannot read properties of null (reading '1') following the 2nd response. Is there a neat way to allow both charts, or have I just messed it up? Thanks very much
  • MMM-Nutrislice: Display the day's school breakfast and lunch

    2
    1
    1 Votes
    2 Posts
    295 Views
    KristjanESPERANTOK
    @vees Nice! :-) Don’t forget to add it to the modules list: https://github.com/MagicMirrorOrg/MagicMirror/wiki/3rd-party-modules
  • mmm-netatmo

    7
    0 Votes
    7 Posts
    846 Views
    W
    Hi, I have the same problem with mmm netatmo and refresh token Did you find a solution? Thank you