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 theegui
library 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-template
to.env
and fill in your Home Assistant details
- Run the App in Desktop Mode:
just
- Compile for WebAssembly:
just build-web
or in release modejust build-web-release
- Start the Server:
just serve
or 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.