Would be great to add screen burn in protection to an idle page. I have my wall mounted tablet to turn off after 30 mins of no activity since I was noticing some screen burn in. Its not convenient to have the screen off all the time since my Idle Page shows some useful information at a glance. This could be implemented by slightly shifting the pixels every 10 mins or so.
You could create a custom screensaver that cycles through some images using Idle Events & a Plugin. Your suggestion will be considered I just wanted to let you know there are other things like this that you can do to prevent “burn in”.
This is how I have it set-up currently but eventually what happens in my case is that the pages stop cycling, since there is no current way to have a scene to keep repeating actions while a value is true. Then what happens is my Idle Page stays on the screen and that’s when the burn in starts to occur.
Alternatively to a screen burn in protection option, maybe we can have the ability to have a scene keep repeating itself until a value goes false instead? That could be more universally used, not just in Idle events.
Use a plugin to cycle through the images indefinitely. If this were my project I’d use a simple plugin like this. Set the PollingInterval to 10 seconds (10000ms) & then in onPoll set a new image to display.
Screensaver_Plugin.hrp (15.1 KB)
plugin.Name = "Screensaver";
plugin.OnChangeRequest = onChangeRequest;
plugin.OnConnect = onConnect;
plugin.OnDisconnect = onDisconnect;
plugin.OnPoll = onPoll;
plugin.OnSynchronizeDevices = onSynchronizeDevices;
plugin.PollingInterval = 10000;
plugin.DefaultSettings = {};
var counter = 0;
var images = ['image_0.png', 'image_1.png', 'image_2.png', 'image_3.png']
function onChangeRequest(device, attribute, value) {
}
function onConnect() {
}
function onDisconnect() {
}
function onPoll() {
var device = plugin.Devices["1"];
device.Image = images[counter];
counter = counter + 1;
if (counter >= images.length) {
counter = 0;
}
}
function onSynchronizeDevices() {
var screensaverDevice = new Device();
screensaverDevice.Id = "1";
screensaverDevice.DisplayName = "Screensaver";
screensaverDevice.Capabilities = [];
screensaverDevice.Attributes = ["Image"];
plugin.Devices[screensaverDevice.Id] = screensaverDevice;
}