Read the statement by Michael Teeuw here.
Is there a way to temporarily disable a module?
-
Hi,
I use profiles to implement pages on my mirror. I also modified my screensaver module MMM-Screen-Powersave-Notification to change to a specific profile instead of hiding the modules or shut off the screen. So it should be possible to just configure the behavior you like instead of coding stuff.
Edit: Just saw that the code had been in the development branch and not in the master. Drafted a new release a few minutes ago.
The module also supports changing the timeout during runtime or disable screensave
-
Hi @sdetweil,
That’s not really what I mean, but thanks for the explanation/ investigation.
What I mean is this.
The MMM-Plexslideshow fills the back ground with an image rather than blank/black background.
This means the two way Perspex is not a mirror (as there’s an image rather than black background)
What I want to do is if the pir detects motion to deactivate the “mmm-plexslideshow” whilst the magic mirror is running. Or to select a black/blank background (which ever works)
That way when someone approaches the mirror the slideshow will stop and The mirror shown (due to the black background)
When the pir doesn’t detect someone then the slideshow starts up again.
I hope this makes more sense ??
Cheers
D
-
@BigDanT yes, and I said, (not using your modules) I did that exact thing with my camera based motion sensor module and a full screen image show module… to prove it would work…
-
Hi @sdetweil,
That’s great! Any chance you could point me in the direction of some instructions?
Cheers
D.
-
@BigDanT I had to change code in both modules…
someone else @wishmaster270 says if you use THIS module, then you can configure what you want, no coding changes…
https://forum.magicmirror.builders/topic/9986/is-there-a-way-to-temporarily-disable-a-module/18?page=2
I don’t know anything about that module -
@wishmaster270 this looks great !!!
I’m going to start to tinker tonight with the PIR thats just arrived.
I dont suppose you have an example config file you could share that shows how you set-up profiles across the other modules ??
Cheers
D.
-
-
@wishmaster270 Thanks for the link.
Using your instructions ive gotten the PIR up and running using your example config’s.
It would be ace to see how you have set-up profiles across a number of modules (doesnt matter which one) and how they are switched using MMM-Screen-Powersave-Notification ??
I understand the principles but cant for the life of me find ANY examples of how this is set-up in the config file to experiment with.
Any help/exmaples would be great ?
Thanks
D.
-
I’ve had a crack at writing an example config file to show you what im trying to do:-
I’ve taken out anything that is sensitive.
In short i want it to show every module, unless the PIR detects motion then it will disable the “Digital-Pictureframe” profile.
I assume if you use “classes” thats a profile ? and if it doesnt have a “classes” set then its considered default.
var config = { address: '0.0.0.0', electronOptions: {}, ipWhitelist: [], modules: [ //Screen on & off timer{ { module: 'MMM-ModuleScheduler', config: { notification_schedule: [ // TURN THE MONITOR/SCREEN ON AT 07:30 EVERY DAY { notification: 'REMOTE_ACTION', schedule: '00 07 * * *', payload: { action: "MONITORON" } }, // TURN THE MONITOR/SCREEN OFF AT 22:30 EVERY DAY { notification: 'REMOTE_ACTION', schedule: '30 22 * * *', payload: { action: "MONITOROFF" } }, ] } }, { module: 'alert', config: {} }, { module: 'updatenotification', position: 'top_bar', config: { ignoreModules: [] } }, { module: 'clock', position: 'top_left', config: {} }, // top Right Calenar { module: 'calendar', header: 'Family Calendar', position: 'top_left', config: { calendars: [{ symbol: 'calendar-check', url: 'https://calendar.google.com/calendar/ical/xxx.ics', } ], } }, // Weather Section { module: 'currentweather', position: 'top_right', config: { location: 'UK', locationID: 'xxx', appid: 'xxx', } }, { module: 'weatherforecast', position: 'top_right', header: 'Weather Forecast', config: { location: 'false', locationID: 'xxx', appid: 'xxx', } }, //Screencast { module: 'MMM-Screencast', position: 'bottom_right', config: { position: 'center', height: 600, width: 800, castName: 'MagicMirror', } }, //PLex Slideshow { module: 'MMM-PlexSlideshow', classes: 'Digital-Pictureframe', position: 'fullscreen_below', config: { plex: { hostname: '192.168.1.123', port: 32400, username: 'xxx@xxx.com', password: 'password', }, transitionImages: true, } }, //MM Remote Control { module: 'MMM-Remote-Control', header: '', config: { customCommand: {}, customMenu: 'custom_menu.json', showModuleApiMenu: true, apiKey: '' } }, //News Headlines { module: 'newsfeed', position: 'top_bar', header: '', config: { feeds: [{ title: 'BBC News', url: 'http://feeds.bbci.co.uk/news/rss.xml' } ], startTags: [], endTags: [], prohibitedWords: [] } }, { module: 'MMM-GPIO-Notifications', config: { '4': { gpio_state: 1, gpio_debounce: 0, delay: 30000, notifications: [{ notification: 'SCREEN_ON', payload: { 'forced': false } }, {} ] } } }, { module: 'MMM-Screen-Powersave-Notification', config: { delay: 60, profiles: { "Digital-Pictureframe": 600 } } }, { module: 'MMM-ViewNotifications', position: 'bottom_left', header: 'Notifications', config: { timeout: 0, format: '{time}: "{module}" sent "{notification}" with {payloadData}', // See below for configurable options includeModules: ["MMM-GPIO-Notifications", "MMM-Screen-Powersave-Notification"] } }, ] }; /*************** DO NOT EDIT THE LINE BELOW ***************/ if (typeof module !== 'undefined') { module.exports = config; }
I just need to understand how to add a module to a profile and then using your example PIR code how to transition from one profile to another
-
@BigDanT
Hi,you need another module to get it work: MMM-ProfileSwitcher
The idea is to define a “normal” class to which all modules do belong that will be displayed if motion is detected. The Slideshow will be in class “slideshow”.
The Screensave module is configured to not shutoff the monitor but change to the “slideshow” profile.
If SCREEN_ON is triggered the Screensave module will change back to the profile that was used before the screensave (in our case “nomal”).I updated the config example to do the job (but i could not test it at the moment):
var config = { address: '0.0.0.0', electronOptions: {}, ipWhitelist: [], modules: [ //Screen on & off timer{ { module: 'MMM-ModuleScheduler', config: { notification_schedule: [ // TURN THE MONITOR/SCREEN ON AT 07:30 EVERY DAY { notification: 'SCREEN_ON', schedule: '00 07 * * *', payload: { 'forced': true } }, // TURN THE MONITOR/SCREEN OFF AT 22:30 EVERY DAY { notification: 'SCREEN_OFF', schedule: '30 22 * * *', payload: { 'forced': true } }, ] } }, { module: 'alert', config: {}, classes: 'normal' }, { module: 'updatenotification', position: 'top_bar', config: { ignoreModules: [] }, classes: 'normal' }, { module: 'clock', position: 'top_left', config: {}, classes: 'normal' }, // top Right Calenar { module: 'calendar', header: 'Family Calendar', position: 'top_left', config: { calendars: [{ symbol: 'calendar-check', url: 'https://calendar.google.com/calendar/ical/xxx.ics', } ], }, classes: 'normal' }, // Weather Section { module: 'currentweather', position: 'top_right', config: { location: 'UK', locationID: 'xxx', appid: 'xxx', }, classes: 'normal' }, { module: 'weatherforecast', position: 'top_right', header: 'Weather Forecast', config: { location: 'false', locationID: 'xxx', appid: 'xxx', }, classes: 'normal' }, //Screencast { module: 'MMM-Screencast', position: 'bottom_right', config: { position: 'center', height: 600, width: 800, castName: 'MagicMirror', }, classes: 'normal' }, //PLex Slideshow { module: 'MMM-PlexSlideshow', classes: 'Digital-Pictureframe', position: 'fullscreen_above', config: { plex: { hostname: '192.168.1.123', port: 32400, username: 'xxx@xxx.com', password: 'password', }, transitionImages: true, }, classes: 'slideshow' }, //MM Remote Control { module: 'MMM-Remote-Control', header: '', config: { customCommand: {}, customMenu: 'custom_menu.json', showModuleApiMenu: true, apiKey: '' } }, //News Headlines { module: 'newsfeed', position: 'top_bar', header: '', config: { feeds: [ { title: 'BBC News', url: 'http://feeds.bbci.co.uk/news/rss.xml' } ], startTags: [], endTags: [], prohibitedWords: [] }, classes: 'normal' }, { module: 'MMM-GPIO-Notifications', config: { '4': { gpio_state: 1, gpio_debounce: 0, delay: 30000, notifications: [{ notification: 'SCREEN_ON', payload: { 'forced': false } }, {} ] } } }, { module: 'MMM-Screen-Powersave-Notification', config: { delay: 60, hideInsteadShutoff: true, //do not shutoff the screen changeToProfile: "slideshow" //change to this profile instead of hiding the modules } }, { module: 'MMM-ViewNotifications', position: 'bottom_left', header: 'Notifications', config: { timeout: 0, format: '{time}: "{module}" sent "{notification}" with {payloadData}', // See below for configurable options includeModules: ["MMM-GPIO-Notifications", "MMM-Screen-Powersave-Notification"] }, classes: 'normal' }, { //https://github.com/tosti007/MMM-ProfileSwitcher module: "MMM-ProfileSwitcher", config: { defaultClass: "normal", ignoreModules: [ "MMM-ModuleScheduler", "MMM-Remote-Control", "MMM-GPIO-Notifications", ], } }, ] }; /*************** DO NOT EDIT THE LINE BELOW ***************/ if (typeof module !== 'undefined') { module.exports = config; }