Complete, native Android control for your Unfolded Circle Remote 2/3 devices
UC Remote Android is a fully-featured native Android companion app for Unfolded Circle Remote 2 and Remote 3 devices. Built with 100% Kotlin, it provides comprehensive entity management, real-time WebSocket updates, custom UI pages, complete profile support, and production-grade reliability.
- 🎯 Native Experience - Fast, responsive, and built specifically for Android
- ⚡ Real-Time Updates - WebSocket-based instant entity state synchronization
- 🎨 Beautiful UI - Material Design 3 with modern glass-morphism effects
- 🔄 Auto-Recovery - Unlimited WebSocket reconnection with exponential backoff
- 🛡️ Production Ready - Firebase Crashlytics for stability monitoring
- 📱 Universal - Phones, tablets, and foldables fully supported
This app and all my integrations represent hundreds of hours of development and dedication. If you find this app useful, please consider supporting continued development:
- 📱 App Name: uc-remote - Direct Link to Play Store
- Connect to unlimited UC Remote 2/3 devices simultaneously
- Quick remote switching with live connection status
- Per-remote profile and entity management
- Automatic connection persistence across app restarts
- Token-Based Security - Secure PIN authentication with automatic token management
- Auto-Recovery System - Automatic re-authentication after device reboots
- Fallback Authentication - Bearer to Basic auth automatic fallback
- Encrypted Storage - Secure credential and token storage
- Session Persistence - Maintains authentication across app sessions
- Unlimited Reconnection - WebSocket auto-reconnect with exponential backoff
- Network Resilience - Automatic connection recovery after network changes
- Connection Monitoring - Real-time connection state with visual indicators
- Wake-on-LAN Support - Wake sleeping remote devices from the app
- Full Playback Control - Play, pause, stop, skip (previous/next)
- Advanced Seeking - Custom seek bar with configurable time ranges (up to 80%)
- Volume Management - Slider control with configurable range (up to 100%)
- Album Art Display - Full-resolution artwork with tap-to-play/pause
- Media Information - Title, artist, album, duration, and position
- Source Selection - Input source switching with visual feedback
- Shuffle & Repeat - Toggle playback modes
- State Synchronization - Real-time WebSocket state updates
- Power Control - On/Off toggle with instant feedback
- Brightness Control - Smooth 0-100% slider adjustment
- Color Temperature - Warm to cool white adjustment
- Full RGB Control - Color wheel picker with hue/saturation
- Color Presets - Quick access to common colors
- Real-Time Updates - WebSocket-synced state changes
- Temperature Adjustment - Precise target temperature control
- Mode Selection - Heat, cool, auto, dry, fan-only, off
- Fan Speed Control - Low, medium, high, auto settings
- Current State Display - Real-time temperature and humidity
- HVAC Actions - Turn on/off, set temperature, change mode
- Visual Feedback - Color-coded mode indicators
- Position Control - Open, close, stop commands
- Precise Positioning - 0-100% position slider
- Tilt Adjustment - Blind angle control (where supported)
- State Feedback - Real-time position updates
- Multiple Cover Support - Control multiple covers simultaneously
- Switch Toggle - On/Off control with state persistence
- Button Actions - Single press command execution
- State Indicators - Visual on/off state display
- Custom Commands - Execute any configured entity command
- Haptic Feedback - Tactile confirmation on press
- IR/RF Control - Send infrared and radio frequency commands
- Button Grid Display - Visual remote control layout
- Custom Button Mapping - User-defined button configurations
- Command Execution - Instant command transmission
- Activity Integration - Remote buttons within activity pages
- Haptic Feedback - Button press confirmation
- Comprehensive Support - Temperature, humidity, battery, motion, binary sensors
- Nested Data Parsing - Support for complex sensor data structures
- Unit Display - Automatic unit formatting (°C, °F, %, lux, etc.)
- State Monitoring - Real-time sensor value updates
- Icon Integration - Custom sensor icons from FontAwesome and UC Icons
- Attribute Display - Additional sensor attributes and metadata
- Start/Stop Control - Launch and terminate activities instantly
- Running State Display - Visual indicators for active activities
- Activity Sequences - Multi-step entity control workflows
- Custom Pages - Activity-specific UI page configurations
- Quick Access - Dedicated activities list with search
- Media Integration - Now playing display with album art
- Remote Integration - Full remote entity support within activities
- Entity Groups - Organized control of activity entities
- Custom Layouts - User-defined page arrangements
- Tab Navigation - Interface/Buttons tab switching
- Gesture Support - Swipe navigation between activity pages
- Unlimited Pages - Create as many custom pages as needed
- Page Operations - Add, remove, rename, reorder with drag-drop
- Auto Grid Layout - Automatic button arrangement based on screen size
- Responsive Design - Adapts to phones (3 columns) and tablets (4-6 columns)
- Page Persistence - Saves all configurations locally and syncs to Remote
- Page Indicators - Animated dot indicators with smooth transitions
- Entity Linking - Connect any entity type to buttons
- Custom Icons - Support for Material, FontAwesome Pro, and UC Icons
- FontAwesome Pro Fallback - Readable text for missing Pro icons
- Icon Customization - Change icons per button
- Button Labels - Customizable text display
- State Colors - Visual entity state feedback
- Tap Actions - Single tap to control entities
- FontAwesome Pro Support - Full FA Pro icon set with text fallback
- UC Icons - Native Unfolded Circle icon font
- Material Icons - Android Material Design icons
- TV Channel Icons - Support for "ctv:" prefix channel icons
- Fallback Handling - Displays readable text for unavailable icons
- Icon Loading - Efficient caching and loading system
- Unlimited Profiles - Support for all profiles on Remote device
- Quick Switching - Instant profile change with right drawer
- Profile Sync - Automatic synchronization with Remote device
- Entity Filtering - Profile-specific entity visibility
- Per-Profile Pages - Custom page configurations per profile
- Active Profile Display - Visual indicator of current profile
- Activity Pages - Dedicated activity control and monitoring
- Media Player Pages - Media-focused layouts and controls
- Custom Groups - User-defined entity collections
- Group Editor - Visual group creation and management
- Page Templates - Quick setup with predefined layouts
- Export/Import - Share profile configurations
- Live State Updates - <100ms entity state synchronization
- Unlimited Reconnection - Auto-reconnect with exponential backoff
- Connection Recovery - Automatic recovery after network interruptions
- State Synchronization - All entities stay perfectly in sync
- Low Latency - Optimized WebSocket communication
- Connection Status - Visual feedback of WebSocket state
- Firebase Crashlytics - Crash reporting and analytics
- Error Recovery - Graceful handling of network/API errors
- Memory Management - Optimized lifecycle with repeatOnLifecycle
- Connection Pooling - Proper OkHttp connection management
- Background Resilience - Maintains connections during app backgrounding
- Integration Browser - View all configured integrations
- Device Management - See integration-managed devices
- Driver Information - Integration driver details and versions
- Connection Monitoring - Integration health and status
- Configuration Access - Quick access to integration settings
- Search & Filter - Find integrations and devices quickly
- Real-Time Viewer - Live system log streaming
- Log Filtering - Filter by level (debug, info, warning, error)
- Search Logs - Text search within log entries
- Export Logs - Share logs for troubleshooting
- Timestamps - Precise log entry timing
- Auto-Scroll - Follow latest log entries
- Modern Components - Latest Material Design 3 components
- Glass Effects - Polished semi-transparent backgrounds
- Smooth Animations - 60fps transitions and interactions
- Responsive Layout - Adapts to all screen sizes and orientations
- Haptic Feedback - Tactile confirmation for all interactions
- Custom Components - D-Pad, touchpad, seekbar, color picker
- Light Theme - Clean, bright interface
- Dark Theme - True OLED-friendly dark mode
- System Theme - Automatically follow system settings
- Dynamic Colors - Entity-based color accents
- Glass Effects - Semi-transparent backgrounds with blur
- Gradient Backgrounds - Smooth color transitions
- Left Drawer - Main navigation menu with all sections
- Right Drawer - Profile selector with quick actions
- Bottom Navigation - Interface/Buttons tab switching
- Page Indicators - Animated page position display
- Status Bar - Remote info, battery level, connection state
- Search - Global entity and integration search
- Phones (5-7") - Optimized 3-column grid layouts
- Small Tablets (7-9") - 4-column responsive grids
- Tablets (10"+) - 5-6 column layouts with spacing
- Foldables - Adaptive layouts for folded/unfolded states
- Portrait & Landscape - Full orientation support
- Auto Grid Adjustment - Dynamic column calculation
- Minimum SDK - Android 8.0 Oreo (API 26)
- Target SDK - Android 14 (API 34)
- Tested Versions - Android 8.0 through Android 14+
- Material You - Dynamic theming on Android 12+
- Permission Handling - Runtime permissions for network and storage
Activities list showing running states, native remote control interface (PS5 example), and rich visual backgrounds
Comprehensive entity browser (Home Assistant example), main navigation drawer, and right-side profile selector with quick actions
Multi-remote management list and easy connection setup with auto-discovery support
- Open Google Play Store on your Android device
- Search for "UC Remote Android"
- Tap "Install"
- Launch and connect to your UC Remote device
- Android Version: Android 8.0 (Oreo) or higher
- Network: WiFi connection (same network as UC Remote)
- UC Remote: Remote 2 or Remote 3 with firmware 1.x or higher
- Permissions: Network access, Wake-on-LAN (optional)
-
Launch the app - UC Remote Android will open to the Remotes screen
-
Add your Remote:
- Tap the + (Add) button
- Enter your Remote's IP address or hostname
- Enter the PIN code (4 digits)
- Tap Test Connection
- Tap Save when connection succeeds
-
Connect to Remote:
- Tap Connect on your saved remote
- Wait for green connection indicator
- App will load your profiles and entities
-
Select Profile:
- Tap the profile button (top-right)
- Choose your desired profile
- Entities will load automatically
Media Players:
- Tap album art to play/pause
- Use playback buttons for control
- Drag volume/seek sliders
- Tap source to change input
Lights:
- Tap the entity card to toggle on/off
- Use brightness slider
- Tap color picker for RGB control
- Adjust color temperature
Activities:
- Tap Start to launch activity
- View media playback in activity interface
- Switch between Interface/Buttons tabs
- Tap Stop to end activity
-
Navigate to Pages:
- Open left drawer menu
- Select a page category (Activities, Lights, etc.)
- Swipe horizontally to navigate pages
-
Add Custom Page:
- Open Profile Pages
- Tap the edit button (✏️ FAB)
- Tap Add Page
- Name your page
- Add entity buttons
-
Customize Buttons:
- Long-press any button
- Select entity to link
- Choose custom icon
- Save changes
-
Switch Profiles:
- Tap profile selector (top-right)
- Select desired profile from drawer
- Wait for profile sync (~500ms)
- New profile loads with entities
-
Manage Pages:
- Navigate to Profile Pages
- Tap page menu (⋮)
- Available options:
- Add new page
- Rename page
- Remove page
- Reorder pages
- Refresh from Remote
-
Manage Remotes:
- Tap menu (☰)
- Select "Manage Remotes"
- Available actions:
- Add new remote
- Edit existing remote
- Remove remote
- Connect/disconnect
-
Connection Features:
- Wake-on-LAN: Wake sleeping remotes
- Auto-Reconnect: Unlimited reconnection attempts
- Token Recovery: Auto re-auth after device reboot
Symptoms:
- Connection timeout
- "Remote not found" error
- Authentication failed
Solutions:
- Verify Remote is powered on and connected to WiFi
- Check both devices are on the same network
- Verify PIN code is correct (4 digits)
- Try the Remote's IP address instead of hostname
- Check your router's firewall settings
- Restart the Remote device
- Clear app cache: Settings → Apps → UC Remote → Clear Cache
Symptoms:
- Empty entity list
- "Loading..." never completes
- Entities show as "unavailable"
Solutions:
- Pull down to refresh entity list
- Switch profiles and switch back
- Tap "Refresh Pages" in profile menu
- Reconnect to Remote device
- Verify Remote has integrations configured
- Check WebSocket connection in System Logs
- Force close and restart app
Symptoms:
- Entity states don't update automatically
- Changes on Remote not reflected in app
- Delayed state updates (>5 seconds)
Solutions:
- Check WebSocket connection status (should be green)
- View System Logs for WebSocket errors
- Reconnect to Remote device
- Check network stability (WiFi signal strength)
- Verify Remote firmware is up to date
- Restart app to reset WebSocket connection
- Check if phone's battery saver is limiting background activity
Symptoms:
- Profile switch timeout
- Entities disappear after switch
- App freezes during profile change
Solutions:
- Wait 5-10 seconds and try again
- Check WebSocket connection is active
- Reconnect to Remote device
- Verify the profile exists on Remote
- Clear app cache and restart
- Check network connection stability
Symptoms:
- Activity won't start
- Media player not showing in activity
- Remote buttons not responding
Solutions:
- Verify activity is properly configured on Remote
- Check all activity entities are available
- Stop and restart the activity
- Refresh the activity page (pull down)
- Verify WebSocket connection is active
- Check activity logs in System Logs section
Symptoms:
- Missing icons showing as squares
- FontAwesome icons showing text instead
- Custom icons not loading
Solutions:
- This is expected behavior for FontAwesome Pro icons (fallback to text)
- Clear app cache: Settings → Debug → Clear Cache
- Refresh pages from Remote
- Verify icon names in page configuration
- Check internet connection for first-time icon downloads
Symptoms:
- App force closes unexpectedly
- UI becomes unresponsive
- Screen goes black or stuck
Solutions:
- Force stop app: Settings → Apps → UC Remote → Force Stop
- Clear app cache: Settings → Apps → UC Remote → Clear Cache
- Update to latest version from Google Play
- Check Firebase Crashlytics reports (developer)
- Reinstall app if issues persist
- Report crash to developer with logs
Pattern: MVVM (Model-View-ViewModel)
Language: Kotlin 100% (native Android)
UI Framework: Material Design 3 with custom components
Navigation: Android Navigation Component + Fragment-based architecture
State Management: StateFlow and repeatOnLifecycle for reactive UI
Networking:
- OkHttp + Retrofit for REST API calls
- OkHttp WebSocket for real-time entity updates
- Proper connection pooling and resource management
Concurrency: Kotlin Coroutines with structured concurrency
View Binding: ViewBinding for type-safe view access
Persistence: SharedPreferences with JSON serialization
Analytics: Firebase Crashlytics for production monitoring
Memory Management: Fragment lifecycle with repeatOnLifecycle patterns
- ViewPager2 Lifecycle Management - Proper fragment lifecycle handling for page navigation
- WebSocket State Machine - Exponential backoff reconnection with unlimited retries
- Token Authentication - Automatic token refresh and Bearer/Basic auth fallback
- Flow Collectors - Memory-leak-free state collection with repeatOnLifecycle
- Connection Pooling - Optimized OkHttp connection management with .use{} blocks
- Error Recovery - Graceful handling of network failures and API errors
- Background Resilience - Maintains connections during app backgrounding
UC Remote Core API:
- REST API for configuration and control
- WebSocket API for real-time state updates
- Token-based authentication with auto-refresh
- Entity management endpoints
- Profile and page synchronization
- Integration and device discovery
- System log streaming
Supported Entity Types:
- Media Players (play, pause, stop, seek, volume)
- Lights (on/off, brightness, color, temperature)
- Climate (temperature, mode, fan speed)
- Covers (position, tilt, open, close)
- Switches (on/off toggle)
- Buttons (press commands)
- Sensors (temperature, humidity, battery, binary, etc.)
- Remotes (IR/RF command transmission)
- Activities (multi-entity sequences)
UC Remote Android is committed to protecting your privacy. The app:
- No Data Collection: Does not collect or transmit any personal data
- Local Storage Only: All data stored locally on your device
- No Analytics: Does not track usage (except crash reports via Crashlytics)
- No Ads: Completely ad-free experience
- Secure Communication: Direct device-to-device communication only
- Encrypted Credentials: Secure storage of authentication tokens
View the complete privacy policy at: Privacy Policy
This project is licensed under the Mozilla Public License 2.0 (MPL-2.0).
This means:
- ✅ Free to use, modify, and distribute
- ✅ Can be used in commercial projects
- ✅ Source code modifications must be disclosed
- ✅ Patent grant included
- ❌ Cannot be relicensed under different terms
See the LICENSE file for complete details.
- GitHub Issues: Report bugs and request features
- UC Community Forum: General discussion and support
- Discord: Join UC Discord server
- UC Support: Official Unfolded Circle Support
- Developer: Meir Miyara on LinkedIn
- iOS Source Reference: albaintor's UC Remote iOS - Special thanks for allowing study of iOS source code
Contributions are welcome! Here's how you can help:
- Report Bugs: Use GitHub Issues with detailed reproduction steps
- Feature Requests: Suggest new features via GitHub Issues
- Beta Testing: Join the beta program for early access
- Spread the Word: Share with the UC community
- Financial Support: Sponsor via GitHub, BMAC, or PayPal
Lead Developer: Meir Miyara
Platform: Native Android (Kotlin)
- albaintor - For allowing study of iOS app source code and architecture
- Unfolded Circle - For the amazing UC Remote hardware and API
- Beta Testers - All 31 beta testers who provided invaluable feedback
- UC Community - For support, feature requests, and enthusiasm
- Contributors - Everyone who reported bugs and suggested improvements
- Android Studio & Kotlin
- Material Design 3 Components
- OkHttp & Retrofit
- Kotlin Coroutines & Flow
- Firebase Crashlytics
- ViewPager2 & Navigation Component
- FontAwesome & UC Icons
Made with ❤️ for the Unfolded Circle Community
UC Remote Android - Your Remote, Your Phone, Your Control







