Power Management and Screensaver Configuration
Optimization for 24/7 operation: Burn-in protection and power management
Power Management and Screensaver Configuration
For 24/7 display operation, power management and burn-in prevention are critical for longevity and reliability. This guide shows optimal configurations.
Understanding Burn-In Risk
What is Burn-In?
Burn-in occurs when static image elements leave permanently visible shadows.
OLED Displays (High Risk):
LCD Displays (Lower Risk):
IPS-LCD (Recommended for Digital Signage):
Vulnerable Areas in LobbyFlight
Highest risk (permanently visible):
Medium risk (often visible):
Low risk (changes frequently):
Burn-In Prevention Strategies
1. Automatic Content Rotation
LobbyFlight already rotates between:
2. Pixel Shift (Hardware)
Modern displays slightly shift the image:
3. Reduced Brightness
4. Dark Themes
Android Display Settings
Basic Display Configuration
Optimal Brightness Settings
Navigation: Settings → Display → Brightness
Recommended values:
LCD Displays:
- Day (6:00-22:00): 70-80%
- Evening (22:00-24:00): 50%
- Night (0:00-6:00): 30%
OLED Displays:
- Day: 50-60%
- Evening: 40%
- Night: 20-30%Disable Adaptive Brightness:
Prevent Display Timeout
Navigation: Settings → Display → Screen timeout
Options:
- Screen timeout: "Never" or Maximum (30 min)
- Screen saver: Disabled
- Daydream: OFFAlternative via ADB:
adb shell settings put system screen_off_timeout 2147483647Blue Light Filter Settings
Navigation: Settings → Display → Night Light/Blue Filter
Recommendation: DISABLED
Why?
Exception: Displays in sleeping areas (night operation)
Power Saving Settings
Disable Battery Optimization
For Fully Kiosk Browser:
For Chrome:
Why important?
Disable Doze Mode
Android's Doze Mode can disrupt kiosk operation.
Disable via ADB:
# Completely disable Doze Mode
adb shell dumpsys deviceidle disable
# Whitelist specific app
adb shell dumpsys deviceidle whitelist +com.fullykiosk.browserVia Developer Options:
WiFi Optimization
Navigation: Settings → WiFi → Advanced
Important settings:
✓ Keep WiFi on during sleep: ALWAYS
✗ WiFi scanning: OFF (saves energy)
✗ Auto-switch to mobile data: OFF
✓ Network notification: OFFWiFi power saving mode via ADB:
# WiFi always active
adb shell settings put global wifi_sleep_policy 2Fully Kiosk Screensaver Configuration
Screensaver Basics
Navigation: Fully Kiosk → Settings → Screensaver
Option A: Black Screen (Maximum Burn-In Protection)
Enable Screensaver: ON
Screensaver Timer: 600 seconds (10 minutes)
Screensaver Type: Black Screen
Brightness in Screensaver: 0%
Show Clock: OFF
Wake Screen on Motion: ON (if camera available)Advantages:
Disadvantages:
Option B: Dim Mode (Recommended for Lobbies)
Enable Screensaver: ON
Screensaver Timer: 900 seconds (15 minutes)
Screensaver Type: Dim Screen
Dimming Level: 20%
Keep Content Visible: ON
Screensaver Overlay: NoneAdvantages:
Disadvantages:
Option C: Moving Content (For OLED)
Enable Screensaver: ON
Screensaver Timer: 600 seconds
Screensaver Type: Website
URL: https://yourdomain.com/screensaver
Motion: Slow Drift
Movement Range: 50 pixelsCreate custom screensaver page:
<!DOCTYPE html>
<html>
<head>
<style>
body {
background: black;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
}
#content {
animation: drift 60s infinite;
}
@keyframes drift {
0%, 100% { transform: translate(0, 0); }
25% { transform: translate(30px, -30px); }
50% { transform: translate(-30px, -30px); }
75% { transform: translate(-30px, 30px); }
}
.clock {
color: #333;
font-size: 4em;
font-family: monospace;
}
</style>
</head>
<body>
<div id="content">
<div class="clock" id="clock"></div>
<img src="/logo-dark.png" style="opacity: 0.1">
</div>
<script>
setInterval(() => {
document.getElementById('clock').textContent =
new Date().toLocaleTimeString('en-US')
}, 1000)
</script>
</body>
</html>Motion Detection (Plus Version)
Fully Kiosk Plus Version only
Navigation: Settings → Motion Detection
Enable Motion Detection: ON
Camera for Detection: Front Camera
Detection Mode: Motion
Sensitivity: Medium (3-5)
Turn Screen On on Motion: ON
Turn Screen Off Delay: 600 seconds
Detection Schedule: 06:00 - 22:00Testing motion detection:
Privacy notice:
Scheduled Brightness
Fully Kiosk Brightness Scheduler
Navigation: Settings → Scheduled Actions
Time-Based Brightness
Morning (6:00) - Full brightness:
Action: Set Screen Brightness
Brightness: 80%
Time: 06:00
Days: All DaysNoon (12:00) - Maximum for sunlight:
Action: Set Screen Brightness
Brightness: 100%
Time: 12:00
Days: All DaysEvening (18:00) - Reduce:
Action: Set Screen Brightness
Brightness: 60%
Time: 18:00
Days: All DaysNight (22:00) - Dim:
Action: Set Screen Brightness
Brightness: 30%
Time: 22:00
Days: All DaysLate night (1:00) - Minimum:
Action: Set Screen Brightness
Brightness: 15%
Time: 01:00
Days: All DaysAlternative: Tasker Automation
For extended automation:
Create Tasker profile:
Profile: Lobby Hours
Time: 6:00 - 22:00
Task:
- Display Brightness: 75%
- Screensaver: Disabled
Profile: Night Mode
Time: 22:00 - 6:00
Task:
- Display Brightness: 30%
- Screensaver: 5 min timeout
- Notification Volume: 0Ambient Light Sensor (if available)
Some displays have light sensors:
// JavaScript for adaptive brightness
if ('AmbientLightSensor' in window) {
const sensor = new AmbientLightSensor()
sensor.onreading = () => {
const lux = sensor.illuminance
let brightness = 50 // Default
if (lux < 50) brightness = 30 // Dark
else if (lux < 200) brightness = 50 // Dim
else if (lux < 500) brightness = 70 // Normal
else brightness = 90 // Bright
setBrightness(brightness)
}
sensor.start()
}Nightly Restart
Why Daily Restart is Important
Clear memory leaks:
Restore performance:
Reload Service Worker:
Fully Kiosk Auto-Restart
Navigation: Settings → Scheduled Actions
Action Type: Restart Application
Time: 04:00
Days: All Days
Enabled: YES
Clear Cache on Restart: YESAlternative times by hotel type:
Business Hotel: 03:00 (before early checkouts)
Vacation Hotel: 05:00 (consider late guests)
Airport Hotel: 04:30 (between night and morning flights)
System-Level Restart (Android)
Via ADB command:
# Set up cron job on server
adb connect [display-ip]:5555
adb shell rebootVia Root (if available):
# In Fully Kiosk Terminal
su
rebootHardware-Based Restart (Smart Plug)
Kasa Smart Plug Schedule:
Schedule 1: Power OFF
Time: 04:00
Duration: 30 seconds
Schedule 2: Power ON
Time: 04:00:30
Action: Turn OnAdvantages:
Setup with Home Assistant:
automation:
- alias: "Display Daily Restart"
trigger:
platform: time
at: "04:00:00"
action:
- service: switch.turn_off
entity_id: switch.display_plug
- delay: "00:00:30"
- service: switch.turn_on
entity_id: switch.display_plugMonitoring and Notifications
Fully Kiosk Remote Admin
Set up access:
Web interface: http://[display-ip]:2323
Available functions:
Health Monitoring
What to monitor:
Critical:
- Display online status
- Last successful data update
- CPU temperature (< 70°C)
- Memory usage (< 80%)
Warning:
- Uptime > 7 days (restart needed)
- Cache size > 200MB
- Error rate > 5%
- WiFi signal < -70dBmSet Up Alert System
Option 1: Fully Kiosk Cloud (Plus):
Option 2: Custom Monitoring:
# Python monitoring script
import requests
import smtplib
from email.mime.text import MIMEText
DISPLAYS = [
{"name": "Lobby", "ip": "10.0.0.101"},
{"name": "Reception", "ip": "10.0.0.102"}
]
for display in DISPLAYS:
try:
r = requests.get(f"http://{display['ip']}:2323/api/status",
timeout=5, auth=('admin', 'password'))
if r.status_code != 200:
send_alert(f"Display {display['name']} not responding")
except:
send_alert(f"Display {display['name']} offline")Performance Metrics
KPIs to track:
Daily:
- Restart Success Rate (Target: 100%)
- Average CPU Usage (Target: < 40%)
- Memory Usage Trend
- Cache Hit Rate
Weekly:
- Total Downtime (Target: < 10 min)
- Error Count
- WiFi Disconnections
- Temperature Max Values
Monthly:
- Brightness Hours (for burn-in calculation)
- Power Consumption (kWh)
- Software Update StatusBest Practices Summary
For OLED Displays
For LCD Displays
For Energy Efficiency
For Longevity
Troubleshooting
Display Turns Off
Diagnosis:
Solution:
# Keep permanently awake
adb shell svc power stayon trueBurn-In Already Visible
Immediate measures:
Long-term: Plan display replacement
Overheating
Symptoms:
Solutions:
Screensaver Not Activating
Diagnostic steps:
Fix: Clear Fully Kiosk cache and reconfigure