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

Your YAML looks perfect.

Have you tried to remove/ reinstall ramses_cc?

Please provide a more complete tracelog.

I have mulitple times reinstalled ramses_cc. Also remove, restart, and installed again.
Also removed also all related files in the hidden folders.

Please provide a more complete tracelog.

I may have an idea there.

What do you need? When i donā€™t use the known_list there is no error. But when i use the known_list i get the error like above.

Strange. This is my config in configuration.yaml, running master:

ramses_cc:
  serial_port: /dev/serial/by-id/usb-SparkFun_evofw3_atmega32u4-if00
#  packet_log: packet.log
  ramses_rf:
    enforce_known_list: true
    enable_eavesdrop: false
#  restore_cache: false
#  restore_schema: false
  orphans_hvac:
    - 32:xxxxxx
  known_list:
    32:xxxxxx: {class: FAN, _note: 'HRC 400'}
    18:xxxxxx: {_note: 'SSM-D'}

This is not valid:

ramses_cc:
  serial_port: /dev/serial/by-id...
  restore_cache: false
  restore_schema: false

It is either

ramses_cc:
  restore_cache: true

ā€¦or

ramses_cc:
  restore_cache:
    restore_state: true
    restore_schema: true

The first example implies the latter.

Any of these can be true (default if not set/null), or false.

Or you can, for example:

ramses_cc:
  restore_cache:
    restore_state: true
    restore_schema: false

ā€¦ Another example

ramses_cc:
  restore_cache: { restore_state: true, restore_schema: false }
1 Like

I have exactly the same issue as you, with the " expected a list for dictionary value @" when using the known_list in the new format.

Also, when setting ā€œrestore_cacheā€ to true, it doesnā€™t accept the new format of defining the schema (where the ā€œschemaā€ keyword has been replaced by the controller ID ). It t hen complains about it being duplicate / already defined.

@zxdavb what kind of trace exactly would you like? I am using 0.20.15a and am mainly integrating with my Evohome system (Evohome WIFI as controller), although there also is some Itho HVAC stuff ā€˜in the airā€™, but that system is handled by a different integration.

I will be looking at this early next week.

Just wanted to inform you that Iā€™m on 0.20.15a now and Iā€™m still experiencing the issue where my zone entities are becoming Unknown after a couple of days. It looks like it fixes itself sometimes - but sometimes it doesnā€™t until I restart home assistant.

Whatā€™s also funny is that it still reports a temperature even though the state is set to Unknown.

I found a log message from around the time it stopped working:

This error originated from a custom integration.

Logger: homeassistant
Source: custom_components/ramses_cc/climate_heat.py:138
Integration: RAMSES RF (documentation, issues)
First occurred: August 15, 2022 at 11:55:01 PM (1 occurrences)
Last logged: August 15, 2022 at 11:55:01 PM

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 519, in async_update_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 570, in _async_write_ha_state
    state = self._stringify_state(available)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 538, in _stringify_state
    if (state := self.state) is None:
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 217, in state
    if self.hvac_mode is None:
  File "/config/custom_components/ramses_cc/climate_heat.py", line 138, in hvac_mode
    if self._device.tcs.system_mode[CONF_SYSTEM_MODE] == SystemMode.AWAY:
TypeError: 'NoneType' object is not subscriptable

That is a bit oddā€¦ here is the relevant code fragment:

    def hvac_mode(self) -> Optional[str]:
        """Return the Zone's hvac operation ie. heat, cool mode."""

        if self._device.tcs.system_mode is None:
            return  # unable to determine
        if self._device.tcs.system_mode[CONF_SYSTEM_MODE] == SystemMode.AWAY:
            return HVAC_MODE_AUTO
        ...

Is anyone else having this exact issue?

1 Like

You may be better off with 0.20.21 or 0.20.22ā€¦ gemme sec

OK, I get the same error with 0.20.15a, but not my latest master (>0.20.21).

I think I will push a new release, 0.20.22.

All, I apologise for the number of bugs, which is due to significant refactoring but I am taking advantage of the Summer period to make big changes that will benefit everyone, such as:

  • heading towards making ramses_cc an official integration, and
  • promoting the HVAC domain (Itho / Orcon / Nuaire with HRU, CVE & PIV) to a first class citizen
  • adding more features for the Heat domain (evohome), such as schedues

Version 0.20.22 has been released.

The main addition is support for HVAC remotes - learning / sending commands

Please report any/all bugs - I will focus on making it stable (e.g. 0.20.22a, etc.).

Known bugs:

I am not sure why this is happening - the code was written to handle this issue

This is under investigation:

homeassistant.exceptions.InvalidStateError: Invalid state encountered for entity ID: 
  sensor.32_111111_fan_info. State max length is 255 characters.

This is under investigation - appears only on startup?

Fixed bugs:

I was able to reproduce this, it has been fixed:

This was fixed in 0.20.15a:

This was fixed in 0.20.15a:

Iā€™ve deducted that apparently the known_list setup has changed. I have removed the hyphens and added : at the end. Home Assistant restarts again and it looks like the integration is working again. This is now my complete config file

ramses_cc:
  serial_port: /dev/serial/by-id/usb-SHK_NANO_CUL_868-if00-port0
  restore_cache: true
  
  ramses_rf:
    enable_eavesdrop: false
    enforce_known_list: true
    
  01:205114: 
    zones:
      "01": {sensor: 01:205114} # Main controller

  known_list:
    #Gateway
    #- "18:205572"
    "01:205114": {_note: Controller}
    #Badkamer 1
    "04:164227": 
    #Woonkamer
    "04:014708":
    "04:014696":
    "04:164041":
    # Badkamer 2
    "04:014712": #Valve
    "34:018143": #Thermostat
    # H Slaapkamer
    "03:256014": { faked: true } #Fake sensor for AC
    "04:164247": #Valve
    # L Slaapkamer
    "04:122639":
    # R Slaapkamer
    "04:079671":  

I do see an error on startup

Logger: ramses_rf.processor
Source: runner.py:119
First occurred: 10:53:52 AM (1 occurrences)
Last logged: 10:53:52 AM

I --- 18:205572 63:262142 --:------ 7FFF 023 00110182AAEC775933304339204930333A323536303134 < AttributeError('NoneType' object has no attribute '_hgi80')

and

Logger: homeassistant
Source: /usr/src/homeassistant/homeassistant/runner.py:96
First occurred: 10:53:52 AM (1 occurrences)
Last logged: 10:53:52 AM

Error doing job: Exception in callback MessageProtocol.data_received( I --- 18:205...3A323536303134)
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/local/lib/python3.10/site-packages/ramses_rf/protocol/protocol.py", line 543, in data_received
    self._callback(self._this_msg, prev_msg=self._prev_msg)
  File "/usr/local/lib/python3.10/site-packages/ramses_rf/processor.py", line 263, in process_msg
    _create_devices_from_addrs(gwy, msg)
  File "/usr/local/lib/python3.10/site-packages/ramses_rf/processor.py", line 83, in _create_devices_from_addrs
    this.src = gwy.get_device(this.src.id)
  File "/usr/local/lib/python3.10/site-packages/ramses_rf/gateway.py", line 560, in get_device
    check_filter_lists(dev_id)
  File "/usr/local/lib/python3.10/site-packages/ramses_rf/gateway.py", line 545, in check_filter_lists
    and dev_id != self.pkt_protocol._hgi80[SZ_DEVICE_ID]
AttributeError: 'NoneType' object has no attribute '_hgi80'

1 Like

Yes - both the known_list and the block_list are now a dict (no leading -) of dicts (must have a trailing :).

This information is in the wiki - I will add it to the release notes.

ramses_cc:
  known_list:
    01:123456:
    02:222222:
    13:333333:

Instead of:

ramses_cc:
  known_list:
    - 01:123456
    - 02:222222
    - 13:333333
1 Like

But otherwise the integration is OK?

Yep, looks like it.

Done.

I am sorry - I am fully aware of the burden this puts on people. My expectation is that we are at the end of it now.

The configuration.yaml file is heavily documented now - please see the wiki:

Most of the changes are driven by additional functionality.

2 Likes

Iā€™m back. Iā€™ve updated to 20.22 and have the heating side up and running. Iā€™m struggling with the HVAC and YAML again.

I my setup is as below, but it wonā€™t accept the config.

bad indentation of a mapping entry at line 56, column 9:
            class: REM
            ^
  ramses_cc:
    orphans_hvac: [32:172534, 32:168240, 32:123456, 30:079129, 32:166025] 
    serial_port: /dev/ttyACM2
    packet_log: /config/packet_logs
    known_list:
      30:079129: {class: FAN}
      32:172534: {class: REM}    
        class: REM
        faked: True
        commands:
          normal:      ' I --- 32:172534 30:079129 --:------ 22F1 003 00020A'
          boost:       ' I --- 32:172535 30:079129 --:------ 22F1 003 00030A'
           
           
      32:168240: {class: HUM}
      32:123456: {class: CO2, faked: true}     
      32:166025: {class: CO2}
      10:051349: # Appliance Control
      01:169176: # main_controller
      18:135447: # Config Sensor
      04:190691: # Harry's Room
      04:198483: # Bedroom
      04:198487: # Spare Room
      04:112546: # Living Room 1
      04:198485: # Living Room 2
      04:038015: # Utility Room
      04:090189: # Kitchen
      03:000001: # kitchen
      03:000002: # Living Room 1
      03:000004: # Harry's Room
      03:000005: # Master Bedroom
      03:000006: # Utility Room 
      03:000007: # Spare Room
    
    ramses_rf:
      enforce_known_list: True
      enable_eavesdrop: false
    01:169176: #Evohome
      system:
        appliance_control: 10:051349 #OTB

Try this:

ramses_cc:
  known_list:
    30:079129: {class: FAN}
    32:172534:
      class: REM
      faked: true
      commands:
        normal:      ' I --- 32:172534 30:079129 --:------ 22F1 003 00020A'
        boost:       ' I --- 32:172535 30:079129 --:------ 22F1 003 00030A'

Note these two mean the same thing:

ramses_cc:
  known_list:
    30:079129: {class: FAN}

ā€¦ and:

ramses_cc:
  known_list:
    30:079129:
      class: FAN