MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    1. Home
    2. karsten13
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.
    Offline
    • Profile
    • Following 1
    • Followers 4
    • Topics 10
    • Posts 547
    • Groups 1

    karsten13

    @karsten13

    162
    Reputation
    1.1k
    Profile views
    547
    Posts
    4
    Followers
    1
    Following
    Joined
    Last Online

    karsten13 Unfollow Follow

    Best posts made by karsten13

    • 3rd-Party-Modules project now part of MagicMirrorOrg

      We’re happy to announce that KristjanESPERANTO’s 3rd-party modules repository has found a new home at MagicMirrorOrg.

      Thank you, Kristjan, for donating your repository to the public and for all the work you’ve put into it.

      We have (hopefully) updated all links:

      • Github repository: https://github.com/MagicMirrorOrg/MagicMirror-3rd-Party-Modules
      • 3rd-party-modules website: https://modules.magicmirror.builders/
      • 3rd-party-modules json file: https://modules.magicmirror.builders/data/modules.json

      In the medium term, we plan to replace the currently used wiki with a different onboarding process for 3rd-party modules.

      posted in Websites
      karsten13K
      karsten13
    • v2.35.0

      Release Notes

      Thanks to: @angeldeejay, @in-voker, @JHWelch, @khassel, @KristjanESPERANTO, @rejas, @sdetweil

      ⚠️ This release needs nodejs version >=22.21.1 <23 || >=24 (no change to previous release)

      Compare to previous Release v2.34.0

      ⚠️ We introduced some internal changes with this release, please read this forum post before upgrading!

      [core]

      • Prepare Release 2.35.0 (#4071)
      • docs: add security policy and vulnerability reporting guidelines (#4069)
      • refactor: simplify internal require() calls (#4056)
      • allow environment variables in cors urls (#4033)
      • fix cors proxy getting binary data (e.g. png, webp) (#4030)
      • fix: correct secret redaction and optimize loadConfig (#4031)
      • change loading config.js, allow variables in config.js and try to protect sensitive data (#4029)
      • remove kioskmode (#4027)
      • Add dark theme logo (#4026)
      • move custom.css from css to config (#4020)
      • move default modules from /modules/default to /defaultmodules (#4019)
      • update node versions in workflows (#4018)
      • [core] refactor: extract and centralize HTTP fetcher (#4016)
      • fix systeminformation not displaying electron version (#4012)
      • Update node-ical and support it’s rrule-temporal changes (#4010)
      • Change default start scripts from X11 to Wayland (#4011)
      • refactor: unify favicon for index.html and Electron (#4006)
      • [core] run systeminformation in subprocess so the info is always displayed (#4002)
      • set next release dev number (#4000)

      [dependencies]

      • update dependencies (#4068)
      • update dependencies incl. electron to v41 (#4058)
      • chore: upgrade ESLint to v10 and fix newly surfaced issues (#4057)
      • chore: update ESLint and plugins, simplify config, apply new rules (#4052)
      • chore: update dependencies + add exports, files, and sideEffects fields to package.json (#4040)
      • [core] refactor: enable ESLint rule require-await and handle detected issues (#4038)
      • Update node-ical and other deps (#4025)
      • chore: update dependencies (#4021)
      • chore(eslint): migrate from eslint-plugin-vitest to @vitest/eslint-plugin and run rules only on test files (#4014)
      • Update deps as requested by dependabot (#4008)
      • update Collaboration.md and dependencies (#4001)

      [logging]

      • refactor: further logger clean-up (#4050)
      • Fix Node.js v25 logging prefix and modernize logger (#4049)

      [modules/calendar]

      • fix(calendar): make showEnd behavior more consistent across time formats (#4059)
      • test(calendar): fix hardcoded date in event shape test (#4055)
      • [calendar] refactor: delegate event expansion to node-ical’s expandRecurringEvent (#4047)
      • calendar.js: remove useless hasCalendarURL function (#4028)
      • fix(calendar): update to node-ical 0.23.1 and fix full-day recurrence lookup (#4013)
      • fix(calendar): correct day-of-week for full-day recurring events across all timezones (#4004)

      [modules/newsfeed]

      • fix(newsfeed): fix full article view and add framing check (#4039)
      • [newsfeed] refactor: migrate to centralized HTTPFetcher (#4023)

      [modules/weather]

      • fix(weather): fix openmeteo forecast stuck in the past (#4064)
      • fix(weather): fix weathergov forecast day labels off by one (#4065)
      • weather: fixes for templates (#4054)
      • weather: add possibility to override njk’s and css (#4051)
      • Use getDateString in openmeteo (#4046)
      • [weather] refactor: migrate to server-side providers with centralized HTTPFetcher (#4032)
      • [weather] feat: add Weather API Provider (#4036)

      [testing]

      • chore: remove obsolete Jest config and unit test global setup (#4044)
      • replace template_spec test with config_variables test (#4034)
      • refactor(clientonly): modernize code structure and add comprehensive tests (#4022)
      • Switch to undici Agent for HTTPS requests (#4015)
      • chore: migrate CI workflows to ubuntu-slim for faster startup times (#4007)

      see https://github.com/MagicMirrorOrg/MagicMirror/releases/tag/v2.35.0

      posted in MagicMirror
      karsten13K
      karsten13
    • MMM-RepoStats

      Hi,

      this is my first MM module and may others find it useful :)

      Download and infos: MMM-RepoStats

      It’s about repository statistics for Docker, GitHub or GitLab repositories:

      example_3_types.jpg

      GitLab with private data (access token needed):

      gitlab_with_token.jpg

      Let me know if something is missing or not solved in the right way, any feedback is appreciated.

      Thanks,

      Karsten.

      posted in Utilities
      karsten13K
      karsten13
    • RE: Questions about update

      @bugsounet said in Questions about update:

      Its very poor to read this from a developer

      is there a difference between running an old system and running a public forum without https?

      posted in Troubleshooting
      karsten13K
      karsten13
    • Raspberry Pi 5 out with PCI Express

      german video: https://www.youtube.com/watch?v=mO-ytowm3XU

      posted in Hardware
      karsten13K
      karsten13
    • MMM-Flights

      A new module showing flights in a defined area.

      I know there are at least 2 modules out using the same api, but this one additionally shows the planes on a map.

      Git Repo: https://gitlab.com/khassel/MMM-Flights

      For installation instructions and config options visit the above url.

      posted in Transport
      karsten13K
      karsten13
    • RE: Adds Blocking Posts

      @mumblebaj

      These are the “carbon” ads added by @MichMich, which probably still serve as a small source of income for him. I won’t turn them off without consulting him.

      This ad can easily be hidden with an ad blocker in your browser or, for example, with “AdGuard Home” or similar tools.

      posted in Forum
      karsten13K
      karsten13
    • RE: Automatic checking of all MagicMirror² modules

      @KristjanESPERANTO said in Automatic checking of all MagicMirror² modules:

      karsten13 has already suggested the GitHub API and I have tested it, but if you make requests for 1000 modules you’ll got blocked quickly. I haven’t found another good approach yet.

      2 ideas:

      • did you try to authenticate with a user before making the api requests? AFAIR we solved a similar problem at work with authentication …
      • if first idea doesn’t work an ugly solution is to work with e.g. a timer or sleep statement because these infos are not changed very often this could be a long running nightly job
      posted in Development
      karsten13K
      karsten13
    • RE: What is your backup and restore method?

      my approach …

      The following script must be executed in the magicmirror folder and creates another script restore.sh. This result script should be saved (on my server it is under git control) and can be executed (again in the magicmirror folder) to restore the old system (or bringing the old config to a new system).

      #!/bin/sh
      
      base="$(cd "$(dirname "$0")" && pwd)"
      
      restore="$base/restore.sh"
      config="${1:-config/config.js}"
      css="css/custom.css"
      modules="modules"
      
      # Tests
      [ -f "$base/$config" ] || (echo "config.js does not exists" && exit 1)
      [ -f "$base/$css" ] || (echo "custom.css does not exists" && exit 1)
      [ -d "$base/$modules" ] || (echo "modules directory does not exists" && exit 1)
      
      
      echo "#!/bin/sh" > $restore
      echo "" >> $restore
      echo "base=\"\$(cd \"\$(dirname \"\$0\")\" && pwd)\"" >> $restore
      
      echo "" >> $restore
      
      echo "mkdir -p \$base/config" >> $restore
      echo "mkdir -p \$base/css" >> $restore
      echo "mkdir -p \$base/modules" >> $restore
      
      echo "" >> $restore
      
      echo "cat > \$base/$config <<\"EOF\"" >> $restore
      cat <$base/$config >> $restore
      echo "EOF" >> $restore
      echo "" >> $restore
      
      echo "cat > \$base/$css <<\"EOF\"" >> $restore
      cat <$base/$css >> $restore
      echo "EOF" >> $restore
      echo "" >> $restore
      
      for dir in $(find "$modules" -maxdepth 1 -mindepth 1 -type d)
      do
        [ -f "$dir/.git/config" ] && mods="$mods $(cat $dir/.git/config | grep 'url = ' | sed 's|.*url = ||g')"
      done
      
      for repo in $mods
      do
        echo "cd \$base/$modules && git clone $repo" >> $restore
      done
      
      echo "" >> $restore
      
      for repo in $mods
      do
        moddir="$modules/$(echo $repo | sed -r 's|.*\/(.*)|\1|g;s|.git||g')"
        [ -f "$base/$moddir/package.json" ] && echo "cd \$base/$moddir && npm install" >> $restore
      done
      
      echo "Created restore script $restore" 
      
      chmod +x $restore
      
      posted in Troubleshooting
      karsten13K
      karsten13
    • RE: delete account

      @sdetweil

      I was able to delete the account.

      posted in Forum
      karsten13K
      karsten13

    Latest posts made by karsten13

    • RE: MM clock reverted to UTC

      @smegbadger said:

      Before I could send this another day passed and now they are correct! Docker is still on UTC but the Clock and Agenda are correctly showing times on BST!

      Thanks for the feedback. This is expected behavior. If you really need the timezone for other stuff in the container you can set it by adding this in the compose.yaml:

          environment:
            - TZ=Europe/Berlin
      
      posted in Troubleshooting
      karsten13K
      karsten13
    • RE: MM clock reverted to UTC

      @smegbadger

      The external url for getting the TZ doesn’t work anymore, I had to switch to another one. Meanwhile this did not work but I pushed new images some minutes ago which should fix this. So please pull the new image and let me know if it works.

      posted in Troubleshooting
      karsten13K
      karsten13
    • v2.36.0

      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)
      posted in MagicMirror
      karsten13K
      karsten13
    • RE: Magic Mirror Dynamic Calendar and Pirate Sky Forecast Questions

      @OliWer said:

      Is this something that could be build into the default module?

      we introduced Themes for this use case with the lastest mm release

      posted in General Discussion
      karsten13K
      karsten13
    • RE: Wayland problems in the April 2026 release

      @parnic

      bullseye support ends in 5 month. But I don’t think we will remove the x11 start option because there are many other os which have no wayland support.

      This is an electron option, wayland needs an extra param -ozone-platform=wayland. This is all defined in the package.json.

      So as long as electron supports x11 I see no reason to remove the x11 option from mm.

      With the new release we only switched to wayland as default option (when you use node --run start) because we think the majority is meanwhile using wayland.

      posted in General Discussion
      karsten13K
      karsten13
    • v2.35.0

      Release Notes

      Thanks to: @angeldeejay, @in-voker, @JHWelch, @khassel, @KristjanESPERANTO, @rejas, @sdetweil

      ⚠️ This release needs nodejs version >=22.21.1 <23 || >=24 (no change to previous release)

      Compare to previous Release v2.34.0

      ⚠️ We introduced some internal changes with this release, please read this forum post before upgrading!

      [core]

      • Prepare Release 2.35.0 (#4071)
      • docs: add security policy and vulnerability reporting guidelines (#4069)
      • refactor: simplify internal require() calls (#4056)
      • allow environment variables in cors urls (#4033)
      • fix cors proxy getting binary data (e.g. png, webp) (#4030)
      • fix: correct secret redaction and optimize loadConfig (#4031)
      • change loading config.js, allow variables in config.js and try to protect sensitive data (#4029)
      • remove kioskmode (#4027)
      • Add dark theme logo (#4026)
      • move custom.css from css to config (#4020)
      • move default modules from /modules/default to /defaultmodules (#4019)
      • update node versions in workflows (#4018)
      • [core] refactor: extract and centralize HTTP fetcher (#4016)
      • fix systeminformation not displaying electron version (#4012)
      • Update node-ical and support it’s rrule-temporal changes (#4010)
      • Change default start scripts from X11 to Wayland (#4011)
      • refactor: unify favicon for index.html and Electron (#4006)
      • [core] run systeminformation in subprocess so the info is always displayed (#4002)
      • set next release dev number (#4000)

      [dependencies]

      • update dependencies (#4068)
      • update dependencies incl. electron to v41 (#4058)
      • chore: upgrade ESLint to v10 and fix newly surfaced issues (#4057)
      • chore: update ESLint and plugins, simplify config, apply new rules (#4052)
      • chore: update dependencies + add exports, files, and sideEffects fields to package.json (#4040)
      • [core] refactor: enable ESLint rule require-await and handle detected issues (#4038)
      • Update node-ical and other deps (#4025)
      • chore: update dependencies (#4021)
      • chore(eslint): migrate from eslint-plugin-vitest to @vitest/eslint-plugin and run rules only on test files (#4014)
      • Update deps as requested by dependabot (#4008)
      • update Collaboration.md and dependencies (#4001)

      [logging]

      • refactor: further logger clean-up (#4050)
      • Fix Node.js v25 logging prefix and modernize logger (#4049)

      [modules/calendar]

      • fix(calendar): make showEnd behavior more consistent across time formats (#4059)
      • test(calendar): fix hardcoded date in event shape test (#4055)
      • [calendar] refactor: delegate event expansion to node-ical’s expandRecurringEvent (#4047)
      • calendar.js: remove useless hasCalendarURL function (#4028)
      • fix(calendar): update to node-ical 0.23.1 and fix full-day recurrence lookup (#4013)
      • fix(calendar): correct day-of-week for full-day recurring events across all timezones (#4004)

      [modules/newsfeed]

      • fix(newsfeed): fix full article view and add framing check (#4039)
      • [newsfeed] refactor: migrate to centralized HTTPFetcher (#4023)

      [modules/weather]

      • fix(weather): fix openmeteo forecast stuck in the past (#4064)
      • fix(weather): fix weathergov forecast day labels off by one (#4065)
      • weather: fixes for templates (#4054)
      • weather: add possibility to override njk’s and css (#4051)
      • Use getDateString in openmeteo (#4046)
      • [weather] refactor: migrate to server-side providers with centralized HTTPFetcher (#4032)
      • [weather] feat: add Weather API Provider (#4036)

      [testing]

      • chore: remove obsolete Jest config and unit test global setup (#4044)
      • replace template_spec test with config_variables test (#4034)
      • refactor(clientonly): modernize code structure and add comprehensive tests (#4022)
      • Switch to undici Agent for HTTPS requests (#4015)
      • chore: migrate CI workflows to ubuntu-slim for faster startup times (#4007)

      see https://github.com/MagicMirrorOrg/MagicMirror/releases/tag/v2.35.0

      posted in MagicMirror
      karsten13K
      karsten13
    • RE: Upcoming Release April 1, 2026 , breaking changes, some operational changes

      @sdetweil said:

      the custom*.css files get moved

      no, only css/custom.css and only if the target specified in config.customCss doesn’t exist.

      This is the normal setup used by ~95% of the users, we cannot handle every edge case so these users must change it manually.

      @BKeyport said:

      I’m currently setting the CSS file with customCss: “css/custom3.css”, in the config,

      I’ll change that to customCss: “config/custom3.css”, ?

      in your setup no file is moved automatically. As you are already using the config.customCss feature you can do the changes before next release by

      • move all the custom*.css file from css to config
      • change config.customCss: "config/custom3.css"
      posted in Upcoming Features
      karsten13K
      karsten13
    • RE: MMM-RAIN-MAP

      @KristjanESPERANTO

      I’m using https://globe.airplanes.live/ and they have a RainViewer Layer which still works when zooming in - maybe they use a license key …

      c3f43f6d-acdd-4c96-873b-b565e57b5ccd-grafik.png

      Another approach I played with is using german dwd data (problem: germany only), tested this in my MMM-Flights module:

      MMM-Flights-Radar.png

      posted in Troubleshooting
      karsten13K
      karsten13
    • RE: MMM-Universal-PIR - ‘GPIOcommand exited with error!'

      @smegbadger said in MMM-Universal-PIR - ‘GPIOcommand exited with error!':

      It never occurred to me the container would update things unannounced!

      the container does not update things on your host, but the container itself is running debian and (if you are using karsten13/magicmirror:latest) the debian version of the container image switched from bookworm to trixie …

      posted in Troubleshooting
      karsten13K
      karsten13
    • RE: MMM-RAIN-MAP

      see https://github.com/rainviewer/rainviewer-api-example?tab=readme-ov-file#personal-use-api-limitations

      posted in Troubleshooting
      karsten13K
      karsten13