Honeywell CH/DHW via RF - evohome, sundial, hometronics, chronotherm

And to reassure people, development continues, this is a new packet code:

21:58:47.229 || HGI:013393 | CTL:145038 | RQ | zone_type | 0000     || {'zone_type': 'configured_zones'}
21:58:47.256 || CTL:145038 | HGI:013393 | RP | zone_type | 0000F... || {'zone_mask': [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'zone_type': 'configured_zones'}
21:58:47.289 || HGI:013393 | CTL:145038 | RQ | zone_type | 0008     || {'zone_type': 'radiator_valve'}
21:58:47.302 || CTL:145038 | HGI:013393 | RP | zone_type | 00088... || {'zone_mask': [0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1], 'zone_type': 'radiator_valve'}
21:58:47.339 || HGI:013393 | CTL:145038 | RQ | zone_type | 0009     || {'zone_type': 'ufh_controller'}
21:58:47.353 || CTL:145038 | HGI:013393 | RP | zone_type | 00094... || {'zone_mask': [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], 'zone_type': 'ufh_controller'}
21:58:47.390 || HGI:013393 | CTL:145038 | RQ | zone_type | 000A     || {'zone_type': 'zone_valve'}
21:58:47.404 || CTL:145038 | HGI:013393 | RP | zone_type | 000A2... || {'zone_mask': [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0], 'zone_type': 'zone_valve'}
21:58:47.441 || HGI:013393 | CTL:145038 | RQ | zone_type | 000B     || {'zone_type': 'mixing_valve'}
21:58:47.455 || CTL:145038 | HGI:013393 | RP | zone_type | 000B1... || {'zone_mask': [0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0], 'zone_type': 'mixing_valve'}
21:58:47.492 || HGI:013393 | CTL:145038 | RQ | zone_type | 0011     || {'zone_type': 'electric_heat'}
21:58:47.506 || CTL:145038 | HGI:013393 | RP | zone_type | 00110... || {'zone_mask': [0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0], 'zone_type': 'electric_heat'}

The controller will tell you the type of each zone - working out this information (by simple eavesdropping normal traffic) is possible, but slow/painful otherwise. (edited)

Thanks @Drocona
This installation worked fine for me (newby on linux).
The driver is working now the next step installing the evohome_rf and evohome_cc

Could you post your solution here, and I’ll copy it up to git too.

I followed the instruction in post 211.

Great - can I check if you use HA as a venv (HA Core) on Linux on a Pi, or the HA (HA OS) image for a Pi (i.e. you can use HA add-ons).

I have installed HA Core in a venv on Raspbian OS.

@zxdavb
I still have some issues and questions

  1. Is there a working version of evohome & HGI80 allready?
  2. Can I help to test or make logs?
  3. I have installed evohome_rf as described on github

pip install evohome
it installed ok but where can I find this installation

  1. When I see the evohome_cc installation instructions
    git clone https://github.com/zxdavb/evohome_cc evohome_rf
    Do I clone the repository in the /home/pi/evohome_rf directory?
    I have allready cloned the evohome_rf repository there.

There is a working version of evohome_cc (a custom component fro HA) that utilizes evohome_rf (the code that uses a serial port to talk to a HGI80, or similar).

Currently, evohome_cc includes setpoints, temps, battery levels, and heat_demand only. The latest version of evohome_rf includes DHW/zones, and setting modes, schedules, and fault logs - I am planning to get a new evohome_cc up before this winter.

I expect that evohome__cc will be good enough this winter to poach users from Domoticz!

The process to get evohome_rf working with HA is:
a) get the HGI80 working, check via: tail -f /dev/ttyUSB0
b) install HA & get it running - the HassOS image won’t work for a HGI80 because you can’t load the driver, but it will be OK for a evofw3-compatible device
c) install the master branch of https://github.com/zxdavb/evohome_cc as a custom_component & edit configuration.yaml - this will automatically download/install evohome_rf from PyPi
d) enjoy!

There is some more detail of the above elsewhere in this thread. Someone could really help us by tidying up these instructions and putting them here: https://github.com/zxdavb/evohome_cc/wiki

I love getting logs, especially if you have something unusual (or your neighbors do).

In particular, if you’ve got a) & b) working, I would appreciate you try running this: https://github.com/zxdavb/evohome_rf/tree/bleeding_edge

and sending me the logs - it includes a CLI, and runs outside HA.

1 Like

I have tweaked this a little: https://github.com/zxdavb/evohome_rf/blob/bleeding_edge/README.md

Installation

git clone https://github.com/zxdavb/evohome_rf
cd evohome_rf
pip install -r requirements.txt

You may want to clean up/create a virtual environment somewhere along the way, something like:

deactivate
rm -rf venv
python -m venv venv
. venv/bin/activate
pip install --upgrade pip

Instructions

python client.py monitor /dev/ttyUSB0 

Be sure to have a look at -o packet_log.out and -p (probe).

@scstraus Could you post your evohome section of configuration.yaml?

evohome:

  username: !secret my_email
  password: !secret hass_pass
  location_idx: 0
  scan_interval: 360 

    
evohome_rf: 
  serial_port: /dev/ttyUSB0
  packet_log: /share/packets.log

I can not get the evohome_cc component working.

I have the evohome_rf working. I even produced some logs for zxdavb David Bonnes.
I installed the evohome_cc as instructed in the installation descripttion on github.
After restarting HA I see no Integrations or Devices added.
Can any one tell me what I have missed?

I installed HA Core on a raspberry pi 3b

Part of configuration.yaml

evohome_rf:
  serial_port: /dev/ttyUSB0
  packet_log: /home/homeassistant/evohome/packets.log

logger:
  logs:
    homeassistant.components.evohome_rf: debug
    evohome: debug

I found it:) I now have new Entities with temp, demand, window and battery.

Wow, this is such a great project! I have just flashed and configured my nanoCUL, and it works seamlessly!

I have one question though. I have multiple round thermostats and an evohome smart controller. So far only the round thermostats have been reporting to the HA. Is this an expected behaviour? Could it be fixed somehow?

Aurél

@lustasag The latest version of evohome_rf (the code that talks directly to the HGI80/nanoCUL) has been completely re-written:

  • current version: essentially devices only: sensors, actuators, battery levels, heat demand, temperatures, etc. (from this point of view, the controller could be a zone sensor, but it does not broadcast this data)
  • new version: added zones (e.g. setting overrides, pulling schedules), DHW, and system (e.g. setting modes, pullling fault logs)

I have just switched from developing evohome_rf to evohome_cc, which is the HA custom component - watch this space.

@lustasag I don’t know how you got on, but is there any chance you could send me 24h of logs?

If you haven’t gotten it to work - I am working on the new HA custom_component, and it should be available shortly.

I haven’t progressed on it, but I’m very keen. How do I obtain/install the completed evohome_rf? I’m running HA on a RP and HassOS. Just dumped the image onto an sdcard to get it up and running.

Sorry, I have chosen not to support people with the old custom component - all my energies are directed towards releasing a new one using the latest evohome_rf client library. Maybe someone else can help?

When I have a new working evohom_cc, I will post it here. Until then, there is either:

  • the existing custom component, or
  • the latest evohome_rf client (python client.py monitor \dev\ttyUSB0)

Here is a sneak preview - if you have a HGI80, it takes 2-3 seconds to get this information from a evohome controller (assuming you know its address). This is the schema - which zones, which devices per zone (DHW is treated as a zone):

{
	"controller": "01:145038",
	"01:145038": {
		"boiler_control": "13:163733",
		"stored_hotwater": {
			"hotwater_sensor": "07:045960",
			"hotwater_valve": "13:081807",
			"heating_valve": "13:106039"
		},
		"zones": {
			"01": {
				"heating_type": "radiator_valve",
				"temp_sensor": "04:189082",
				"devices": [
					"04:189078",
					"04:056053",
					"04:189082"
				]
			},
			"02": {
				"heating_type": "radiator_valve",
				"temp_sensor": "04:056057",
				"devices": [
					"04:056057"
				]
			},
			"03": {
				"heating_type": "electric_heat",
				"temp_sensor": "03:183434",
				"devices": [
					"03:183434"
				]
			},
			"04": {
				"heating_type": "zone_valve",
				"temp_sensor": "12:010740",
				"devices": [
					"12:010740"
				]
			},
			"05": {
				"heating_type": "underfloor_heating",
				"temp_sensor": "34:092243",
				"devices": [
					"34:092243"
				]
			},
			"06": {
				"heating_type": "mixing_valve",
				"temp_sensor": null,
				"devices": []
			},
			"07": {
				"heating_type": "mixing_valve",
				"temp_sensor": null,
				"devices": []
			},
			"08": {
				"heating_type": "underfloor_heating",
				"temp_sensor": null,
				"devices": []
			},
			"09": {
				"heating_type": "electric_heat",
				"temp_sensor": null,
				"devices": []
			},
			"0B": {
				"heating_type": "zone_valve",
				"temp_sensor": null,
				"devices": []
			}
		},
		"ufh_controllers": [],
		"orphans": [
			"01:145038",
			"13:163733"
		]
	},
	"30:082155": {
		"boiler_control": null,
		"stored_hotwater": null,
		"zones": {},
		"ufh_controllers": [],
		"orphans": [
			"30:082155",
			"32:168090"
		]
	},
	"orphans": [
		"12:227486",
		"12:249582",
		"13:171587"
	]
}
1 Like

Hi, sorry for being a noob :slight_smile: I just pulled the bleeding_edge branch to my HA, and inside the HA docker image I started client.py monitor. I can confirm that it picks up all temperatures, including the evotouch!

Yet, I’m very confused by the relation between evohome_rf and evohome_cc. I gathered that evohome_rf was part of the standard HA image, and the evohome_cc is the installable custom_component. How is it exactly?

What I call evohome_cc is sometimes called evohome_rf by HA.

evohome_cc is the HA custom component (it sits between HA & evohome_rf)

evohome_rf is the protocol decoder (it sits between evohome_cc and the serial port to which the HGI*), or comptable is connected)

evohome_cc (which HA may call evohome_rf) automatically installs evohome_rf from the PyPi repo.

Step 1: copy evohome_cc to you custom_components folder, say custom_components\evohome_rf
Step 2: configure configuration.yaml:

evohome_rf:
  serial_port: ....
  packet_log: ...

If instead, you copy evohome_cc to custom_components\evohome_cc, then:

evohome_cc:
  serial_port: ....
  packet_log: ...

hey,
before i start on this path, will this work with the following

if so, what would the serial port be?

Honeywell Home THR99C3112 EVO Home Starter Kit with 2 x TRV Heads, White

i have this evo home kit, with 12 TRV and the Hotwater system