API client for interacting with IOLite's remote API
Project description
Python IOLite Client
Python client for IOLite's remote API.
The client has basic functionality such as the authentication layer, some basic command models, and a client to change the heating intervals are available.
Build by reverse engineering the Deutsche Wohnen MIA Android App and subsequently their remote API.
Read the following short post on how that was achieved.
Used in making the IOLite Custom Component for Home Assistant.
Requirements
- Python 3.7+
- Poetry
Getting credentials
Open your Deutsche Wohnen tablet and begin pairing device process. Scan the QR code with your QR-Scanner and instead of opening the QR code in your browser, copy it's content. You'll get the following payload:
{
"webApp": "/ui/",
"code": "<redacted>",
"basicAuth": "<redacted>"
}
basicAuth
contains base64 encoded HTTP basic username and password. Decode this to get the:
separateduser:pass
.code
is the pairing code
You can decode the credentials using the scripts/get_credentials.py
script. e.g.
python scripts/get_credentials.py '{"webApp":"/ui/","code":"<redacted>","basicAuth":"<redacted>"}'
Development
- Init your virtualenv environment (
poetry install
) - Copy
.env.example
to.env
- Decode credentials (
poetry run python scripts/get_credentials.py <basic-auth-value>
) - Add your credentials to
.env
following the above process
The pre-commit framework is used enforce some linting and style compliance on CI.
To get the same behaviour locally you can run pre-commit install
within your activated venv.
Alternatively to run manually you can run pre-commit run -a
.
Access remote UI
Run poetry run python scripts/example.py
and copy the URL to your browser of choice.
You will need the HTTP basic credentials you defined earlier within the .env
file.
Be sure to run poetry install -E dev
to get the required dependencies for this.
Usage example
A jupyter notebook showcasing the heating interval scheduler can be found in notebooks/Heating Scheduler.ipynb
. To
access the notebook install jupyter notebook or jupyter lab into the virtual environment and run the notebook:
poetry shell
pip install notebook
jupyter notebook
If running the notebook gives you a ModuleNotFoundError
, you may fix this issue by changing the notebook's kernel (following this StackOverflow post):
poetry shell
python -m ipykernel install --user --name=`basename $VIRTUAL_ENV`
Then switch the kernel in the notebook's top menu under: Kernel > Change Kernel.
Licence
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file iolite_client-0.7.0.tar.gz
.
File metadata
- Download URL: iolite_client-0.7.0.tar.gz
- Upload date:
- Size: 13.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0bf5b662fdcfdf83bdd54f83cafb75c977da90684d2ac7f73f9805f64c8130c9 |
|
MD5 | 09590468d082569211428c046aeb2ee6 |
|
BLAKE2b-256 | fd6cb6cb52e75a6593c17d262cf13b27fc126a1e97e4aa6cd77411652620cf96 |
File details
Details for the file iolite_client-0.7.0-py3-none-any.whl
.
File metadata
- Download URL: iolite_client-0.7.0-py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 77a94fa3f3ff90d861a75352b46993e5865e23c4abb92174796067725df62aa4 |
|
MD5 | f0116d035fa9a4d89a1f3c6d88f24950 |
|
BLAKE2b-256 | fc86409bb080659fc0e6a420436acb1745893ea338207bd22e1408f264935040 |