Idle Page Screen Burn in Protection

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;
}
2 Likes