[MMM-Screen-Powersave-Notification] A module which (de)activates the screen based on delay and notifications
This module is inspired by https://github.com/mboskamp/MMM-PIR and https://github.com/mboskamp/MMM-PIR but is controlled by notifications;
Based on “USER_PRESENCE”, “SCREEN_ON”, “SCREEN_OFF” and “SCREEN_TOGGLE” notifications the screen is controlled; By default “vcgencmd” command is used to turn the screen on or off and also to check the current status but it can be changed in the config file;
After the configured delay (which can be changed during rutime with an “SCREEN_POWERSAVE” notification) the screen will be turned off if no “USER_PRESENCE” notification had been send;
If needed custom scripts can be run after switching the screen on or off;
execnow. the old commands caused “Error: write EFAULT” exceptions in installations with current nodejs and electron versions
- added scripts and description of how to use
tvserviceas an alternative to the default
vcgencmdcommand to control the screen.
xrandris the only solution working with current “vc4-kms-v3d” driver used in Raspberry Bullseye operating system.
- fixed reset of screen timeout in “hideInsteadShutoff” mode.
- the screen will be turned on if USER_PRESENCE notification is received, now. No need to send “USER_PRESENCE” and “SCREEN_ON” notifications, now.
- the forced option in the payload of the notifications can be set either as string or as boolean value (String was need for notifications send by MMM-RemoteControl)
- the html DOM objects now only will be updated if the module has a position set, now.
- fixed “hideInsteadShutoff” feature
- added a new option to change to a specific profile before the “normal” action is triggered
- it now is possible to change to configured profile instead of shutting off the screen
- a new config option “hideInsteadShutoff” only hides/shows the modules instead of shutting off /on the display; the additional scripts can be used as if shutting down / on
- It is now possible to display an countdown if an module position is configured
- It is now possible to define different delays for different profiles (MMM-ProfileSwitcher)
- Supports “USER_PRESENCE”, “SCREEN_ON”, “SCREEN_OFF”, “SCREEN_TOGGLE” and “SCREEN_POWERSAVE” notifications
- Scripts can be run after turning the screen on or off (i.e. to (de)activate a microphone)
- Forced down/up is supported (i.e. to ignore an PIR event)
note that some of us (me) have displays that will not turn off at all… also not on PI…
so my MMM-SleepWake uses module hide/show (and have to remember what was hidden before show to not screw up those page based modules… or modules hidden by voice…)
@sdetweil You are absolutly right. But it is a totally different aproach. Hiding the modules to get the background as dark as possible does not save the same energy as turning off the screen. I am one of the lucky guys that uses a Benq monitor which shuts off in a second after turning off the signal and is back in less than three when turning it on again.
I think your module is the perfect solution for people who are not that lucky
I did a lot of work to the module the last days. Now modules can be hidden / shown instead of turning off/on the display. Also a countdown can be displayed and the delay can be set by active profile (MMM-ProfileSwitcher)