# dirigera - Manage your IKEA devices **This crate is under development and can change at any time! Do not use just yet!** > [!NOTE]\ > I only have a few IKEA devices so most of the endpoints I've been trying has > been for lights. I also don't use scenes extensively but tried to set up and > configure all available ones to research the API. > If you have any other devices and want to contribute to the code that would be > much appreciated! ## Setup To communicate with the Dirigera device you need to know its IP address and obtain a token. I can't help you find the IP but usually you can see this by looking at your routers device list. Once you figured that out, run the `generate-token` binary to generate a file named `config.toml` that will store the device's IP address and the obtained token. ```sh cargo run --bin generate-token --features binary ``` When you have a valid configuration file you can use the default trait for the `Hub` to generate an instance that will call the configured IP address with the configured token. ```rust let hub = dirigera::hub::Hub::default(); ``` > **NOTE** Since the configuration file depends on toml support for this is > hidden behind a feature flag called `config`. To skip using toml simply use > the `new` constructor and pass IP and token. ### Configuration file If you want to create the configuration file manually, this is what it looks like: ```toml ip-address = 192.168.1.101 token = "abc123..." ``` ## Usage See [examples](examples) for examples on how to use this crate. ### Manual testing Just use the token you got and your favourite HTTP client. ```sh › http --verify=no \ "https://[ip]:8443/v1/devices" \ "Authorization: Bearer $TOKEN" ``` ## Acknowledgement - [Leggin/dirigera](https://github.com/Leggin/dirigera) for the inspiration and most of the information of the API, including token generation.