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

    Posts

    Recent Best Controversial
    • RE: PIR / MQTT - Presence sensor(s) revived

      @rkorell
      Hi Ralf, I don’t agree with your argument about Issue 2.
      When my MagicMirror starts and it does not detect any movement, the screen will stay on and on until movement is detected. Let’s say I’m not around for 2 hours, the screen is on for 2 hours.

      My other PIR modules I tested, do this as aspected (both MMM-Pir and MMM-Universal-Pir). So maybe you can consider to change this.

      The other issue still exists after the update.
      I don’t have a wayfire.ini file in my ~/.config.
      My previous module MMM-Pir puts the screen off and at movement on. It stays off after it goes off.
      With MMM-PresenceScreenControl my screen turns off and than after about 6-7 seconds, the screen comes back on again. I don’t make conclusions, but I think it has nothing to do with my system of Wayland settings. Something is triggering that the screen goes on again.

      posted in System
      htilburgsH
      htilburgs
    • RE: MMM-MyWeatherForecast

      I just published an update to v1.2.0

      • Add Iconsets for animated
      • Possibility for custom icons
      • Update language files
      • Add riseSetDisplay option in config, to show Sunrise / Sunset as text, only icon or both
      • Code optimized

      Don’t forget to update the config.js with the extra options:

      riseSetDisplay: "both",         // Show Sunrise / Sunset as text | icon | both
      iconSet: "standard",            // standard | animated | custom (upload your own PNG icons)
      

      If there are any issues, please add the issue here

      posted in Utilities
      htilburgsH
      htilburgs
    • RE: MMM-MyTado

      Just updated to v1.0.3 - Add debug option, to prevent to many loggings in the logfiles.

      In config.js simple add debug: false, (or true for showing console log messages). Default it is false, because loggings were growing to fast.

      Update:

      cd ~/MagicMirror/modules/MMM-MyTado
      git pull
      npm install
      
      posted in Utilities
      htilburgsH
      htilburgs
    • RE: PIR / MQTT - Presence sensor(s) revived

      Ok, I made an error because of issue 1.
      I used the xrandr instead of the wrandr command for Wayland.

      Now Im using:

      onCommand: "DISPLAY=:0 wlr-randr --output HDMI-A-1 --on --mode 1920x1080 --transform 270",
      offCommand: "DISPLAY=:0 wlr-randr --output HDMI-A-1 --off",
      

      The screen goes off after 30 sec (current counterTimeout), but after 10 seconds the screen goes on again, counter says 00:00 without that there was any movement. Also the debug doesn’t say noting. Until I create movement, than the counter starts at 00:30 and the screen goes off and after 10 sec. on. It looks like something triggers the software, to think there is movement.

      Issue 2 still exists (it only applies when Mirror is first started).
      After that it detects movement and it works fine.

      Issue 3
      When debug is on and MMM-PresenceScreenControl is started, I see a message from [MMM-Pir][LIB][PIR]. Very confusing because I first thougt I had my other module still running.

      [2026-03-06 19:36:00.975] [LOG]   [MMM-PresenceScreenControl] [MMM-Pir] [LIB] [PIR] Mode 0 Selected (gpiod library) 
      [2026-03-06 19:36:00.977] [LOG]   [MMM-PresenceScreenControl] [MMM-Pir] [LIB] [PIR] [GPIOD] node-libgpiod not available, falling back to Python/gpiozero (mode 1)
      
      posted in System
      htilburgsH
      htilburgs
    • RE: PIR / MQTT - Presence sensor(s) revived

      @rkorell said:

      cd ~/MagicMirror/modules/MMM-PresenceScreenControl
      git pull
      rm -rf node_modules package-lock.json
      npm install

      Better:

      rm -f node_modelues package-lock.json
      git pull
      npm install
      

      Otherwise the git pull wil not work.

      Issue 1:
      When time is up, the screen doesn’t go off. Dim works, but then when the screen should go off, it is not dimmed anymore and on. Debug says:

      [2026-03-06 18:16:29.150] [LOG]   [MMM-PresenceScreenControl] [updatePresence] pirPresence=false, touchPresence=false, presence=true, newPresence=false 
      [2026-03-06 18:17:30.311] [LOG]   [MMM-PresenceScreenControl] [startCounter] Counter expired: presence=false, pirPresence=false, calling updateScreen(false) 
      [2026-03-06 18:17:30.323] [LOG]   [MMM-PresenceScreenControl] [updateScreen] on=false, cmd="DISPLAY=:0 xrandr --output HDMI-1 --off" 
      [2026-03-06 18:17:30.467] [LOG]   [MMM-PresenceScreenControl] [updateScreen] SUCCESS: executed "DISPLAY=:0 xrandr --output HDMI-1 --off"
      

      Issue 2:
      When module is started, and there is no movement, the mirror stays on and counter says 00:00.
      Until it see movement, than counter start and after the counter is should go out (not, see issue 1). Debug after just started:

      [2026-03-06 18:20:32.007] [LOG]   [MMM-PresenceScreenControl] [startCounter] Counter expired: presence=false, pirPresence=false, calling updateScreen(false) 
      [2026-03-06 18:20:32.012] [LOG]   [MMM-PresenceScreenControl] [updateScreen] on=false, cmd="DISPLAY=:0 xrandr --output HDMI-1 --off" 
      [2026-03-06 18:20:32.132] [LOG]   [MMM-PresenceScreenControl] [updateScreen] SUCCESS: executed "DISPLAY=:0 xrandr --output HDMI-1 --off"
      

      Current config (for testing):

      {
                              module: "MMM-PresenceScreenControl",
                              position: "bottom_right",
                              disabled: false,
                              config: {
                                      mode: "PIR",
                                      pirGPIO: 17,
                                      onCommand: "DISPLAY=:0 xrandr --output HDMI-1 --mode 1920x1200 --rotate left",
                                      offCommand: "DISPLAY=:0 xrandr --output HDMI-1 --off",
                                      counterTimeout: 30,
                                      autoDimmer: false,
                                      autoDimmerTimeout: 60,
                                      style: 2,
                                      colorFrom: "red",
                                      colorTo: "lime",
                                      colorCronActivation: "cornflowerblue",
                                      showPresenceStatus: false,
                                      debug: "on",
                                      resetCountdownWidth: false
                              }
                      },
      

      Pi OS version:

      PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
      NAME="Debian GNU/Linux"
      VERSION_ID="13"
      VERSION="13 (trixie)"
      VERSION_CODENAME=trixie
      DEBIAN_VERSION_FULL=13.3
      

      Mirror information:

      - SYSTEM:   manufacturer: Raspberry Pi Foundation; model: Raspberry Pi 4 Model B Rev 1.4; virtual: false; MM: 2.34.0
      - OS:       platform: linux; distro: Debian GNU/Linux; release: 13; arch: arm64; kernel: 6.12.62+rpt-rpi-v8
      - VERSIONS: electron: 39.7.0; used node: 22.22.0; installed node: 22.21.1; npm: 10.9.4; pm2: 6.0.14
      - ENV:      XDG_SESSION_TYPE: tty; MM_CONFIG_FILE: undefined
                  WAYLAND_DISPLAY:  undefined; DISPLAY: :0; ELECTRON_ENABLE_GPU: undefined
      - RAM:      total: 1845.58 MB; free: 972.54 MB; used: 873.04 MB
      - OTHERS:   uptime: 5652 minutes; timeZone: Europe/Amsterdam
      

      Node version:

      v22.21.1
      

      Currently I’m using MMM-Pir from Coernel82/MMM-Pir and this works fine. But because he doensn’t maintain this module, I thougt to go over.

      I use these settings in this module:

      mode: 3 - use wlr-randr (For raspbian 12 with wayfire compositor)
      wrandrForceRotation: "270",
      wrandrForceMode: null,
      waylandDisplayName: "wayland-0",
      Pir mode: 1,
      gpio: 17,
      triggerMode : "LH" - motion signal is triggered when sensor goes from LOW (0, no-motion) to HIGH (1, motion)
      
      posted in System
      htilburgsH
      htilburgs
    • RE: PIR / MQTT - Presence sensor(s) revived

      @rkorell
      When I install this module (currently using MMM-Pir) I got a lot of messages of deprecated modules. It also gives me 8 vulnerabilities (2 low, 6 high).

      npm warn skipping integrity check for git dependency ssh://git@github.com/electron/node-gyp.git
      npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
      npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
      npm warn deprecated @npmcli/move-file@2.0.1: This functionality has been moved to @npmcli/fs
      npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
      npm warn deprecated glob@8.1.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
      npm warn deprecated glob@8.1.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
      npm warn deprecated tar@6.2.1: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
      
      > MMM-PresenceScreenControl@1.3.0 postinstall
      > ./postinstall
      
      node-libgpiod not installed (optional), skipping electron-rebuild.
      PIR sensor will use Python/gpiozero fallback.
      
      added 181 packages, and audited 182 packages in 34s
      
      29 packages are looking for funding
        run `npm fund` for details
      
      8 vulnerabilities (2 low, 6 high)
      
      To address issues that do not require attention, run:
        npm audit fix
      
      To address all issues (including breaking changes), run:
        npm audit fix --force
      
      Run `npm audit` for details.
      pi@MagicMirror:~/MagicMirror/modules/MMM-PresenceScreenControl $ 
      

      I’m running on a Pi 4b with Trixie.

      posted in System
      htilburgsH
      htilburgs
    • RE: MMM-MyTado

      @JoeFranz
      I see what you did, but there are more ways to do this:

      showColumnHeaders: false
      

      Then no headers are shown and you have a compact view

      or you leave the statusColumnName: "" (empty) so no name is shown.
      With the CSS change, it becomes definitive, and that is not what should happen.

      posted in Utilities
      htilburgsH
      htilburgs
    • RE: MMM-MyTado

      @JoeFranz @mymirror
      That is correct. Due to the limit of 100 polls a day (thanks to Tado), you will probably not see this often.

      When you have the “contract” with Tado, you can put the polling lower (mine is at 300000 / 5 min, still trying how far I can go) and I have seen it once, when I let my door open for a few minutes).

      posted in Utilities
      htilburgsH
      htilburgs
    • RE: MMM-MyTado

      @JoeFranz
      I will take a look at it when I’m at home. Currently at work.

      posted in Utilities
      htilburgsH
      htilburgs
    • RE: MMM-MyGarbage

      Just published an update:

      2.0.1 : Update for Streamline date parsing and allow for recurring events in ical (thx to @thepagan)
      2.1.0 : Update for CSV file and alertThreshold (add to your config.js!)
      2.1.1 : bugfix for the alertThreshold
      2.1.2 : Update for rare AxiosError [AggregateError] when loading iCal

      posted in Utilities
      htilburgsH
      htilburgs
    • RE: MMM-MyTado

      @MyMirror
      Your welcome.
      Have much fun in using this module

      @joefranz
      Thanks for the help with the fonts.

      posted in Utilities
      htilburgsH
      htilburgs
    • RE: MMM-MyTado

      @MyMirror
      This is a font issue on the Raspberry Pi.
      Can you try sudo apt install fonts-symbola reboot your PI and look again?

      This issues with the alignement of the Home Name and the Status icons is fixed also. Just published an update.

      posted in Utilities
      htilburgsH
      htilburgs
    • RE: MMM-MyTado

      @MyMirror
      I don’t see anything strange.
      Have you looked with the developer tools?

      Open browser, go to your MagicMirror site (http://IP:8080)
      Right click on the icon before JW and select “inspect”
      Now you can see the elements and styles.

      Do you see something like this?
      <div class="tado-home">🏠 JW</div>

      If not, what do you see?

      For the align I found how to fix this.
      This is just an CSS issue and will be fixed.

      posted in Utilities
      htilburgsH
      htilburgs
    • RE: MMM-MyTado

      I just quickly tested some things, but my icons are always shown. When I load the module on the left, then the house name goes to the left also. I will fix this in the next release.

      On which version MagicMirror are you?
      Which browser do you use?
      Can you put the MMM-MyTado part of the config.js?

      posted in Utilities
      htilburgsH
      htilburgs
    • RE: MMM-MyTado

      @MyMirror
      I will take a look into it. That doesn’t seems right.
      Do they show if you place the module on the right?

      I updated the current version for the Last update option.
      Please do a git pull

      In the config.js you have to add to options:
      showLastUpdate: true // Show last update
      lastUpdateName: "Last update" // Custom Last update name - default = Last update

      I will take a look into the emoji problem and come back to you

      posted in Utilities
      htilburgsH
      htilburgs
    • RE: MMM-MyTado

      @mymirror
      I looked into the code and tested it, but there is nothing that can explain why the house is not showing.

      🏠 is an emoji, that is in the code.
      So what you can check is if you see it in the code at your installation

      ~/MagicMirror/modules/MMM-MyTado/MMM-MyTado.js
      

      it should be on line 50

      homeTitle.textContent = `🏠 ${home.name}`;
      

      I will look for your request " Last update on: <date/time>?"
      This is a good addition, I let you know.

      posted in Utilities
      htilburgsH
      htilburgs
    • RE: MMM-MyTado

      @MyMirror
      I know it is not easy with the link, but that is what it is.
      When everything works ok then you only have to do it once.
      There is an automatic “refresh” mechanism built in.
      I will take a look at the image of the house.

      posted in Utilities
      htilburgsH
      htilburgs
    • RE: MMM-MyTado

      @mishu28nmv
      You’re welcome!

      posted in Utilities
      htilburgsH
      htilburgs
    • RE: MMM-MyHomeWizard

      @vansman
      Just updated the module.
      Since now Voltage is added, where autodetection is for 1-phase of 3-phase.

      Don’t forget to update your config.js with

      currentVoltage: true,     	// compact 3-fase, auto detection
      

      I hope this is what you were asking for.

      posted in Productivity
      htilburgsH
      htilburgs
    • MMM-MyTado

      MMM-MyTado

      This a Magic Mirror² module for your TADO Thermostat.
      The module is based on the idea from WouterEekhout, but his module is not maintained anymore.
      I like the idea and built a version with a modern look and feel.

      The module displays the following information:

      • The Home name (🏠)
      • The Zone names (Configurable names)
      • A symbol (🔥) to show if the heater is currently active.
      • The current temperature and the target temperature
      • The humidity (💦)
      • The hot water temperature (🩸)
      • Frost Protection (❄️)
      • Open Window (🪟)

      SCR-20260226-ukba

      Installation

      Clone this repository in your modules folder, and install dependencies:

      cd ~/MagicMirror/modules 
      git clone https://github.com/htilburgs/MMM-MyTado.git
      cd MMM-MyTado
      npm install 
      

      Update

      When you need to update this module:

      cd ~/MagicMirror/modules/MMM-MyTado
      git pull
      npm install
      

      Config

      Go to the MagicMirror/config directory and edit the config.js file.
      Add the module to your modules array in your config.js.

      {
        module: "MMM-MyTado",
        position: "top_right",
        header: "TADO Thermostaat",
        disabled: false,
        config: {
      	// Settings
      	updateInterval: 1800000,             // 30 min - because of limitation free account
              showZones: [],                       // [] = all zones, otherwise use zonename ["zone 1","zone 2"]
      	showHomeName: true,					 // Show Home Name as defined within the Tado environment
              showColumnHeaders: true,             // true = show Columns Headers, false = Hide Columns Headers
      	useColors: false,					 // Show colors for the Temperature column
      	showLastUpdate: true,				 // Show last update
      	debug: false,						 // Show debug information in logging
      
      	// Custom Names
              zoneColumnName: "ZONE",				 // Custom Zone Column Name - default = ZONE
              tempColumnName: "TEMP (°C)",		 // Custom Temperature Column Name - default = TEMP (°C)
              humidityColumnName: "",              // empty for no title (default)
              statusColumnName: "STATUS",			 // Custom Status Column Name - default = STATUS
      	lastUpdateName: "Last update"		 // Custom Last update name - default = Last update
        }
      },
      

      Authentication

      The first time you run the module, you will need to authenticate with the Tado API.
      No username or password is stored in MMM-MyTado, everything works with OAuth Authentication.
      The module will log a URL that you need to visit in your browser to complete the authentication process.
      Check the logs for a message like this:

      MMM-MyTado: Device authentication required. 
      Open this URL to authenticate:
      https://login.tado.com/oauth2/device?user_code=XXXXXX
      

      Visit the URL in your browser and follow the instructions to authenticate the module with your Tado account.

      imageimageimage

      Configuration Options

      Option Description
      updateInterval REQUIRED - The interval the information is updated (in milliseconds)

      Default: 1800000
      This value cannot be lower than 1800000 without a monthly subscription.
      Otherwise users get a Tado block.

      More info at https://help.tado.com/en/articles/12165739-limitation-for-rest-api-usage
      showZones TADO uses Zones. When you use [] all zones will be shown (default)
      You can also choose which zones you like to see, just fill in the zones ["Zone 1","Zone 2", etc]
      showHomeName Show the Home name as defined in the Tapo environment
      Default: true
      showColumnHeaders Show the Column Headers
      Default: true
      useColors Use Colors for the Temperature Column
      Default: false
      debug Show debug information in logs
      Default false
      zoneColumnName Custom Zone Column Name - default: ZONE
      tempColumnName Custom Temperature Column Name - default: TEMP (°C)
      humidityColumnName Custom Humidity Column Name - default: Empty (Column Name is not shown)
      statusColumnName Custom Status Column Name - default: STATUS

      Versions

      v1.0.0 - Initial release
      v1.0.1 - Add Last update option
      v1.0.2 - Allignment Home name and Status icons always on the right (CSS)
      v1.0.3 - Add debug option, to prevent to many loggings in the logfiles

      Credits

      This module is inspired by the MMM-Tado module from WouterEekhout
      Using the NPM package node-tado-client

      posted in Utilities
      htilburgsH
      htilburgs
    • 1 / 1