Very simple library to manipulate the basic parameters of the Haier heat pump.
Project description
PyHaier
Very simple (for now) library to manipulate the basic parameters of the Haier heat pump.
Donation
If you like My work and want to support me, you can:
Or if you from Poland:
Support
For support, join our Discord channel https://discord.gg/7aF38puD
Version
0.1.9
- fix for SetState. Now turning on/off emulate "leaf" button on YR-e27
0.1.8
- fix for previous fix :D
0.1.7
- fix turning on pump in SetState function
0.1.6
- Just for pip upload
0.1.5
- More error handling
0.1.4
- Update in error handling
0.1.3
New function
- Add function to read Compressor frequency
0.1.2
New function:
- Get value of Twi and Two parameters (not 100% sure if this is OK.)
0.1.1
New function:
- Get current DHW tank temperature
0.1.0
Basic function:
- Get current state
- Get current mode
- Get current Heating temperature
- Get current DHW temperature
- Set state
- Set mode
- Set Heating temperature
- Set DHW temperature
Tested with
- AU082FYCRA(HW)
- AU162FYCRA(HW)
However, it should work with all pumps that feature the YR-e27 remote control
Instalation
Install from pip
$ pip install PyHaier
Install from source
$ git clone https://github.com/ktostam/PyHaier.git
$ cd PyHaier
$ python setup.py install
Usage
PyHaier.GetState(payload)
Display current state (Cool/Heat/Tank/Cool+Tank/Heat+Tank/Off).
You need provide payload for GetState function. payload is the contents of holding registers 101-106
PyHaier.GetMode(payload)
Display current Mode (ECO/Silent/Turbo).
You need provide payload for GetMode function. payload is the contents of holding register 201
PyHaier.GetCHTemp(payload)
Display current water temperature with precision 0.5°C
You need provide payload for GetMode function. payload is the contents of holding registers 101-106
PyHaier.GetDHWTemp(payload)
Display current DHW temperature with precision 1°C
You need provide payload for GetMode function. payload is the contents of holding registers 101-106
PyHaier.GetDHWCurTemp(payload)
Display current DHW temperature in Tank with precision 0.1°C
You need provide payload for GetDHWCurTemp function. payload is the contents of holding registers 141-156
PyHaier.GetTwiTwo(payload)
Display Twi and Two parameters with precision 0.1°C, output is an array
You need provide payload for GetTwiTwo function. payload is the contents of holding registers 141-156
PyHaier.SetState(current,new)
Create Modbus frame to set new pump state
You need provide payload for SetState function. payload is the contents of holding registers 101-106
new can be:
off
on
C
for CoolH
for HeatT
for TankCT
for Cool+TankHT
for Heat+Tank
PyHaier.SetMode(new)
Set mode (eco/silent/turbo).
You need provide new for SetMode function. new can be:
eco
silent
turbo
PyHaier.SetCHTemp(current, new)
Set water temperature with precision 0.5°C
You need provide current for SetCHTemp function. current is the contents of holding registers 101-106
new is new temperature with precision 0.5°C
PyHaier.SetDHWTemp(current, new)
Set DHW temperature with precision 1°C
You need provide current for SetDHWTemp function. current is the contents of holding registers 101-106
new is new temperature with precision 1°C
Example script 1
from pymodbus.client.sync import ModbusSerialClient
import PyHaier
# Serial setting
client = ModbusSerialClient(method = "rtu", port="/dev/ttyAMA0", stopbits=1, bytesize=8, parity='E', baudrate=9600)
# connect to serial
client.connect()
#read holding registers from 101 to 106
payload=client.read_holding_registers(101, 6, unit=17)
state=PyHaier.GetState(payload.registers)
htemp=PyHaier.GetCHTemp(payload.registers)
dhwtemp=PyHaier.GetDHWTemp(payload.registers)
payload=client.read_holding_registers(201, 1, unit=17)
mode=PyHaier.GetMode(payload.registers)
client.close()
print("Pump status:\t"+state+"\nPump mode:\t"+mode+"\nWater temp:\t"+str(htemp)+"\nDHW temp:\t"+str(dhwtemp))
Output
$ python script.py
Pump status: Heat+Tank ON
Pump mode: silent
Water temp: 25.0
DHW temp: 43.0
Example script 2
from pymodbus.client.sync import ModbusSerialClient
import PyHaier
# Serial setting
client = ModbusSerialClient(method = "rtu", port="/dev/ttyAMA0", stopbits=1, bytesize=8, parity='E', baudrate=9600)
# connect to serial
client.connect()
#read holding registers from 101 to 106
payload=client.read_holding_registers(101, 6, unit=17)
state=PyHaier.GetState(payload.registers)
print("Current state:\t"+state)
new=PyHaier.SetState(payload.registers,"CT")
client.write_registers(101, new , unit=17)
payload=client.read_holding_registers(101, 6, unit=17)
state=PyHaier.GetState(payload.registers)
print("New state:\t"+state)
client.close()
Output
$ python script.py
Current stete: Heat+Tank ON
New state: Cool+Tank ON
License
GNU GPL ©Jacek Brzozowski
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 PyHaier-0.1.9.tar.gz
.
File metadata
- Download URL: PyHaier-0.1.9.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56522fa1d8c00ebe46a1cce478fa37003074289a047b3744c1b5cc2c8197d12e |
|
MD5 | 08f229fcf17260141820eeca982a3919 |
|
BLAKE2b-256 | 3ee278718601e492d9721a81521d609fa91682c9359a28db0afdf9ffb8886bd5 |
File details
Details for the file PyHaier-0.1.9-py3-none-any.whl
.
File metadata
- Download URL: PyHaier-0.1.9-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ece8b1f799067d80c24a2da89d069d21715679a48a15c74bc1de790577dc96e0 |
|
MD5 | f03395c916ee695b8107be94692cc7ff |
|
BLAKE2b-256 | 130b0685e0fab387dc20f988e0031f41d2c671bbd6e2fc4dd1a0a203278a0ec1 |