HomeFlow is a modern web application written in pure Rust, designed to integrate seamlessly with Home Assistant to provide an interactive and animated map-based control of your smart home environment.
HomeFlow visualises your home layout and allows you to interact with smart devices in a user-friendly manner. This application bridges the gap between complex smart home setups and intuitive control, ensuring that managing your smart devices is as easy as tapping on a map.
- Interactive Map Display: Visualise your home layout with a detailed map that shows the locations of smart devices.
- Device Control: Easily turn lights and other smart devices on or off directly from the map by tapping on their icons.
- Dynamic Animations: Enjoy a clean, animated interface that provides real-time updates and feedback on device status and actions.
- Home Assistant Integration: Seamlessly connect to Home Assistant to access and control all your compatible devices.
- Web Application: Access HomeFlow from any device with a web browser, ensuring a consistent and responsive experience across desktops, tablets, and smartphones.
- GUI Edit Mode: Use intuitive tools to rapidly draw out your house with ease, making it simple to update and adjust your home layout.
- Powered by
egui: Utilises theeguilibrary for a smooth and efficient graphical user interface experience.
- Clone the Repository
- Install the WebAssembly Target:
rustup target add wasm32-unknown-unknown - Install Trunk Trunk for building WASM applications
cargo install --locked trunk - Install Just for managing build commands:
cargo install --locked just - Create Configuration File: Copy the
.env-templateto.envand fill in your Home Assistant details
- Run the App in Desktop Mode:
just - Compile for WebAssembly:
just build-webor in release modejust build-web-release - Start the Server:
just serveor in release modejust serve-release
Contributions are welcome! If you'd like to contribute to HomeFlow, please fork the repository and submit a pull request with your improvements or bug fixes.

