110 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| **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
 | |
| [](https://pypi.org/project/pyhOn)
 | |
| [](https://pypi.org/project/pyhOn)
 | |
| [](https://www.python.org/)
 | |
| [](https://github.com/Andre0512/pyhOn/blob/main/LICENSE)
 | |
| [](https://pypistats.org/packages/pyhon)  
 | |
| Control your Haier, Candy and Hoover appliances with python!
 | |
| The idea behind this library is, to make the use of all available commands as simple as possible.
 | |
| 
 | |
| ## Installation
 | |
| ```bash
 | |
| pip install pyhOn
 | |
| ```
 | |
| 
 | |
| ### Quick overview
 | |
| 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.
 | |
| ```commandline
 | |
| $ pyhOn --user example@mail.com --password pass123
 | |
| ========== WM - Waschmaschine ==========
 | |
| data:
 | |
|   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
 | |
|       ...
 | |
| ```
 | |
| 
 | |
| ## Python-API
 | |
| ### List devices
 | |
| ```python
 | |
| import asyncio
 | |
| from pyhon import Hon
 | |
| 
 | |
| async def devices_example():
 | |
|     async with Hon(USER, PASSWORD) as hon:
 | |
|         for appliance in hon.appliances:
 | |
|             print(appliance.nick_name)
 | |
| 
 | |
| asyncio.run(devices_example())
 | |
| ```
 | |
| 
 | |
| ### Execute a command
 | |
| ```python
 | |
| async with Hon(USER, PASSWORD) as hon:
 | |
|     washing_machine = hon.appliances[0]
 | |
|     pause_command = washing_machine.commands["pauseProgram"]
 | |
|     await pause_command.send()
 | |
| ```
 | |
| 
 | |
| ### Set command parameter
 | |
| ```python
 | |
| async with Hon(USER, PASSWORD) as hon:
 | |
|     washing_machine = hon.appliances[0]
 | |
|     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
 | |
| ```
 | |
| 
 | |
| ## 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
 | |
| ```
 | |
| 
 | |
| ## Usage example
 | |
| This library is used for the custom [HomeAssistant Integration "Haier hOn"](https://github.com/Andre0512/hOn).
 | |
| 
 | |
| ## Contribution
 | |
| Any kind of contribution is welcome!
 | |
| 
 |