IronNest is a home automation system designed to integrate with various smart devices. The current implementation integrates with Ring, Alexa, TP-Link, and Roku devices, all controllable by GPT-3.5-turbo-1106.
- Integration with Ring doorbells, cameras, etc.
- Fetch authentication tokens from Ring.
- Get details of Ring, Alexa, Roku & TP-Link devices.
- Obtain socket tickets from Ring.
- Automatic local network discovery of devices.
- Chain multiple commands and control devices by
type
,name
, or byip
.
![image](https://private-user-images.githubusercontent.com/19313806/294829570-51236523-af7b-463f-9b84-48251751abed.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk0MDg4NTUsIm5iZiI6MTcxOTQwODU1NSwicGF0aCI6Ii8xOTMxMzgwNi8yOTQ4Mjk1NzAtNTEyMzY1MjMtYWY3Yi00NjNmLTliODQtNDgyNTE3NTFhYmVkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjI2VDEzMjkxNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTcxMTM5YzI1NmY5YmE1NWYzZjhmN2FmOTMzZjg5NTcyODY0MjFkY2QzYTUyYjZmM2Q0Nzc2YzYzNTQ4ZDkwOGMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.kzk-q6yGyxbGt-cJcVq86uWNFSPuVoMS0mI5IsWzL6M)
![image](https://private-user-images.githubusercontent.com/19313806/302872747-cd0e9216-d3bc-418b-b888-5fe294a0a5a4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk0MDg4NTUsIm5iZiI6MTcxOTQwODU1NSwicGF0aCI6Ii8xOTMxMzgwNi8zMDI4NzI3NDctY2QwZTkyMTYtZDNiYy00MThiLWI4ODgtNWZlMjk0YTBhNWE0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjI2VDEzMjkxNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTYzMjc3MDk3MWJhODc5NzViMDY2NTBkZmQyMWQ2MzdlOWMxMWEwMGQ2ZjA0ZjQ1YTIyNjYxZWM2YjRjNjZmOWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.v-z744M1mjhT47Q-v-KgW_2zLFQzOLFnAeZz17ilzao)
The project has the following main files:
main.rs
: The main entry point, sets up the server, routes, and middleware.intergations
: Contains the utility functions & types for an intergartion such as theRingRestClient
for making requests to the Ring API.client
: Contains an integrations client & authentication logic.types
: Contains an intergartions data structures and types.
rustup target add wasm32-unknown-unknown
cargo install trunk cargo-leptos leptosfmt just
just dev
GET /
: Main dashboard displaying any number of intergartions".GET /api/ring/keypress
: Submit ring keypresses.GET /login
: Authenticates with the Ring API.
Contributions to IronNest are welcome! Please fork the repository, make your changes, and submit a pull request.
Special thanks to the Rust community and the creators of the Axum & Leptos frameworks for providing such valuable resources.