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.

    66 Topics
    427 Posts
    karsten13K
    Release Notes Thanks to: @cgillinger, @khassel, @KristjanESPERANTO, @sonnyb9 ⚠️ This release needs nodejs version >=22.21.1 <23 || >=24 (no change to previous release) Compare to previous Release v2.35.0 This release falls outside the quarterly schedule. We opted for an early release due to: Security fix for the internal cors proxy API change of the weather provider smi Several bug fixes Breaking Changes The cors proxy is now disabled by default. If required, it must be explicitly enabled in the config.js file. See the documentation. ⚠️ Security You can find several publicly accessible MagicMirror² instances. This should never be done. Doing so makes your entire configuration, including secrets and API keys, publicly visible. Furthermore, it allows attackers to target the host; this is only prevented beginning with this release. Public MagicMirror² instances should always run behind a reverse proxy with authentication. [core] Prepare Release 2.36.0 (#4126) Allow HTTPFetcher to pass through 304 responses (#4120) fix(http-fetcher): fall back to reloadInterval after retries exhausted (#4113) config endpoint must handle functions in module configs (#4106) fix replaceSecretPlaceholder (#4104) restrict replaceSecretPlaceholder to cors with allowWhitelist (#4102) fix: prevent crash when config is undefined in socket handler (#4096) fix cors function for alpine linux (#4091) fix(cors): prevent SSRF via DNS rebinding (#4090) add option to disable or restrict cors endpoint (#4087) fix: prevent SSRF via /cors endpoint by blocking private/reserved IPs (#4084) chore: add permissions section to enforce pull-request rules workflow (#4079) update version for develop [dependencies] update dependencies (#4124) chore: update dependencies (#4088) refactor: enable ESLint rule “no-unused-vars” and handle related issues (#4080) [modules/newsfeed] fix(newsfeed): prevent duplicate parse error callback when using pipeline (#4083) [modules/updatenotification] fix(updatenotification): harden git command execution + simplify checkUpdates (#4115) fix(tests): correct import path for git_helper module in updatenotification tests (#4078) [modules/weather] fix(weather): use nearest openmeteo hourly data (#4123) fix(weather): avoid loading state after reconnect (#4121) weather: fix UV index display and add WeatherFlow precipitation (#4108) fix(weather): restore OpenWeatherMap v2.5 support (#4101) fix(weather): use stable instanceId to prevent duplicate fetchers (#4092) SMHI: migrate to SNOW1gv1 API (replace deprecated PMP3gv2) (#4082) [testing] ci(actions): set explicit token permissions (#4114) fix(http_fetcher): use undici.fetch when dispatcher is present (#4097) ci(codeql): also scan develop branch on push and PR (#4086) refactor: replace implicit global config with explicit global.config (#4085)
  • Discuss the MagicMirror² core framework.

    493 Topics
    4k Posts
    S
    @Bungle68 there is no auto update. You can go the manual install/update or use the scripted install/update. For the base. See the doc, alternative install My script are first there There are various mechanisms for modules
  • Anything harware related can be found here.

    797 Topics
    7k Posts
    B
    It’s easy to forget that while OLED is the biggest concern for burn-in, older LCDs can still suffer from image persistence if things stay static for too long. Moving the modules around slightly or using a screen saver script is such a practical way to extend the life of the hardware.
  • Add exciting new features to your mirror.

    6k Topics
    58k Posts
    R
    Dear @atwist, first of all apologies for long delay - I was on vacation and offline. A small disclaimer upfront: I haven’t seen your actual MQTT traffic, so the following is a hypothesis based on the log excerpt you posted. It fits the symptoms cleanly, but please verify before changing anything. What I see in your log: The module connects to the broker fine It subscribes successfully to sensor/presence [updatePresence] fires (so messages ARE arriving — otherwise you wouldn’t see those entries triggered) But no parse error is logged, which means JSON.parse() did not throw The result is consistently mqttPresence=false, screen turns off after the counter or even never turns on. Most likely cause: HomeAssistant publishes the value true directly (a JSON primitive), not a JSON object like {"presence": true}. The module currently expects an object and reads the field onfigured in mqttPayloadOccupancyField (default: “presence”). JSON.parse("true") succeeds and returns the boolean true, but true["presence"] is undefined — which evaluates to no presence. No exception, no parse error log, just silent false. Quick way to verify what HA actually sends: mosquitto_sub -h 192.168.4.160 -t sensor/presence -v That’ll print one line per message. You’ll see exactly what arrives. If the payload turns out to be a bare value (just true, "ON", etc.), there are two paths forward: Either: 1. Update the module — I just pushed support for bare-string payloads exactly because of this case: cd ~/MagicMirror/modules/MMM-PresenceScreenControl git pull Then add to your module config: mqttPayloadOn: "true" (or whatever HA actually publishes — "ON", "on", etc.; check with the mosquitto_sub command above). With this set, the module compares the raw MQTT payload exactly against your string. Match → presence detected. Anything else → no presence. Or: 2. Configure HA to publish a JSON object like {"presence": true} / {"presence": false} instead of the bare value (e.g. via the payload template of your MQTT publish action). Then your existing config works unchanged. The new release also adds two diagnostic improvements that would have made this immediately visible: A new [MQTT] received (field/bare mode): mqttPresence=true/false log line on every message (debug level “complex”) The [updatePresence] line now includes mqttPresence= alongside the other sources Sorry for the silent-fail behavior in the previous version — that’s been a documentation gap as well as a feature gap. Let me know if my hypothesis turns out to be wrong; if HA publishes something else entirely, the diagnosis would change. Good luck. Warmest regards, Ralf
  • Make your mirror your own but modifying its appearance.

    433 Topics
    3k Posts
    S
    @KristjanESPERANTO I don’t run ext3 all the time, just to test. But this is such a core value. I think because of the ext modules color and symbol were added to the broadcast data Lots of features are turned on by default, week number, blah blah, and use css to turn them off. This seems simple to be default and hard for others to do ( witness wasted time here and another
  • Share your project story with pictures.

    577 Topics
    5k Posts
    J
    @mrchips83 Thanks for sharing. Interest is peeked again! Think I’m going to dive back into MM.
  • You have a problem with your mirror? Ask for help.

    5k Topics
    36k Posts
    S
    @tommyk I understand Maybe there will be some info here After starting from boot , where the audio fails, Open the browser developers window ctrl-shift-i Select the console tab, and put juke in the filter field To see if there are any errors, usually marked in red If so, copy paste them here Same keystroke to get out of dev window Let me know what you find Another test thing to try, is add a sleep 30 In the script before launching MagicMirror to see if that makes a difference
  • A place to talk about whatever you want.

    1k Topics
    10k Posts
    S
    @htilburgs did you see Karsten’s post right above yours?