Skip to main content

Desktop remote control application for Home Assistant

Project description

Home Assistant Desktop Remote Control

Home Assistant Desktop Remote Control Logo

🏠 A Beautiful Desktop Remote Control for Home Assistant

Control your Home Assistant media players and devices with an intuitive, cross-platform desktop application.

PyPI version Python Support License: MIT Platform Support

✨ Features

  • 🎮 Intuitive Remote Interface: Clean, modern UI with familiar remote control layout
  • ⌨️ Keyboard Shortcuts: Full keyboard navigation support for quick control
  • 🌈 System Theme Integration: Automatically adapts to your system's light/dark theme
  • 🔧 Easy Setup Wizard: Step-by-step configuration with automatic entity discovery
  • 📱 Multiple Remote Support: Manage and switch between multiple Home Assistant remotes
  • 🔒 Secure Authentication: Uses Home Assistant's long-lived access tokens
  • 🖥️ Cross-Platform: Works on Windows, macOS, and Linux
  • ⚡ Responsive Design: Fast, non-blocking command execution

📸 Screenshot

Home Assistant Desktop Remote Control Interface

Clean, intuitive remote control interface with familiar button layout

🚀 Quick Start

Installation

Install from PyPI using pip:

pip install ha-desktop-remote

Launch the Application

After installation, you can launch the application:

ha-desktop-remote

First-Time Setup

  1. Launch the application - You'll see the main remote interface
  2. Click the "+" button to add your first remote
  3. Enter your Home Assistant details:
    • Home Assistant URL (e.g., https://homeassistant.local:8123)
    • Long-lived access token (create one in HA: Profile → Security → Long-Lived Access Tokens)
  4. Select your remote entity from the discovered devices
  5. Give your remote a name and you're ready to go!

🎮 Usage

Remote Controls

The application provides a full-featured remote control interface:

Physical Buttons

  • Power Button: Turn devices on/off
  • Volume Controls: Volume up/down and mute
  • D-Pad Navigation: Up, down, left, right, and OK/Enter
  • Navigation: Back and Home buttons
  • Media Controls: Play/pause, stop, rewind, fast forward

Keyboard Shortcuts

  • Arrow Keys: Navigate (↑↓←→)
  • Enter/Space: OK/Select
  • Escape/Backspace: Back
  • Home: Home button
  • M: Menu
  • P: Power
  • +/-: Volume up/down

Managing Remotes

  • Add Remote: Click the "+" button to add a new remote
  • Edit Remote: Click the "✎" button to modify an existing remote
  • Delete Remote: Click the "🗑️" button to remove a remote
  • Switch Remotes: Use the dropdown to switch between configured remotes

🔧 Configuration

Home Assistant Setup

  1. Create a Long-Lived Access Token:

    • Go to your Home Assistant profile
    • Navigate to Security → Long-Lived Access Tokens
    • Click "Create Token"
    • Give it a descriptive name like "Desktop Remote"
    • Copy the generated token
  2. Ensure Remote Entities are Available:

    • Your media players should appear as remote.* entities
    • Common examples: remote.living_room_tv, remote.bedroom_chromecast

Application Configuration

Configuration files are stored in platform-appropriate locations:

  • Windows: %APPDATA%\HomeAssistantDesktopRemote\remotes.json
  • macOS: ~/Library/Application Support/HomeAssistantDesktopRemote/remotes.json
  • Linux: ~/.config/ha-desktop-remote/remotes.json

🛠️ Development

Prerequisites

  • Python 3.8 or higher
  • PySide6
  • requests

Setting up Development Environment

  1. Clone the repository:

    git clone https://github.com/dmarkey/ha-desktop-remote.git
    cd ha-desktop-remote
    
  2. Create a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. Install dependencies:

    pip install -r requirements.txt
    
  4. Run the application:

    python -m ha_desktop_remote.main
    

Building for Distribution

# Install build dependencies
pip install build twine

# Build the package
python -m build

# Upload to PyPI (maintainers only)
twine upload dist/*

🤝 Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes and add tests if applicable
  4. Commit your changes: git commit -m 'Add amazing feature'
  5. Push to the branch: git push origin feature/amazing-feature
  6. Open a Pull Request

Development Guidelines

  • Follow PEP 8 style guidelines
  • Add docstrings to new functions and classes
  • Test your changes on multiple platforms if possible
  • Update documentation for new features

📋 Requirements

  • Python: 3.8 or higher
  • PySide6: Qt6 bindings for Python
  • requests: HTTP library for API communication
  • Home Assistant: Compatible with Home Assistant Core

Supported Platforms

  • Windows: Windows 10/11
  • macOS: macOS 10.14 (Mojave) or later
  • Linux: Most modern distributions with Qt6 support

🐛 Troubleshooting

Common Issues

Connection Failed

  • Verify your Home Assistant URL is correct and accessible
  • Check that your access token is valid and not expired
  • Ensure Home Assistant is running and reachable from your network

No Remote Entities Found

  • Make sure your media players are configured in Home Assistant
  • Check that they appear as remote.* entities in Developer Tools → States
  • Some devices may need specific integrations to expose remote functionality

Application Won't Start

  • Ensure Python 3.8+ is installed
  • Try reinstalling: pip uninstall ha-desktop-remote && pip install ha-desktop-remote
  • Check for Qt6/PySide6 compatibility issues on your system

Getting Help

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Home Assistant Team: For creating an amazing home automation platform
  • Qt/PySide6: For providing excellent cross-platform GUI framework
  • Contributors: Everyone who has contributed to making this project better

🔗 Links


Made with ❤️ for the Home Assistant community

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ha_desktop_remote-1.0.4.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ha_desktop_remote-1.0.4-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

Details for the file ha_desktop_remote-1.0.4.tar.gz.

File metadata

  • Download URL: ha_desktop_remote-1.0.4.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for ha_desktop_remote-1.0.4.tar.gz
Algorithm Hash digest
SHA256 69cbc35c2ce9bbbf31a0d247af76ae4f62ba641c4e1faf7688f86fca4bb0cede
MD5 a76fe66f8a1915b9f8552b979eae4baf
BLAKE2b-256 60aff218e0fb6dcb71a6d9946e2fee8dc07de5a92dce2e94814164c639038f2c

See more details on using hashes here.

File details

Details for the file ha_desktop_remote-1.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for ha_desktop_remote-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 d05ddc3591bc498e13dd2f9f9ba89d78987c06ddd69742a398f97950fd2be670
MD5 d81bd7dfb506c23094268ddd74d56045
BLAKE2b-256 771ef3a12e6af8a172f6880e5574937295ac83e0d6a59377efdb8db8262fa29b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page