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

unfortunatly this did not work for me either.

adding the applicance_control gave me the same error of extra keys not allowed @ data[‘system’][‘applicance_control’].

i removed the zones and appliance_control from my configuration like @maesenator and now the component starts :slightly_smiling_face:

applicance_control
appliance_control

Are you cutting & pasting correctly?

The above is your opentherm bridge - they invariable have an ID starting with 10: - I don’t know why your does not.

      zones:
        "01":
          sensor: 01:126213

It might be better if you had this in - but that can be a battle fro another day - I will check it on my test bed first.

ok, i gave it another go to add the zone and appliance_control. i do not get the extra keys error anymore. so i assume the configuration is now correct. but i do fear i broke things now. i do get a completly different error message now.

Deze fout is ontstaan door een aangepaste integratie.

Logger: homeassistant.setup
Source: custom_components/ramses_cc/schema.py:458
Integration: RAMSES RF (documentation, issues)
First occurred: 22:18:18 (1 occurrences)
Last logged: 22:18:18

Error during setup of component ramses_cc
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/setup.py", line 235, in _async_setup_component
    result = await task
  File "/config/custom_components/ramses_cc/__init__.py", line 87, in async_setup
    serial_port, config, schema = normalise_hass_config(
  File "/config/custom_components/ramses_cc/schema.py", line 401, in normalise_hass_config
    schema = _normalise_schema(
  File "/config/custom_components/ramses_cc/schema.py", line 458, in _normalise_schema
    elif _is_subset(shrink(config_schema), shrink(cached_schema)):
  File "/usr/local/lib/python3.10/site-packages/ramses_rf/helpers.py", line 37, in shrink
    return walk(value)
  File "/usr/local/lib/python3.10/site-packages/ramses_rf/helpers.py", line 21, in walk
    return {
  File "/usr/local/lib/python3.10/site-packages/ramses_rf/helpers.py", line 24, in <dictcomp>
    if (keep_hints or k[:1] != "_") and (keep_falsys or walk(v))
  File "/usr/local/lib/python3.10/site-packages/ramses_rf/helpers.py", line 21, in walk
    return {
  File "/usr/local/lib/python3.10/site-packages/ramses_rf/helpers.py", line 24, in <dictcomp>
    if (keep_hints or k[:1] != "_") and (keep_falsys or walk(v))
  File "/usr/local/lib/python3.10/site-packages/ramses_rf/helpers.py", line 21, in walk
    return {
  File "/usr/local/lib/python3.10/site-packages/ramses_rf/helpers.py", line 24, in <dictcomp>
    if (keep_hints or k[:1] != "_") and (keep_falsys or walk(v))
  File "/usr/local/lib/python3.10/site-packages/ramses_rf/helpers.py", line 21, in walk
    return {
  File "/usr/local/lib/python3.10/site-packages/ramses_rf/helpers.py", line 24, in <dictcomp>
    if (keep_hints or k[:1] != "_") and (keep_falsys or walk(v))
TypeError: 'int' object is not subscriptable

my configuration looks like this now:

ramses_cc:
  serial_port: /dev/serial/by-id/usb-Texas_Instruments_TUSB3410_Boot_Device_TUSB3410-if00-port0
  packet_log: packet.log
  restore_cache: true
  ramses_rf:
    enable_eavesdrop: false
    enforce_known_list: true
  schema:
    controller: 01:126213
    system:
      appliance_control: 63:262143
      zones:
        01:
          sensor: 01:126213
  known_list:
    - 01:126213
    - 63:262143: {class: OTB}
    - 04:230305
    - 04:230319
    - 04:230317
    - 04:231469
    - 04:231485
    - 04:230311
    - 04:230315
    - 04:230313
    - 37:084440
    - 12:079416
    - 18:009448 

That looks like a broadcast address… In hex it becomes 3F:3FFFF…

I agree - it looks like a broadcast address… But it is not in this one instance - it is an OTB!

For now, just use this schema:

  schema:
    controller: 01:126213

Don’t forget to start with restore:cache: false, or try (better, but not fully tested):

  restore_cache:
    restore_state: true
    restore_schema: false

After 1 restart, you can put it back to true.

@ivovangastel I have found a bug - the restore_schema: false feature is not working - you may need to delete .config/.storage/ramses_rf - or wait fro me to release a hotfix tomorrow.

OK, it shoudl be:

  schema:
    controller: 01:126213
    system:
      appliance_control: 10:262143
    zones:
      "01":
        sensor: 01:126213

Note that controller / system / zones all line up. I have edited the release notes - sorry!

Also: it won’t take the 63:262143 - I will send you a separate solution via PM.

Version 0.20.13 just released - it addresses all known bugs.

Is there a recommended way for having a remote transmitter/usb dongle? The signal is poor where my ha server is so need to connect the radio to a remote system (rasp pi).

Is it better to run a full ha instance there and join then together with some thing like mqtt event stream or is there something more lightweight?

You use ser2net.

I have started a wiki page: How to: USB dongle distant from HA server

It would be great if someone would flesh out that article, and/or generally clean up the wiki.

I anyone with HVAC have a remote bound to multiple fans, and/or multiple fans bound to one remote?

I get the keys for my new home next week, jay!

It is equipped with an Orcon system with only one CO2 sensor, it also has a humidity sensor. This will mean the fan will be in standby mode when we sleep, unless you put in a manual override. Adding more Orcon CO2 sensors is expensive and not very easy because there is no AC sockets at the right height in the rooms.

Using ramses_cc / ramses_rf, will it be possible to use the measurements from a Zigbee CO2 sensor and send these to the fan unit as if coming from an Orcon CO2 sensor?

It will need faking implemented for CO2 sensors (easy enough), we already do this with temperature sensors for evohome zones.

1 Like

Great, just what I wanted to hear! Please let me know if/how I can help!

The change to ramses_rf is easy:

    def _bind(self):
        def callback(msg):
            self.set_parent(msg.src, child_id=msg.payload[0][0], is_sensor=True)

        super()._bind()
        self._bind_request((Code._1298, Code._31E0), callback=callback)

I’ll have a look at ramses_cc and let you know - I think it will be remotes being faked first.

1 Like

I get the error: Using a merged schema (cached schema is not a superset of config schema), if required, use 'restore_cache: restore_schema: false'

my config:

ramses_cc:
  serial_port: /dev/ttyUSB-EVOHOME
  restore_cache: true
#  scan_interval: 60
  packet_log:
    file_name: /config/ramses_cc.log
    rotate_backups: 7

  ramses_rf:
    enforce_known_list: true
    max_zones: 13

  schema:
    controller: 01:087939
    system:
      appliance_control: 10:078099
    zones:
      '00': 
        class: underfloor_heating
#        sensor: 03:123001
      '01':
        class: radiator_valve
        sensor: 04:225657
        actuators:
          - 04:225657
      '02':
        class: radiator_valve
        sensor: 04:225661
        actuators:
          - 04:225661
      '03':
        class: radiator_valve
        sensor: 04:059569
        actuators:
          - 04:059569
      '04':
        class: radiator_valve
        sensor: 04:225663
        actuators:
          - 04:225663
      '05':
        class: radiator_valve
        sensor: 04:024000
        actuators:
          - 04:024000
      '06':
        class: radiator_valve
        sensor: 04:023992
        actuators:
          - 04:023992
    orphans_hvac:
      - 20:007902
      - 02:153425      
  known_list:
    - 01:087939 # Controller
    - 02:017205 # Woonkamer (UFH controller)
#    - 03:123001: {faked: true} #Faked sensor Temp woonkamer
    - 04:023992 # Kastenkamer
    - 04:024000 # Slaapkamer Nova
    - 04:059569 # Slaapkamer
    - 04:225657 # Toilet
    - 04:225661 # Badkamer
    - 04:225663 # Slaapkamer Evi
    - 10:078099 # Heating control
    - 18:073736 # Gateway (HGI80-compatible)
#    - 18:000370
    - 02:153425: {"class": REM, _note: "Itho CVE RF Switch"}
    - 20:007902: {"class": FAN, _note: "Itho CVE Fan"}

I am not sure why you have this - unless you have a Hometronics system, remove it.

Always use the smallest config schema you need - for the TCS, it is likely to be the above. This change may fix your problem.

Send me a copy of your .storage/ramses_cc file.

i just did

Actually, this is not an error - it is a warning.

Having looked at your data, I don’t know why you’re getting this warning… Something for me to address…

Do you still get it with a minimal schema?