More documentation

This commit is contained in:
Andre Basche 2023-03-04 22:19:48 +01:00
parent 993a4c1d79
commit 326b5edcff
4 changed files with 46 additions and 3 deletions

View file

@ -2,8 +2,9 @@
# pyhOn # pyhOn
Control your Haier appliances with python! Control your Haier appliances with python!
The idea behind this library is, to make the use of all available commands as simple as possible.
### Quick overview ### Quick overview
To see the available options of the appliances from your Haier Account, use the commandline-tool `pyhOn` To get an idea of what is possible, use the commandline-tool `pyhOn`. This lists all available options of the appliances from your Haier Account.
```commandline ```commandline
$ pyhOn --user example@mail.com --password pass123 $ pyhOn --user example@mail.com --password pass123
========== Waschmaschine ========== ========== Waschmaschine ==========
@ -19,6 +20,7 @@ data:
antiAllergyStatus: 0 antiAllergyStatus: 0
... ...
``` ```
The claim is, to see everything what you can see in your hOn app and to execute everything you can execute there.
## Python-API ## Python-API
### List devices ### List devices
@ -37,7 +39,35 @@ asyncio.run(devices_example())
### Execute a command ### Execute a command
```python ```python
async with HonConnection(USER, PASSWORD) as hon: async with HonConnection(USER, PASSWORD) as hon:
washing_machine = hon[0] washing_machine = hon.devices[0]
pause_command = washing_machine.commands["pauseProgram"] pause_command = washing_machine.commands["pauseProgram"]
await pause_command.send() await pause_command.send()
``` ```
### Set command parameter
Use `device.settings` to get all variable parameters.
Use `device.parmeters` to get also fixed parameters.
```python
async with HonConnection(USER, PASSWORD) as hon:
washing_machine = hon.devices[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
```
## Tested devices
- Haier Washing Machine HW90
_Unfortunately I don't have any more haier appliances_
## Usage example
This library is used for the custom [HomeAssistant Integration "Haier hOn"](https://github.com/Andre0512/hOn).

View file

@ -69,5 +69,6 @@ class HonCommand:
@property @property
def settings(self): def settings(self):
"""Parameters with typology enum and range"""
return {s: self._parameters[s] for s in self.setting_keys} return {s: self._parameters[s] for s in self.setting_keys}

View file

@ -14,6 +14,18 @@ class HonParameter:
def value(self): def value(self):
return self._value if self._value is not None else "0" return self._value if self._value is not None else "0"
@property
def category(self):
return self._category
@property
def typology(self):
return self._typology
@property
def mandatory(self):
return self._mandatory
class HonParameterFixed(HonParameter): class HonParameterFixed(HonParameter):
def __init__(self, key, attributes): def __init__(self, key, attributes):

View file

@ -7,7 +7,7 @@ with open("README.md", "r") as f:
setup( setup(
name="pyhOn", name="pyhOn",
version="0.2.0", version="0.2.1",
author="Andre Basche", author="Andre Basche",
description="Control hOn devices with python", description="Control hOn devices with python",
long_description=long_description, long_description=long_description,