1. Home
  2. Docs
  3. H60/H66 Gateway Manual
  4. For Advanced users
  5. H1 development guide (Only for H60)

H1 development guide (Only for H60)

Intro

The following information is targeted developers that want to build their own ESP firmware for the H60, not H66. Here you get an understanding on how to communicate with heat pumps through the H1 sub processor CLI.

This information could be somewhat un-updated and obsolete but is of great help to get started.

Overview of solution

The H1 interface bridges the often complex communication methods with heat pump controllers and provides access through a simple standard interface over RS-232.

The serial interfacing is the same even if connected to different heat pump models.

For example, reading the radiator return temperature or setting the room temp will use the same method on IVT, Bosch, NIBE, Thermia heat pumps and their different models.

The H1 gateway technology is today integrated in to various solutions from Husdata and partner integrator. Example are the Raspberry pi interface and the H60 Wifi heat pump gateway.

Features summary

  • RS-232 interface.
  • H1 provides a generic platform to communicate with different heat pumps using the same standard protocol and parameters.
  • H1 provides a secure and convenient way to read and write information with heat pump controllers.
  • H1 is provided in different hardware configuration, supporting the majority of all popular heat pump models.
  • Has bootloader, Firmware up-gradable via the serial interface.
  • A LED indicator shows status and enables for troubleshooting.
  • Easy clear text based protocol in clear text manageable directly from serial terminal

 

H1-Protocol interface type (standard)

 

Serial interface specifications

Interface:      RS-232 or USB(serial)
Baud rate:     19200
Bits:              8
Stop bits:       1
Flow control none
Protocol:       H1-Proprietary as described in this manual.

 

Communication structure

All communication is made in plain text and all numbers are in hexadecimal format. Tests of communications can be managed from standard terminal software, such as Putty.

Data received from the interface has a two letter command structure + data and always end with chr 13 + chr 10 (Carriage Return + New Line, \r\n).

The command sent to the interface is always two capital letters followed by optional data and an ending (cr).

When powering up the interface (getting power from the heat pump) it first displays copyright information like below, followed by version information. This information is also shown at reset. You can manually reset the interface by sending the letter “!”.

(C)2013-2022 Arandis AB, Pitea Sweden.
http://www.husdata.se
XV402228

The version information start with XV followed by three hexadecimal bytes.

  1. Firmware/Interface variant for different heat pump types, example..
    Rego600,  Rego400, Rego80, Rego1000, NIBE EB100, NIBE Styr2002,
    Thermia Diplomat, Thermia Villa.
  2. Version
  3. Revision

 

After this message is displayed, the communication with the heat pump will initialize. It can take up to 30 seconds depending on heat pump model.

The registers on the heat pump is then automatically acquired by the interface and will be output continuously via the serial interface. After all registers are read once, the interface will only output data if something changes. For example if a temperature is changed on a sensor, it will output the new value.

If all values need to be refreshed the Re-sync command can be called by the command XR.

 

Registers

The interface firmware has a common set of pre-programmed heat pump registers to be read and written to. 

Available registers can be listed using the XL command.

The register data format is a 2 byte number, ex 0101. The leftmost number (4 bits) representing the data type and the rest is the actual index number. For example on 0001, the left 0 indicating that this is a temperature. 001 indicating the Radiator return sensor index number. And likewise 1A01, 1 is indicating that this is a bool on/off device. and A01 indicating index for the Compressor.

List of data types

No

Unit / Data type

Additional info

0

Degrees

Divide by 10

1

On/off bool

0 or 1

2

Number

Divide by 10

3

Percent

Divide by 10

4

Ampere

Divide by 10

5

kWh

Divide by 10

6

Hours

As is

7

Minutes

As is

8

Degree minutes

As is

9

kw

As is

     

 

The interface is continuously syncing with the Common registers and will output any change. A Common register consists of sensor information, status of devices (compressor, pumps, valves), a few standard settings and a some other controller parameter such as Degree minutes. The Common registers has a common structure and id’s for all heat pump models.

With the “XL” command will get a list of all available registers for to connected heat pump and with the “XP” command you have the option to turn on clear text register names and values shown in decimal. This feature is convenient for test and debug.

Some HP-Specific registers can be read and output if the “XS” command is sent. These registers are unique for every heat pump model. You can set/write to some of the HP-Specific registers using the “XW” command. 

 

Example of register data output from the interface and how to interpret

XR00010106(cr)        0x0001=reg Radiator return of temp type (0)
                      0x0106=data (0x01*256)+0x06 = 262 = 26.2 deg C

XR00030198(cr)        0x0003=reg Heat carrier return of temp type (0)
                      0x0198=data (0x01*256)+0x98 = 408 = 40.8 deg C

XR0006FFE6(cr)        0x0001=reg Cold carrier out of temp type (0)
                      0xFFE6 and 0x8000 = true (left most bit set=negative)
                      0xFFE6=data ((0xFF*256)+0xE9)-65536 = -2.3 deg C

XR1A040001(cr)        0x1A04=reg Radiator return of on/off type (1)
                      0x0001=data ON

 

 

Example of data output from the interface with clear text output turned on (XP)

XR000200ED   002 Radiator Forward (23.7c)
XR0003018A   003 Heat carrier Return (39.4c)
XR000400E9   004 Heat carrier Forwrd (23.3c)
XR00050075   005 Brine in/Evaporator (11.7c)
XR00060057   006 Brine out/Condenser (8.7c)
XR0007FF6A   007 Outdoor (-15.0c)
XR0008DEAD   008 Indoor (-853.1c)
XR000901D3   009 Hot water 1 / Top (46.7c)
XR000B024A   00B Hot gas / Compr. (58.6c)
XR000E0000   00E Air intake (0.0c)
XR002000D9   020 Radiator Forward 2 (21.7c)
XR00210000   021 Indoor 2 (0.0c)
XR1A010001   A01 Compressor (1.0 )
XR1A040001   A04 Pump Cold circuit (1.0 )
XR1A050001   A05 Pump Heat circuit (1.0 )
XR1A060001   A06 Pump Radiator (1.0 )
XR1A070000   A07 Switch valve 1 (0.0 )
XR1A090000   A09 Fan (0.0 )
XR1A0A0001   A0A High Pressostat (1.0 )
XR1A0B0001   A0B Low Pressostat (1.0 )
XR1A0C0000   A0C Heating cable (0.0 )
XR1A0D0000   A0D Crank case heater (0.0 )
XR1A200000   A20 Alarm (0.0 )

 

 

Commands for the H1 Interface.

Data TO interface

Command

Function

Example / Returns

!

Reset

! (cr)

XV

Request version number

XV010304(cr)

XR

Request re-read and dump of Real-time registers

XR(cr)

XS

Request read and dump of heat pump specific registers

XS(cr)

XWrrrrdddd

Set a register value on HP. rrrr=register, dddd=data.

XW010600AA(cr)

XW01(ok)

XL

Request list of register names

XL(cr)

XP

Toggle clear text register names print out

XP(cr)

Warmwater (35.2c)

XM

Enable auto refresh of all registers every second minute. default=off

 

XA

Disable register monitoring and update at change. Default=enabled.

 

XO

Enable register monitoring and update at change. Default=enabled.

 

XU

Enable simulator mode. Will output random data every second.

Only available on rego600 firmware.

XH

Enable Rego 2-3000 statistical registers

 

RP1, RP0

Enable/disable Can bus activity printout

Only rego800/1000

 

 

 

SA

Toggle OFF/ON to printout collected pulses every 10 sec. Default=on

 

SP

Print out collected pulses and reset counter.

 

SS

Set S0 port 1 to Input port instead to detect an on/off state.

 

WE

Scan for 1-wire temp sensors and return all ID’s

 

WR

Read all 1-wire temp sensors and dump result. 

 

XBxx

Read alarm logs XB=Last log, XB05 = 5 last logs, etc. Max 20.

Support only for Rego 600 and Rego2000.

XB010E0B1B0D3130

Or

XB1540 (R2000)

See below for desc.

XF

List Max/Min values for settable registers

 

XE

Enable terminal ECHO

 

 

Data format FROM interface

Input

Description

Usage Example

XRrrrrdddd(cr)

Receive new data from a register. rrrr= Reg ID, dddd=data.

 

XV040304

Interface version

 

 

 

 

WRxxxxxxxxpptt(cr)  

Return DS temp: x=8 bytes DS-ID, pp=00=+ FF=-

 

XE002

Info. Rego1000 interface was moved to other Rego version, re-synchronizing.

 

XE005

Can bus communication error, Check cables (Rego 800/1000 only)

 

XE006

Fatal error identifying Rego1000 version. Contact Husdata.se

 

XE007

Unsupported Rego800 version detected, switching to compatibility mode.

 

XI024

NIBE EB100 detected comm alarm, will be reset in 10 minutes

 

XI025

NIBE EB100 alarm has been reset

 

XB010E0B1B0D3130

 

XB 01 0E0B1B 0D3130

01 = Alarm Code

Next part is date YYMMDD

Last part is Time HHMMSS

Rego 600 only

 

For Rego 600 Only

XB1540

XB1541

XB1542

 

XB 1540

1540 = alarmcode

1540h= 5440 HP Alarm

Command XB always answers with 3 rows of alarmcodes. 0000= no alarm.

 

For Rego 2000 Only

 

 

Supported heat pump models

Type

Heat pump models

Technical

00

IVT Greenline / Optima 900

Rego 600 Serial

05

IVT 490

Rego 400 Serial

35

IVT Premiumline X, Optima/290-AW

Rego 800, Can bus

30

IVT Greenline HE/HC/HA+Prem HQ/EQ

Rego 1000, Can bus

40

NIBE xx45

EB100, RS-485

50

NIBE Fighter series

Styr 2002, RS-485

60

Thermia Diplomat series

901510, i2c

65

Thermia Genesis

Genesis RS-485

10

IVT AirX, Geo series, Vent202, etc

Rego 2000, 3000 EMS

 

How can we help?