HDMI-CEC: auto-disable in dev mode + docs/tests synced
README: document dev-mode CEC auto-disable; add testing notes; set CEC_POWER_OFF_WAIT=5 Copilot instructions: add dev-mode CEC behavior and test script guidance test-hdmi-cec.sh: respect ENV=development (skip option 5), explicit .env load, ASCII output, 30s wait display_manager: remove emoji from logs to avoid Unicode errors
This commit is contained in:
70
README.md
70
README.md
@@ -7,6 +7,7 @@ Digital signage system for Raspberry Pi that displays presentations, videos, and
|
||||
- **Automatic Presentation Display** - PPTX files converted to PDF and displayed with Impressive
|
||||
- **Auto-Advance Slideshows** - Configurable timing for automatic slide progression
|
||||
- **Loop Mode** - Presentations can loop infinitely or quit after last slide
|
||||
- **HDMI-CEC TV Control** - Automatic TV power on/off based on event scheduling
|
||||
- **MQTT Integration** - Real-time event management from central server
|
||||
- **Group Management** - Organize clients into groups for targeted content
|
||||
- **Heartbeat Monitoring** - Regular status updates and screenshot dashboard
|
||||
@@ -28,6 +29,7 @@ Digital signage system for Raspberry Pi that displays presentations, videos, and
|
||||
- Impressive (PDF presenter with auto-advance)
|
||||
- Chromium browser (for web content)
|
||||
- VLC or MPV (for video playback)
|
||||
- CEC Utils (for HDMI-CEC TV control - optional)
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
@@ -44,7 +46,8 @@ sudo apt-get update
|
||||
sudo apt-get install -y \
|
||||
python3 python3-pip python3-venv \
|
||||
libreoffice impressive \
|
||||
chromium-browser vlc
|
||||
chromium-browser vlc \
|
||||
cec-utils
|
||||
|
||||
# Create Python virtual environment
|
||||
python3 -m venv venv
|
||||
@@ -81,6 +84,13 @@ FILE_SERVER_PORT=8000 # default API port
|
||||
# http or https
|
||||
FILE_SERVER_SCHEME=http
|
||||
# FILE_SERVER_BASE_URL= # optional full override, e.g., http://192.168.1.100:8000
|
||||
|
||||
# HDMI-CEC TV Control (optional)
|
||||
CEC_ENABLED=true # Enable automatic TV power control (auto-disabled in development)
|
||||
CEC_DEVICE=0 # Target device (0 recommended for TV)
|
||||
CEC_TURN_OFF_DELAY=30 # Seconds to wait before turning off TV
|
||||
CEC_POWER_ON_WAIT=5 # Seconds to wait after power ON (for TV boot)
|
||||
CEC_POWER_OFF_WAIT=5 # Seconds to wait after power OFF (increase for slower TVs)
|
||||
```
|
||||
|
||||
### 3. Start Services
|
||||
@@ -568,6 +578,64 @@ tail -f logs/simclient.log
|
||||
tail -f logs/*.log
|
||||
```
|
||||
|
||||
## 📺 HDMI-CEC TV Control
|
||||
|
||||
The system includes automatic TV power control via HDMI-CEC. The TV turns on when events start and turns off (with delay) when no events are active.
|
||||
|
||||
### Development mode behavior
|
||||
|
||||
- When `ENV=development`, HDMI-CEC is automatically disabled by the Display Manager to avoid constantly switching the TV during development.
|
||||
- The test script `scripts/test-hdmi-cec.sh` also respects this: menu option 5 (Display Manager CEC integration) will detect development mode and skip the integration test. Manual options (1–4) still work for direct cec-client testing.
|
||||
|
||||
To test CEC end-to-end, temporarily set `ENV=production` in `.env` and restart the Display Manager, or use the manual commands in the test script.
|
||||
|
||||
### Quick Setup
|
||||
|
||||
```bash
|
||||
# Install CEC utilities
|
||||
sudo apt-get install cec-utils
|
||||
|
||||
# Test CEC connection
|
||||
echo "scan" | cec-client -s -d 1
|
||||
|
||||
# Configure in .env
|
||||
CEC_ENABLED=true
|
||||
CEC_DEVICE=0 # Use 0 for best performance
|
||||
CEC_TURN_OFF_DELAY=30
|
||||
CEC_POWER_ON_WAIT=5 # Adjust if TV is slow to boot
|
||||
CEC_POWER_OFF_WAIT=2
|
||||
```
|
||||
|
||||
### Features
|
||||
|
||||
- **Auto Power On**: TV turns on when event starts
|
||||
- **Auto Power Off**: TV turns off after configurable delay when events end
|
||||
- **Smart Switching**: TV stays on when switching between events
|
||||
- **Configurable Delay**: Prevent rapid on/off cycles
|
||||
|
||||
### Testing
|
||||
|
||||
```bash
|
||||
# Interactive test menu
|
||||
./scripts/test-hdmi-cec.sh
|
||||
|
||||
# Note: In development mode, option 5 (integration test) is skipped on purpose.
|
||||
# Use options 1–4 for manual commands, or set ENV=production to run the integration test.
|
||||
|
||||
# Manual commands
|
||||
echo "on 0" | cec-client -s -d 1 # Turn on
|
||||
echo "standby 0" | cec-client -s -d 1 # Turn off
|
||||
echo "pow 0" | cec-client -s -d 1 # Check status
|
||||
```
|
||||
|
||||
### Documentation
|
||||
|
||||
See [HDMI_CEC_SETUP.md](HDMI_CEC_SETUP.md) for complete documentation including:
|
||||
- Detailed setup instructions
|
||||
- Troubleshooting guide
|
||||
- TV compatibility information
|
||||
- Advanced configuration options
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
1. Test changes with `./scripts/test-display-manager.sh`
|
||||
|
||||
Reference in New Issue
Block a user