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

ser2net is not officially supported- it will mess with the subtleties of timings - you would expect more re-transmits.

This is the ser2net.yaml I use when I am inclined:

# HGI80-like ser2net connection that allows multiple connections
connection: &con00
  accepter: telnet(rfc2217),tcp,5001
  timeout: 0
  connector: serialdev,/dev/ttyUSB0,115200n81,local
  options:
    max-connections: 3

This is the corresponding configuration.yaml:

evohome_cc:
  serial_port:
    port_name: rfc2217://localhost:5001
1 Like

@zxdavb I use a similar ser2net config.
Just wondering why the timeout 0?

By the way if anyone has the problem that ser2net is not ready for connections after a reboot on a rpi.
That is because it is starting before the network stack and cannot create the socket therefore.
I managed to fix that, Iā€™ll try to post the fix I did tomorrow.

On another note: the nanocul with external antenna came in and the average rssiā€™s dropped by 10 points with out tuning. After tuning they improved even a little more.
So Iā€™m happy for now.

Next up experimenting with the bluetooth temperature sensor linked to a fake evohome sensor.
But first my bluetooth sensor config needs to be stable. need to keep the w.a.f. high, she is already not happy she cannot burn candles or place flowers with ice-cold water next to the controller :crazy_face: without the heating going crazy.

Necessary for development (to reduce timing errors), but maybe not required for production.

I would like to drop a new version this weekend - are there any bugs?

Nothing that comes to mind.

Enhancement suggestion for the future would be to include in the schema if a zone if multi or single room.

ramses_rf tracks 3 classes of attributes (variables):

  • schema: read-only (or objects needing to be deleted/re-created to re-configure)
  • params: configurable things (parameters)
  • status: state of things

Examples would be:

  • schema: zone sensors, number of zones
  • params: single/multi room mode, min/max zone setpoint, DHW setpoint
  • status: zone temperature, window_open detected

Some of these attributes are a bit grey - they fit between the two, so I have made a call on each of them:

  • zone_setpoint is status (and not params)
  • zone_type is schema (and not params)

Currently, params are not exposed in evohome_cc - this is planned.

1 Like

All fine on my side. I still donā€™t have data from the UFH zones, but I am pretty sure this is a problem of reception (my dongle is too far from my UFH antenna).
All the rest seems to work as expected :slight_smile:

Minor niggle, certainly not high priority, and I donā€™t know if the problem is in the integration or core.

If I edit an existing automation that calls evohome_cc.set_dhw_mode using HA Configuration->Automations (as opposed to a file editor), it loses settings for duration.

This is the code before:

- id: DHW_Fri-Sat
  alias: DHW Late Night Friday Saturday
  description: '' 
  trigger:
  - platform: time
    at: '22:55'
  condition:
  - condition: state
    entity_id: water_heater.stored_hw
    attribute: operation_mode
    state: auto
  - condition: time
    weekday:
    - fri
    - sat
  action:
  - service: evohome_cc.set_dhw_mode
    data:
      mode: temporary_override
      active: true
      duration:
        minutes: 15
  mode: single

And then after editing

- id: DHW_Fri-Sat
  alias: DHW Late Night Friday Saturday
  description: ''
  trigger:
  - platform: time
    at: '22:55'
  condition:
  - condition: state
    entity_id: water_heater.stored_hw
    attribute: operation_mode
    state: auto
  - condition: time
    weekday:
    - fri
    - sat
  action:
  - service: evohome_cc.set_dhw_mode
    data:
      mode: temporary_override
      active: true
  mode: single

16.26 looks good. Only thing in my logs are this warning.

Source: /usr/local/lib/python3.9/site-packages/ramses_rf/protocol/transport.py:786 
First occurred: 19:15:29 (632 occurrences) 
Last logged: 20:43:44

PktProtocolQos.send_data(sent=3220|RQ|10:051349|00): boff=1, want=3220|RP|10:051349|00, tout=2021-12-05T20:43:42.743: QoS: IS_EXPIRED (giving up) (0/0)
PktProtocolQos.send_data(sent=3220|RQ|10:051349|11): boff=1, want=3220|RP|10:051349|11, tout=2021-12-05T20:43:43.145: QoS: IS_EXPIRED (giving up) (0/0)
PktProtocolQos.send_data(sent=3220|RQ|10:051349|13): boff=1, want=3220|RP|10:051349|13, tout=2021-12-05T20:43:43.761: QoS: IS_EXPIRED (giving up) (0/0)
PktProtocolQos.send_data(sent=3220|RQ|10:051349|19): boff=1, want=3220|RP|10:051349|19, tout=2021-12-05T20:43:44.165: QoS: IS_EXPIRED (giving up) (0/0)
PktProtocolQos.send_data(sent=3220|RQ|10:051349|1C): boff=1, want=3220|RP|10:051349|1C, tout=2021-12-05T20:43:44.863: QoS: IS_EXPIRED (giving up) (0/0)


@stevieb12345

I do not get this error in my system.

Is this a one-off, or does it happen for every restart of HA?

Youā€™re not suddenly using ser2net are you?

Any idea when the flame state will be added as a sensor?

No ser2net.

I restarted again last night and these are the warnings this morning.

Logger: ramses_rf.protocol.transport
Source: /usr/local/lib/python3.9/site-packages/ramses_rf/protocol/transport.py:786
First occurred: 5 December 2021, 21:45:37 (3342 occurrences)
Last logged: 05:56:53

PktProtocolQos.send_data(sent=3220|RQ|10:051349|12): boff=0, want=3220|RP|10:051349|12, tout=2021-12-06T05:56:52.874: QoS: IS_EXPIRED (giving up) (0/0)
PktProtocolQos.send_data(sent=3220|RQ|10:051349|13): boff=0, want=3220|RP|10:051349|13, tout=2021-12-06T05:56:52.976: QoS: IS_EXPIRED (giving up) (0/0)
PktProtocolQos.send_data(sent=3220|RQ|10:051349|19): boff=0, want=3220|RP|10:051349|19, tout=2021-12-06T05:56:53.080: QoS: IS_EXPIRED (giving up) (0/0)
PktProtocolQos.send_data(sent=3220|RQ|10:051349|1A): boff=0, want=3220|RP|10:051349|1A, tout=2021-12-06T05:56:53.184: QoS: IS_EXPIRED (giving up) (0/0)
PktProtocolQos.send_data(sent=3220|RQ|10:051349|1C): boff=0, want=3220|RP|10:051349|1C, tout=2021-12-06T05:56:53.286: QoS: IS_EXPIRED (giving up) (0/0)

@stevieb12345

I would like a packet log please, it has the timings in it.

I would like you to power cycle your OTB.

Finally, I need you to confirm that your system does the same thing, or not, when you downgrade back to 0.16.24.

This is an architectural changeā€¦ bear with me.

Iā€™ll do all them tonight.

This is in the logs from this morning.

Source: /usr/local/lib/python3.9/site-packages/ramses_rf/protocol/message.py:373 
First occurred: 06:00:23 (1 occurrences) 
Last logged: 06:00:23

RP --- 10:051349 01:169176 --:------ 3EF0 006 0065100A0000 < AssertionError(0x65 > max value (0x64))
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/ramses_rf/protocol/message.py", line 364, in _validate
    result = PAYLOAD_PARSERS.get(self.code, parser_unknown)(
  File "/usr/local/lib/python3.9/site-packages/ramses_rf/protocol/parsers.py", line 132, in wrapper
    return fnc(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/ramses_rf/protocol/parsers.py", line 1805, in parser_3ef0
    mod_level = percent(payload[2:4], high_res=False)
  File "/usr/local/lib/python3.9/site-packages/ramses_rf/protocol/helpers.py", line 134, in percent
    assert int(value, 16) <= max_value, f"0x{value} > max value (0x{max_value:02X})"
AssertionError: 0x65 > max value (0x64)

I should start by saying that the parser code fro 3EF0 hasnā€™t changed recentlyā€¦

This could well be a simply corrupt packet - if it is a one off, then just ignore it.

HACS doesnā€™t have a 0.16.24. version to downgrade to anymore?

So, I get this from your logsā€¦

What the the below means is that the USB is hearing the controller, but not the OTB - for 427 RQ packets, it heard only 321 of the corresponding RP packets (responses).

> cat stevieb12345.log | grep ' RQ.* 01:.* 10:.* 3220 ' | wc -l
427
> cat stevieb12345.log | grep ' RQ.* 01:.* 10:.* 3220 ' -A1 | grep ' RP.* 10:.* 01:.* 3220 ' | wc -l
321

However, the controller is having an issue too:

  • you can see below that the controller sent 2 RQs before sending a 22D9 packet (the USB dongle may not have heard the RP, but it seems the controller did), and then
  • the controller sent six 3220 packets in a row (i.e. it re-transmitted 5x before it gave up / got an RQ)!
> cat .secrets/stevieb12345/*.log | grep ' RQ.* 01.* 10:.* 3220 ' -A1 | tail -12
--
2021-12-06T15:51:28.928353 054 RQ --- 01:169176 10:051349 --:------ 3220 005 0000050000
2021-12-06T15:51:29.528377 054 RQ --- 01:169176 10:051349 --:------ 3220 005 0000050000
2021-12-06T15:51:29.926333 054 RQ --- 01:169176 10:051349 --:------ 22D9 001 00
--
2021-12-06T15:56:42.451094 053 RQ --- 01:169176 10:051349 --:------ 3220 005 0000050000
2021-12-06T15:56:44.452038 053 RQ --- 01:169176 10:051349 --:------ 3220 005 0000050000
2021-12-06T15:56:46.452975 053 RQ --- 01:169176 10:051349 --:------ 3220 005 0000050000
2021-12-06T15:56:48.651953 053 RQ --- 01:169176 10:051349 --:------ 3220 005 0000050000
2021-12-06T15:56:50.652902 053 RQ --- 01:169176 10:051349 --:------ 3220 005 0000050000
2021-12-06T15:56:52.653866 053 RQ --- 01:169176 10:051349 --:------ 3220 005 0000050000
2021-12-06T15:56:52.940912 000 RQ --- 18:135447 10:051349 --:------ 3EF1 001 00

So, in summary: the USB device is struggling to reliably hear your OTB, and - to a lesser extent - the controller is having the same problem.

NO it doesnā€™t - I could put it back, but Iā€™m thinking there is no issue in my code - see aboveā€¦

My OTB is on a long wire, so Iā€™ll move it as far away as I can from the boiler. I also ordered a 3 metre USB extension cable to move my USB stick away from my Zigbee and Z-Wave sticks. Iā€™ve just done this.

With 0.16.24 I had no warnings or errors at all.