/HaierPi

initial

Primary LanguageHTML

HaierPi

AGPL License

This project allows you to control HAIER heat pumps.

Tested with

  1. AU082FYCRA(HW)
  2. AU162FYCRA(HW)

All tests were performed on a pump with an additional ATW-a01 unit

However, it should work with all pumps that feature the YR-e27 remote control

If you have any question you can find me on discord:

Discord Banner 2

Patrons

  • Radek Michalowski

Contributors

  • @kocur on discord channel
  • @Radek on discord channel

Donation

If you like My work and want to support my work, you can:

Or if you from Poland:

HARDWARE

PCB

PCB layout is designed for both RaspberryPi zeroW and NanoPi neo 1.4.

Front

Front

PCB 1.1

The revised version of the PCB (1.1) no longer has mislabeling. In addition, one of the leds and the button is now also connected to the RPi.

In the future, HaierPi will support only NanoPi

Component List

Symbol Value Footprint
J1 ADC-002 ADC-002
H3-H4 JST XH 3 JST-XH-TH-3-2.5
POMPA,YR-E27 JST XH 4 JST-XH-TH-4-2.5
CON1-CON3 DG308-2.54/2
R1-R4 1K SMD 0805
R5-R8,R10-R12 4.7K SMD 0805
R9 120 SMD 0805
R13-R15 0 SMD 0805
R16-R17 330 SMD 0805
C1 104 SMD 0805
LED1 RED SMD 0805
LED2 GREEN SMD 0805
D1-D4 1N4007W SOD-123
D5-D7 SMAJ12CA DO214AC
REL1 N4078-2C-5V-0.2W N4078-2C-5V-0.2W
REL2-REL4 HFD23-005-1ZS HFD23-005-1ZS
U1 MAX3485 SOP-8

ERRATA

In the first batch of PCB's was error PCB descriptions of R1 and R2 are swapped places, so if you have that PCB, you need to solder 1K resistor on R6 and 4.7 on R1

Disclaimer

  • R9 is RS485 EOL resistor. For this application don't solder it.
  • Resistor R14-R15 is for choosing what type to board you want to connect (Raspberrypi/NanoPi Neo). For NanoPi, solder 0 Ohm resistor for powering NanoPi via GPIO. If you connect Raspberry Pi don't solder it, because powering RPi from GPIO bypasses builtin protections. I will be work but its not safe. If you connecting Raspberry Pi zero W, connect J2(GND) to PP6 pad, and J3(+5V) to PP1 pad.

Raspberry Pi

if you want to use the script on the raspberry pi, you need to add the following settings to config.txt:

dtoverlay=w1-gpio,gpiopin=4
dtoverlay=pi3-disable-bt
enable_uart=1

Be aware that this settings will disable bluetooth. but we need use UART0

Nano Pi neo 1.4

Script is also tested on NanoPi neo 1.4. For now no change is required, but in future, when support for hardware temperature sensor will be added, we need to remap some GPIO pins. Further information will be added later.

Other platform

script needs a relay to control the data flow in order to function properly, so best choice is some sort of SBC. At the moment there are no plans to add support for other SBCs, but maybe in future I will add support for relays controlled by Home Assistant, so script may running on any platform, and only need a RS485 connection.

Wiki

Now the documentation is on the wiki (only in polish for now) wiki

Translation

  • en
  • pl

if you want to help create a translation into another language write me an email or on the discord channel

Version

1.37

  • Add charts with some parameters
  • DHW without limit function run in turbo mode
  • Add estimated daily energy consumption, separate for central heating and domestic hot water

1.35

  • Add MQTT Discovery (by Radek)
  • Add more option for heatingcurve
  • Add Anti ON-OFF function
  • Add DHW without limit function
  • Add Parameters page
  • Add Temperature Charts
  • Minor fixes

1.32

  • Add parameters
  • Add scheduler for CH and DHW
  • Add translation to polish
  • Now changes to settings do not require a restart of the service
  • New update script, from now all new update dont need to manualy add option in config.ini.
  • Minor fixes

1.31

  • Add function for automatic/manual control of frequency limit relay
  • Add function for automatic/manual control of mode quiet/eco/turbo
  • IMPORTANT: new option added in config.ini. If you're updating from previous version you need to add options: log_leve = ERROR in [DEFAULT] block in config.ini flimit = manual, flimit_temp = 10, presetautochange = manual,presetquiet = 10,presetturbo = -10 in [SETTINGS] block in config.ini
  • minor fixes

1.30

  • Add possibility to change heating curve parameters via settings page.
  • IMPORTANT: new option added in config.ini. If you're updating from previous version you need to add option hcslope = 0.7, hcpshift = 1 and hcamp = 1 in [SETTINGS] block in config.ini
  • Add chart with heating curve visualisation.
  • minor fixes

1.26

  • IMPORTANT: new option added in config.ini. If you're updating from previous version you need to add option firstrun = 0 in [DEFAULT] block in config.ini
  • Setting page is kinda ready. (unfortunetly you need to manualy restart HaierPi service after saving change for now)
  • Added new service for display HaierPi logs via web, for better debugging. Now you don't need to login via ssh
  • Now script can talk with home assistant via MQTT (for now there is no mqtt autodiscovery, so you need to add yaml configuration manualy).
  • Updates only send via mqtt if something is changes, not as before - everything every 10 seconds
  • TODO: add option somewhere to restart HaierPi service. (e.g. after config.ini changed via web)
  • Minor fixes

1.18

  • Add ds18b20 sensor support as outside temp sensor.
  • Fixed error handling that could cause sysexit.
  • Adding new update mechanism need to add new option in config.ini:
    release=master
  • Minor fixes

1.1

In this release I change library to control GPIO, Iam not using RPi.GPIO anymore, there is some issue with RPi.GPIO replacement for Nano Pi, so I decided to control GPIO via system /sys/class/gpio/. This is independent from used SBC,

in config.ini there is new configuration for PIN:

[GPIO]
modbus=17 #17 for raspberrypi, 0 for nanopi neo
freqlimit=27 #27 for raspberrypi, 2 for nanopi neo
heatdemand=22 #22 for raspberrypi, 3 for nanopi neo
cooldemand=10 #10 for raspberrypi, 64 for nanopi neo

1.0

First release. for now, the following features are available:

  • Show pump parameters
  • Set DHW temperature
  • Set Central Heating Temperature
  • Heating water temperature is calculated according to the heating curve
  • Online update

disclaimer:

In this release inside and outside temperature must be provided by Home Assistant sensors. For future release hardware sensor will be supported (ds18b20 for outside and DHT22 for inside temperature).

In this release, MQTT support is not finished

LICENSE

GNU Affero General Public License v3 ©Jacek Brzozowski

In this project I'am using: open-meteo - CC BY 4.0

jquery-schedule - MIT License

sweetalert2 - MIT License

bootstrap - MIT License

jquery - MIT License