* docs: rename FONT_MANAGER_USAGE.md to FONT_MANAGER.md Renamed for clearer naming convention. Part of documentation consolidation effort. * docs: consolidate Plugin Store guides (2→1) Merged: - PLUGIN_STORE_USER_GUIDE.md - PLUGIN_STORE_QUICK_REFERENCE.md Into: PLUGIN_STORE_GUIDE.md - Unified writing style to professional technical - Added Quick Reference section at top for easy access - Removed duplicate content - Added cross-references to related documentation - Updated formatting to match style guidelines * docs: create user-focused Web Interface Guide Created WEB_INTERFACE_GUIDE.md consolidating: - V3_INTERFACE_README.md (technical details) - User-facing interface documentation - Focused on end-user tasks and navigation - Removed technical implementation details - Added common tasks section - Included troubleshooting - Professional technical writing style * docs: consolidate WiFi setup guides (4→1) Merged: - WIFI_SETUP.md - OPTIMAL_WIFI_AP_FAILOVER_SETUP.md - AP_MODE_MANUAL_ENABLE.md - WIFI_ETHERNET_AP_MODE_FIX.md (behavior documentation) Into: WIFI_NETWORK_SETUP.md - Comprehensive coverage of WiFi setup and configuration - Clear explanation of AP mode failover and grace period - Configuration scenarios and best practices - Troubleshooting section combining all sources - Professional technical writing style - Added quick reference table for behavior * docs: consolidate troubleshooting guides (4→1) Merged: - TROUBLESHOOTING_QUICK_START.md - WEB_INTERFACE_TROUBLESHOOTING.md - CAPTIVE_PORTAL_TROUBLESHOOTING.md - WEATHER_TROUBLESHOOTING.md Into: TROUBLESHOOTING.md - Organized by issue category (web, WiFi, plugins) - Comprehensive diagnostic commands reference - Quick diagnosis steps at the top - Service file template preserved - Complete diagnostic script included - Professional technical writing style * docs: create consolidated Advanced Features guide Merged: - VEGAS_SCROLL_MODE.md - ON_DEMAND_DISPLAY_QUICK_START.md - ON_DEMAND_DISPLAY_API.md - ON_DEMAND_CACHE_MANAGEMENT.md - BACKGROUND_SERVICE_README.md - PERMISSION_MANAGEMENT_GUIDE.md Into: ADVANCED_FEATURES.md - Comprehensive guide covering all advanced features - Vegas scroll mode with integration examples - On-demand display with API reference - Cache management troubleshooting - Background service documentation - Permission management patterns - Professional technical writing style * docs: create Getting Started guide for first-time users Created GETTING_STARTED.md: - Quick start guide (5 minutes) - Initial configuration walkthrough - Common first-time issues and solutions - Next steps and quick reference - User-friendly tone for beginners - Links to detailed documentation * docs: archive consolidated source files and ephemeral docs Archived files that have been consolidated: - Plugin Store guides (2 files → PLUGIN_STORE_GUIDE.md) - Web Interface guide (V3_INTERFACE_README.md → WEB_INTERFACE_GUIDE.md) - WiFi Setup guides (4 files → WIFI_NETWORK_SETUP.md) - Troubleshooting guides (4 files → TROUBLESHOOTING.md) - Advanced Features (6 files → ADVANCED_FEATURES.md) Archived ephemeral/debug documentation: - DEBUG_WEB_ISSUE.md - BROWSER_ERRORS_EXPLANATION.md - FORM_VALIDATION_FIXES.md - WEB_UI_RELIABILITY_IMPROVEMENTS.md - CAPTIVE_PORTAL_TESTING.md - NEXT_STEPS_COMMANDS.md - STATIC_IMAGE_MULTI_UPLOAD_PLAN.md - RECONNECT_AFTER_CAPTIVE_PORTAL_TESTING.md Archived implementation summaries: - PLUGIN_CONFIG_TABS_SUMMARY.md - PLUGIN_CONFIG_SYSTEM_VERIFICATION.md - PLUGIN_SCHEMA_AUDIT_SUMMARY.md - STARTUP_OPTIMIZATION_SUMMARY.md - PLUGIN_DISPATCH_IMPLEMENTATION.md - NESTED_SCHEMA_IMPLEMENTATION.md - AP_MODE_MANUAL_ENABLE_CHANGES.md - PLUGIN_CONFIG_SYSTEM_EXPLANATION.md Total archived: 27 files Preserves git history while cleaning up main docs directory * docs: rename API_REFERENCE.md to REST_API_REFERENCE.md Renamed for clarity - this is specifically the REST API reference for the web interface, not a general API reference. * docs: update README.md to reflect consolidated documentation structure Updated documentation index: - Reflects new consolidated guides (51 → 16-17 files) - Updated Quick Start sections with new file names - Added consolidation history (January 2026) - Updated file references (API_REFERENCE → REST_API_REFERENCE) - Documented archival of 33 files - Added benefits of consolidation - Updated statistics and highlights - Removed outdated references - Professional writing style maintained throughout * docs: add Vegas scroll mode system architecture documentation Added comprehensive internal architecture section for Vegas mode: - Component overview with diagram - VegasModeCoordinator responsibilities and main loop - StreamManager buffering strategy and content flow - PluginAdapter integration and fallback behavior - RenderPipeline 125 FPS rendering process - Component interaction flows - Thread safety patterns - Performance characteristics Covers: - How the four components work together - Initialization and render loop flows - Config update handling - Frame rate management and optimization - Memory usage and CPU characteristics --------- Co-authored-by: Chuck <chuck@example.com>
5.4 KiB
WiFi Monitor Ethernet Check Fix
Problem
The WiFi monitor service was enabling Access Point (AP) mode whenever WiFi was disconnected, even when the Raspberry Pi was connected via Ethernet. This caused:
- AP mode to activate unnecessarily when Ethernet was available
- Potential network conflicts
- Confusion for users with hardwired connections
Solution
Updated the WiFi manager to check for Ethernet connectivity before enabling AP mode. AP mode will now only be enabled when:
- WiFi is NOT connected AND
- Ethernet is NOT connected
Changes Made
1. Added Ethernet Detection Method
Added _is_ethernet_connected() method to src/wifi_manager.py that:
- Checks for active Ethernet interfaces (eth0, enp*, etc.)
- Verifies the interface has an IP address
- Uses
nmcliif available, falls back toipcommand - Returns
Trueif Ethernet is connected and has an IP
2. Updated AP Mode Enable Logic
Modified enable_ap_mode() to:
- Check for Ethernet connection before enabling AP mode
- Return an error message if Ethernet is connected: "Cannot enable AP mode while Ethernet is connected"
3. Updated AP Mode Management Logic
Modified check_and_manage_ap_mode() to:
- Check both WiFi and Ethernet status
- Only enable AP mode if both are disconnected
- Disable AP mode if either WiFi or Ethernet connects
- Log appropriate messages for each scenario
4. Enhanced Logging
Updated wifi_monitor_daemon.py to:
- Log Ethernet connection status
- Include Ethernet status in state change detection
- Log when AP mode is disabled due to Ethernet connection
Testing
Verify Ethernet Detection
# Check if Ethernet is detected
python3 -c "
from src.wifi_manager import WiFiManager
wm = WiFiManager()
print('Ethernet connected:', wm._is_ethernet_connected())
"
Test AP Mode Behavior
-
With Ethernet connected:
# AP mode should NOT enable sudo systemctl restart ledmatrix-wifi-monitor sudo journalctl -u ledmatrix-wifi-monitor -f # Should see: "Cannot enable AP mode while Ethernet is connected" -
With Ethernet disconnected and WiFi disconnected:
# Disconnect Ethernet cable # AP mode SHOULD enable sudo journalctl -u ledmatrix-wifi-monitor -f # Should see: "Auto-enabled AP mode (no WiFi or Ethernet connection)" -
With Ethernet connected and WiFi connects:
# Connect WiFi # AP mode should disable if it was active sudo journalctl -u ledmatrix-wifi-monitor -f # Should see: "Auto-disabled AP mode (WiFi connected)" -
With Ethernet connects while AP is active:
# Connect Ethernet cable while AP mode is active # AP mode should disable sudo journalctl -u ledmatrix-wifi-monitor -f # Should see: "Auto-disabled AP mode (Ethernet connected)"
Deployment
On Existing Installations
-
Restart the WiFi monitor service:
sudo systemctl restart ledmatrix-wifi-monitor -
If AP mode is currently active and Ethernet is connected, it will automatically disable:
# Check current status sudo systemctl status hostapd # The service should automatically disable AP mode within 30 seconds # Or manually disable: sudo systemctl stop hostapd dnsmasq -
Verify the fix:
# Check logs sudo journalctl -u ledmatrix-wifi-monitor -n 20 # Should see messages about Ethernet connection status
On New Installations
The fix is included automatically - no additional steps needed.
Behavior Summary
| WiFi Status | Ethernet Status | AP Mode | Reason |
|---|---|---|---|
| Connected | Connected | ❌ Disabled | Both connections available |
| Connected | Disconnected | ❌ Disabled | WiFi available |
| Disconnected | Connected | ❌ Disabled | Ethernet available |
| Disconnected | Disconnected | ✅ Enabled | No network connection |
Troubleshooting
AP Mode Still Enables with Ethernet Connected
-
Check Ethernet detection:
python3 -c " from src.wifi_manager import WiFiManager wm = WiFiManager() print('Ethernet connected:', wm._is_ethernet_connected()) " -
Check network interface status:
nmcli device status # OR ip addr show -
Verify Ethernet has IP address:
ip addr show eth0 # Should show an "inet" address (not just 127.0.0.1)
Ethernet Not Detected
If Ethernet is connected but not detected:
-
Check interface name:
ip link show # Look for Ethernet interfaces (may be eth0, enp*, etc.) -
Check NetworkManager status:
sudo systemctl status NetworkManager -
Manually check interface:
nmcli device status | grep ethernet
Related Files
src/wifi_manager.py- Main WiFi management logicscripts/utils/wifi_monitor_daemon.py- Background daemon that monitors WiFi/Ethernetscripts/install/install_wifi_monitor.sh- Installation script for WiFi monitor service
Notes
- The Ethernet check uses
nmcliif available (preferred), otherwise falls back toipcommand - The check verifies that the interface has an actual IP address (not just link up)
- AP mode will automatically disable within 30 seconds (check interval) when Ethernet connects
- Manual AP mode enable via web interface will also respect Ethernet connection status