pyhOn/README.md

124 lines
5.1 KiB
Markdown
Raw Normal View History

2024-01-15 09:36:18 +00:00
# Announcement: I have to take the project down in the next few days
> Dear User,
>
> We are writing to inform you that we have discovered two Home Assistant integration plug-ins developed by you ( https://github.com/Andre0512/hon and https://github.com/Andre0512/pyhOn ) that are in violation of our terms of service. Specifically, the plug-ins are using our services in an unauthorized manner which is causing significant economic harm to our Company.
> We take the protection of our intellectual property very seriously and demand that you immediately cease and desist all illegal activities related to the development and distribution of these plug-ins. We also request that you remove the plug-ins from all stores and code hosting platforms where they are currently available.
> Please be advised that we will take all necessary legal action to protect our interests if you fail to comply with this notice. We reserve the right to pursue all available remedies, including but not limited to monetary damages, injunctive relief, and attorney's fees.
> We strongly urge you to take immediate action to rectify this situation and avoid any further legal action. If you have any questions or concerns, please do not hesitate to contact us.
>
> Haier Europe Security and Governance Department
2023-03-04 20:27:10 +00:00
**This python package is unofficial and is not related in any way to Haier. It was developed by reversed engineered requests and can stop working at anytime!**
# pyhOn
2023-03-04 21:38:43 +00:00
[![PyPI - Status](https://img.shields.io/pypi/status/pyhOn)](https://pypi.org/project/pyhOn)
[![PyPI](https://img.shields.io/pypi/v/pyhOn?color=blue)](https://pypi.org/project/pyhOn)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pyhOn)](https://www.python.org/)
2023-03-06 17:57:08 +00:00
[![PyPI - License](https://img.shields.io/pypi/l/pyhOn)](https://github.com/Andre0512/pyhOn/blob/main/LICENSE)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/pyhOn)](https://pypistats.org/packages/pyhon)
2023-04-15 20:25:34 +00:00
Control your Haier, Candy and Hoover appliances with python!
2023-03-04 21:19:48 +00:00
The idea behind this library is, to make the use of all available commands as simple as possible.
2023-03-04 21:38:43 +00:00
## Installation
```bash
pip install pyhOn
```
2023-03-04 20:27:10 +00:00
### Quick overview
2023-03-04 21:38:43 +00:00
To get an idea of what is possible, use the commandline-tool `pyhOn`. This command requests all available options of connected appliances from the hOn api of your Haier Account.
2023-03-04 20:27:10 +00:00
```commandline
$ pyhOn --user example@mail.com --password pass123
2023-03-05 17:46:51 +00:00
========== WM - Waschmaschine ==========
2023-03-04 20:27:10 +00:00
data:
2023-03-07 23:58:25 +00:00
attributes:
parameters:
...
texture: 1
totalElectricityUsed: 28.71
totalWashCycle: 35
totalWaterUsed: 2494
transMode: 0
...
settings:
startProgram:
rinseIterations:
max: 5
min: 3
step: 1
spinSpeed:
- 0
- 400
- 600
- 800
...
2023-03-04 20:27:10 +00:00
```
## Python-API
### List devices
```python
import asyncio
2023-04-09 21:47:33 +00:00
from pyhon import Hon
2023-03-04 20:27:10 +00:00
async def devices_example():
2023-04-09 21:47:33 +00:00
async with Hon(USER, PASSWORD) as hon:
for appliance in hon.appliances:
print(appliance.nick_name)
2023-03-04 20:27:10 +00:00
asyncio.run(devices_example())
```
### Execute a command
```python
2023-04-09 21:47:33 +00:00
async with Hon(USER, PASSWORD) as hon:
washing_machine = hon.appliances[0]
2023-03-04 20:27:10 +00:00
pause_command = washing_machine.commands["pauseProgram"]
await pause_command.send()
```
2023-03-04 21:19:48 +00:00
### Set command parameter
```python
2023-04-09 21:47:33 +00:00
async with Hon(USER, PASSWORD) as hon:
washing_machine = hon.appliances[0]
2023-03-04 21:19:48 +00:00
start_command = washing_machine.commands["startProgram"]
for name, setting in start_command.settings:
print("Setting", name)
print("Current value", setting.value)
if setting.typology == "enum":
print("Available values", setting.values)
setting.value = setting.values[0]
elif setting.typology == "range":
print("Min value", setting.min)
print("Max value", setting.max)
print("Step value", setting.step)
setting.value = setting.min + setting.step
```
2023-03-21 00:10:41 +00:00
## Translation
To get the translation of some keys like programs, you can use the translation command to see all of hOn's available translations
```commandline
$ pyhOn translate es
AC:
APPLIANCE_RENAME:
CONTENT_CHOOSE_NAME: Antes de continuar, debes elegir un nombre...
DEFAULT_NAME: Aire acondicionado
TITLE_CHOOSE_NAME: ¡Elije un nombre para tu aire acondicionado!
TITLE_SAVE_NAME: Para cambiar el nombre de tu aparato:
...
```
This generates a huge output. It is recommended to pipe this into a file
```commandline
$ pyhOn translate fr > hon_fr.yaml
$ pyhOn translate en --json > hon_en.json
```
2023-03-04 21:19:48 +00:00
## Usage example
This library is used for the custom [HomeAssistant Integration "Haier hOn"](https://github.com/Andre0512/hOn).
2023-03-05 17:46:51 +00:00
## Contribution
Any kind of contribution is welcome!
2023-06-25 15:49:03 +00:00
| Please add your appliances data to our [hon-test-data collection](https://github.com/Andre0512/hon-test-data). <br/>This helps us to develop new features and not to break compatibility in newer versions. |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|