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

Sure thing, here it is. (I have however used the flow to set it up, so, I don’t know if it’s still relevant?

  ramses_rf:
    enforce_known_list: true # if not true, still enforces the block_list
    disable_discovery: false
    disable_sending: false # do not transmit any packets, ever
    enable_eavesdrop: false # can be used to create an initial system schema

  01:245354: # Temperature control system (Evohome)
    system:
      appliance_control: 13:155994
    #zones:
    #  "00": {sensor: 01:245354}

  orphans_hvac: [37:182456, 29:057880]
  known_list:
    18:203291: { class: HGI } # SSM-D Kantoor
    01:245354: # Evohome / Controller Huiskamer
    13:155994: # BDR91 Meterkast
    04:136057: # HR92 zone 00 Trapkast
    04:040504: # HR92 zone 01 Garage
    04:136053: # HR92 zone 02 Entree
    04:136205: # HR92 zone 03 1e Badkamer
    04:136055: # HR92 zone 04 2e Badkamer
    03:255542: # Thermostaat zone 05 Kantoor
    04:136051: # HR92 zone 05 Kantoor
    34:010179: # Thermostaat zone 06 Slaapkamer
    04:040506: # HR92 zone 06 Slaapkamer
    04:245529: # HR92 zone 07 Sport
    34:095145: # Thermostaat zone 08 W&W
    04:040510: # HR92 zone 08 W&W
    04:136199: # HR92 zone 08 W&W
    04:136201: # HR92 zone 09 Tafel
    04:040508: # HR92 zone 09 Keuken
    04:136203: # HR92 zone 09 TV
    37:182456: { class: FAN } # Itho CVE-S Optima
    29:057880: { class: REM } # Itho CVE-S Optima Remote
    #29:057880:                      # Itho CVE-S Optima Remote faked
    #  class: REM
    #  faked: true
    #  commands:
    #    low:  ' I --- --:------ --:------ 29:057880 22F1 003 630204'
    #    auto: ' I --- --:------ --:------ 29:057880 22F1 003 630304'
    #    high: ' I --- --:------ --:------ 29:057880 22F1 003 630404'
    03:123456: # Faked temperatuur sensor
      class: THM
      faked: true

Yes same message,
below the complete log
in row 60 the message

nothing on ramses_rf anymore in configuration.yaml

2024-08-08 21:09:31.383 WARNING (SyncWorker_1) [homeassistant.loader] We found a custom integration ramses_cc which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2024-08-08 21:09:31.385 WARNING (SyncWorker_1) [homeassistant.loader] We found a custom integration hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2024-08-08 21:09:47.981 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' calls hass.http.register_static_path which is deprecated because it does blocking I/O in the event loop, instead call `await hass.http.async_register_static_paths([StaticPathConfig("/hacsfiles/frontend", "/config/custom_components/hacs/hacs_frontend", False)])`; This function will be removed in 2025.7 at custom_components/hacs/frontend.py, line 54: hass.http.register_static_path(f"{URL_BASE}/frontend", locate_dir(), cache_headers=False), please create a bug report at https://github.com/hacs/integration/issues
2024-08-08 21:09:47.991 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' calls hass.http.register_static_path which is deprecated because it does blocking I/O in the event loop, instead call `await hass.http.async_register_static_paths([StaticPathConfig("/hacsfiles/iconset.js", "/config/custom_components/hacs/iconset.js", True)])`; This function will be removed in 2025.7 at custom_components/hacs/frontend.py, line 57: hass.http.register_static_path(, please create a bug report at https://github.com/hacs/integration/issues
2024-08-08 21:09:48.000 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' accesses hass.components.frontend. This is deprecated and will stop working in Home Assistant 2024.9, it should be updated to import functions used from frontend directly at custom_components/hacs/frontend.py, line 68: hass.components.frontend.async_register_built_in_panel(, please create a bug report at https://github.com/hacs/integration/issues
2024-08-08 21:09:48.013 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' calls hass.http.register_static_path which is deprecated because it does blocking I/O in the event loop, instead call `await hass.http.async_register_static_paths([StaticPathConfig("/hacsfiles", "/config/www/community", True)])`; This function will be removed in 2025.7 at custom_components/hacs/base.py, line 1162: self.hass.http.register_static_path(, please create a bug report at https://github.com/hacs/integration/issues
2024-08-08 21:09:55.028 WARNING (ImportExecutor_0) [ramses_tx.transport] EXPERIMENTAL: Using pyserial-asyncio-fast in place of pyserial-asyncio
2024-08-08 21:09:55.153 WARNING (MainThread) [custom_components.ramses_cc.broker] The config schema is not minimal (consider minimising it)
2024-08-08 21:09:55.191 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry RAMSES RF for ramses_cc
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 604, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/ramses_cc/__init__.py", line 89, in async_setup_entry
    await broker.async_setup()
  File "/config/custom_components/ramses_cc/broker.py", line 146, in async_setup
    await self.client.start(cached_packets=cached_packets())
  File "/usr/local/lib/python3.12/site-packages/ramses_rf/gateway.py", line 184, in start
    load_schema(self, known_list=self._include, **self._schema)  # create faked too
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/ramses_rf/schemas.py", line 370, in load_schema
    _get_device(gwy, device_id)  # domain=key[-4:])
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/ramses_rf/schemas.py", line 343, in _get_device
    return gwy.get_device(dev_id, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/ramses_rf/gateway.py", line 396, in get_device
    traits: dict[str, Any] = SCH_TRAITS(self._include.get(device_id, {}))
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/voluptuous/validators.py", line 259, in __call__
    return self._exec((Schema(val) for val in self.validators), v)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/voluptuous/validators.py", line 315, in _exec
    raise error if self.msg is None else AnyInvalid(self.msg, path=path)
  File "/usr/local/lib/python3.12/site-packages/voluptuous/validators.py", line 307, in _exec
    return func(v)
           ^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 205, in __call__
    return self._compiled([], data)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/voluptuous/validators.py", line 256, in _run
    return self._exec(self._compiled, value, path)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/voluptuous/validators.py", line 315, in _exec
    raise error if self.msg is None else AnyInvalid(self.msg, path=path)
  File "/usr/local/lib/python3.12/site-packages/voluptuous/validators.py", line 309, in _exec
    return func(path, v)
           ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 779, in validate_callable
    return schema(data)
           ^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 205, in __call__
    return self._compiled([], data)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 549, in validate_dict
    return base_validate(path, data.items(), out)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 382, in validate_mapping
    raise er.MultipleInvalid(errors)
voluptuous.error.MultipleInvalid: not a valid value for dictionary value @ data['class']
2024-08-08 21:09:59.211 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' accesses hass.helpers.event. This is deprecated and will stop working in Home Assistant 2024.11, it should be updated to import functions used from event directly at custom_components/hacs/base.py, line 630: self.hass.helpers.event.async_track_time_interval(, please create a bug report at https://github.com/hacs/integration/issues
2024-08-08 21:09:59.405 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-08 21:09:59.599 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-08 21:09:59.640 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-08 21:09:59.673 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-08 21:09:59.888 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-08 21:10:01.073 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-08 21:10:01.180 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-08 21:10:01.392 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-08 21:10:01.423 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-08 21:10:01.625 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-08 21:10:01.691 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-08 21:10:03.327 WARNING (Recorder) [homeassistant.components.recorder.migration] The database is about to upgrade from schema version 43 to 44
2024-08-08 21:10:03.357 WARNING (Recorder) [homeassistant.components.recorder.migration] Upgrade to version 44 done

I have got the same issue after upgrading to 2024.8. The exception and other logs seem identical to the ones posted above. If you need them I will post them, however I think it could be relevant that after some experimentation I have found that entering the configuration device by device the exception is raised when I configure the remote specifically when I copy the commands. In fact is enough to add just one. If I delete the remote device and add again without commands Ramses seems to clear the exception.

However I did not modify the configuration when it failed after updating HA and now I have re-checking ident and syntax and it seems as per wiki. Please see the image below:

  • First, I put just the devices, no command.

  • Then “Send” seems to work ok, at least I got access to the sensors and there are only warnings in the register

  • When I add just one command (I have tried also different ones)

  • it changes RAMSES_RF state to “Cannot configure. Check the register” and there I find that “voluptuous.error.MultipleInvalid” exception is throw.

I hope this helps. Contact me for any additional info.

The remote command services are also causing issues on my Drimaster ventilation unit. I wonder whether it’s related to the change from services to actions?

Commands are now working even if the “voluptuous…” exception is thrown when configuring Ramses. I have found it casually because this morning automation finished successfully (I think yesterday it failed, I am not sure now; or perhaps the self-learning capabilities of Ramses have completed the configuration overnight? curious if true)

I have just tested it from the buttons in my hvac card and they run correctly both with the old “service” syntax and with the new “action” syntax:

#old>
…
tap_action:
  action: call-service
  service: ramses_cc.send_command
  target: {}
  data:
    num_repeats: 1
    delay_secs: 0.05
    entity_id: remote.37_172240
    command: high
…

#new>
...
action: ramses_cc.send_command
data:
  num_repeats: 1
  delay_secs: 0.05
  entity_id: remote.37_172240
  command: boost
...

In both cases the command boost is send successfully (22F1 003 000707)
###Extract of "ramses_packet.lo2" all entries at 13:54
###
2024-08-09T13:54:42.804015 000  I --- 18:146408 63:262142 --:------ 7FFF 023 0011019136FDB6D032324631204933373A313732323430
2024-08-09T13:54:42.867468 000  I --- 37:172240 32:159286 --:------ 22F1 003 000707
2024-08-09T13:54:42.901114 064  I 048 32:159286 --:------ 32:159286 31D9 017 000A070020202020202020202020202008
2024-08-09T13:54:42.992626 064  I --- 32:159286 --:------ 32:159286 31DA 030 00EF007FFFEFEF0C220B0B0ABE0C64F00200179EB0000000EF7FFF7FFF00
2024-08-09T13:54:46.204420 063  I --- 32:159286 --:------ 32:159286 31DA 030 00EF007FFFEFEF0C220B080ABF0C64F00200179EB0000000EF7FFF7FFF00

####

Finally I have tested the ability to modify the configuration. I have swapped the “boost” and “away” commands and it has worked. With the exception thrown in the middle of course. The workaround to get it working is more or less what I explained in the previous post. Summarizing (using flow configuration, I think people using yaml are ok):

  1. Configure Ramses with orphan and keep list empty, It should start ok.
  2. Let it run until it detects your equipment. Check that they are connected and reporting the sensor fields. Check traffic in "packet.log "
  3. Open configuration again and configure orphan and keep list including commands. Click “Send”
  4. Ramses reports that cannot configure and exception “voluptuous.error.MultipleInvalid” is shown in the register. At this point Ramses FAIL TO START and all entities are reported as unavailable!
  5. Open the configuration again and remove all the “command:” section. Only the devices id and classes should be left
  6. Click “Send” and it will fail again. Ignore and reload the integration from the “…” button.
  7. It should start ok and in about 1 min. you can check sensor values and start testing commands (internally they seems to be updated ok)

The exception seem related to the flow configuration and the GUI and need to be studied further but I lack the ability to do so. In any case I can use it as is and wait for a solution in a future update.

I can look at this during the middle of next week.

Hello! Everything seems to be working fine but my logs have a lot of entries like below.
v 0.41.23

Accept know devices only is ticked.

Is it this which is causing the noise?:
2024-08-11T13:27:51.418537 000 RQ — 18:131868 00:089914 --:------ 2349 001 06

2024-08-11 13:27:51.418 ERROR (MainThread) [homeassistant] Error doing job: Exception in callback PortProtocol.pkt_received(2024-08-11T13...-- 2349 001 06) (None)
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/local/lib/python3.12/site-packages/ramses_tx/protocol.py", line 597, in pkt_received
    self._context.pkt_received(pkt)
  File "/usr/local/lib/python3.12/site-packages/ramses_tx/protocol_fsm.py", line 297, in pkt_received
    self._state.pkt_rcvd(pkt)
  File "/usr/local/lib/python3.12/site-packages/ramses_tx/protocol_fsm.py", line 564, in pkt_rcvd
    and pkt._hdr == self._sent_cmd.rx_header
        ^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/ramses_tx/frame.py", line 400, in _hdr
    self._hdr_ = pkt_header(self)
                 ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/ramses_tx/frame.py", line 560, in pkt_header
    return f"{header}|{pkt._ctx}" if isinstance(pkt._ctx, str) else header
                                                ^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/ramses_tx/frame.py", line 385, in _ctx
    self._ctx_ = self._idx
                 ^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/ramses_tx/frame.py", line 413, in _idx
    self._idx_ = _pkt_idx(self) or False  # type: ignore[unreachable]
                 ^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/ramses_tx/frame.py", line 501, in _pkt_idx
    raise exc.PacketPayloadInvalid(
ramses_tx.exceptions.PacketPayloadInvalid: Packet idx is 06, but expecting no idx (00) (0xAB)
2024-08-11 13:48:24.030 ERROR (MainThread) [homeassistant] Error doing job: Exception in callback PortProtocol.pkt_received(2024-08-11T13...-- 2349 001 02) (None)
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/local/lib/python3.12/site-packages/ramses_tx/protocol.py", line 597, in pkt_received
    self._context.pkt_received(pkt)
  File "/usr/local/lib/python3.12/site-packages/ramses_tx/protocol_fsm.py", line 297, in pkt_received
    self._state.pkt_rcvd(pkt)
  File "/usr/local/lib/python3.12/site-packages/ramses_tx/protocol_fsm.py", line 564, in pkt_rcvd
    and pkt._hdr == self._sent_cmd.rx_header
        ^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/ramses_tx/frame.py", line 400, in _hdr
    self._hdr_ = pkt_header(self)
                 ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/ramses_tx/frame.py", line 560, in pkt_header
    return f"{header}|{pkt._ctx}" if isinstance(pkt._ctx, str) else header
                                                ^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/ramses_tx/frame.py", line 385, in _ctx
    self._ctx_ = self._idx
                 ^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/ramses_tx/frame.py", line 413, in _idx
    self._idx_ = _pkt_idx(self) or False  # type: ignore[unreachable]
                 ^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/ramses_tx/frame.py", line 501, in _pkt_idx
    raise exc.PacketPayloadInvalid(
ramses_tx.exceptions.PacketPayloadInvalid: Packet idx is 02, but expecting no idx (00) (0xAB)

and packet log:

2024-08-11T13:27:01.608448 000 RQ --- 18:131868 13:079800 --:------ 3EF1 001 00
2024-08-11T13:27:01.624814 063 RP --- 13:079800 18:131868 --:------ 3EF1 007 000000C99600FF
2024-08-11T13:27:29.008259 000 RQ --- 18:131868 01:138490 --:------ 2349 001 01
2024-08-11T13:27:29.024873 054 RP --- 01:138490 18:131868 --:------ 2349 007 0101F400FFFFFF
2024-08-11T13:27:36.804228 000 RQ --- 18:131868 01:138490 --:------ 1F41 001 00
2024-08-11T13:27:36.820967 054 RP --- 01:138490 18:131868 --:------ 1F41 006 000000FFFFFF
2024-08-11T13:27:37.985969 064  I --- 34:163753 --:------ 34:163753 30C9 003 0008A8
2024-08-11T13:27:45.377141 000 RQ --- 18:131868 01:138490 --:------ 2349 001 05
2024-08-11T13:27:45.387883 054 RP --- 01:138490 18:131868 --:------ 2349 007 0501F400FFFFFF
2024-08-11T13:27:47.848791 000 RQ --- 18:131868 01:138490 --:------ 2349 001 04
2024-08-11T13:27:47.865778 054 RP --- 01:138490 18:131868 --:------ 2349 007 0401F400FFFFFF
2024-08-11T13:27:51.418537 000 RQ --- 18:131868 00:089914 --:------ 2349 001 06
2024-08-11T13:27:51.919417 000 RQ --- 18:131868 01:138490 --:------ 2349 001 06
2024-08-11T13:27:51.938334 054 RP --- 01:138490 18:131868 --:------ 2349 007 06038400FFFFFF
2024-08-11T13:27:58.042432 000 RQ --- 18:131868 13:169230 --:------ 3EF1 001 00
2024-08-11T13:27:58.059142 062 RP --- 13:169230 18:131868 --:------ 3EF1 007 0000E100E100FF
2024-08-11T13:28:04.647618 000 RQ --- 18:131868 13:079800 --:------ 3EF1 001 00
2024-08-11T13:28:04.662839 064 RP --- 13:079800 18:131868 --:------ 3EF1 007 000000C99600FF
2024-08-11T13:28:05.425610 000 RQ --- 18:131868 01:138490 --:------ 2349 001 03
2024-08-11T13:28:05.442286 054 RP --- 01:138490 18:131868 --:------ 2349 007 0301F400FFFFFF
2024-08-11T13:28:19.706501 000 RQ --- 18:131868 01:138490 --:------ 2349 001 00
2024-08-11T13:28:19.723030 054 RP --- 01:138490 18:131868 --:------ 2349 007 0001F400FFFFFF
2024-08-11T13:28:20.841884 000 RQ --- 18:131868 01:138490 --:------ 2349 001 02
2024-08-11T13:28:20.860413 054 RP --- 01:138490 18:131868 --:------ 2349 007 0201F400FFFFFF
2024-08-11T13:28:32.421394 054  I --- 01:138490 --:------ 01:138490 1F09 003 FF05B9
2024-08-11T13:28:32.452627 054  I --- 01:138490 --:------ 01:138490 2309 027 0001F40101F40201F40301F40401F40501F40603840701F40801F4
2024-08-11T13:28:32.472885 054  I --- 01:138490 --:------ 01:138490 30C9 027 0008FA0108A802080A0308280407FE0506E606082707087C080887
2024-08-11T13:28:47.918480 082  I --- 04:048656 --:------ 01:138490 3150 002 0800
2024-08-11T13:28:50.034358 081  I --- 04:048656 --:------ 01:138490 2309 003 0801F4
2024-08-11T13:28:57.859659 000 RQ --- 18:131868 01:138490 --:------ 2349 001 07
2024-08-11T13:28:57.878879 054 RP --- 01:138490 18:131868 --:------ 2349 007 0701F400FFFFFF
2024-08-11T13:29:01.076831 000 RQ --- 18:131868 13:169230 --:------ 3EF1 001 00
2024-08-11T13:29:01.092596 062 RP --- 13:169230 18:131868 --:------ 3EF1 007 0000A200A200FF
2024-08-11T13:29:07.684577 000 RQ --- 18:131868 13:079800 --:------ 3EF1 001 00
2024-08-11T13:29:07.701233 064 RP --- 13:079800 18:131868 --:------ 3EF1 007 000000C99600FF
2024-08-11T13:29:42.644003 000 RQ --- 18:131868 01:138490 --:------ 1260 001 00
2024-08-11T13:29:42.657496 054 RP --- 01:138490 18:131868 --:------ 1260 003 001591
2024-08-11T13:29:50.252383 000 RQ --- 18:131868 01:138490 --:------ 0418 003 000000
2024-08-11T13:29:50.279906 054 RP --- 01:138490 18:131868 --:------ 0418 022 004000B0040701000000841889EF7FFFFF70001053CF
2024-08-11T13:29:53.064082 093  I --- 04:190960 --:------ 04:190960 30C9 003 00083E
2024-08-11T13:30:00.785051 000 RQ --- 18:131868 01:138490 --:------ 2E04 001 FF

After a recent update I am getting error messages:

Logger: homeassistant.config_entries
Source: config_entries.py:604
First occurred: 21:05:54 (1 occurrences)
Last logged: 21:05:54

Error setting up entry RAMSES RF for ramses_cc
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 604, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/ramses_cc/__init__.py", line 89, in async_setup_entry
    await broker.async_setup()
  File "/config/custom_components/ramses_cc/broker.py", line 146, in async_setup
    await self.client.start(cached_packets=cached_packets())
  File "/usr/local/lib/python3.12/site-packages/ramses_rf/gateway.py", line 184, in start
    load_schema(self, known_list=self._include, **self._schema)  # create faked too
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/ramses_rf/schemas.py", line 358, in load_schema
    load_tcs(gwy, ctl_id, schema)  # type: ignore[arg-type]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/ramses_rf/schemas.py", line 400, in load_tcs
    ctl.tcs._update_schema(**schema)
  File "/usr/local/lib/python3.12/site-packages/ramses_rf/system/heat.py", line 989, in _update_schema
    [self.get_htg_zone(idx, **s) for idx, s in _schema.items()]
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/ramses_rf/system/heat.py", line 537, in get_htg_zone
    zon = zone_factory(self, zone_idx, msg=msg, **schema)  # type: ignore[unreachable]
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/ramses_rf/system/zones.py", line 1014, in zone_factory
    zon: DhwZone | Zone = best_zon_class(  # type: ignore[type-var]
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/ramses_rf/system/zones.py", line 120, in create_from_schema
    zon._update_schema(**schema)
  File "/usr/local/lib/python3.12/site-packages/ramses_rf/system/zones.py", line 541, in _update_schema
    self._gwy.get_device(dev_id, parent=self)
  File "/usr/local/lib/python3.12/site-packages/ramses_rf/gateway.py", line 396, in get_device
    traits: dict[str, Any] = SCH_TRAITS(self._include.get(device_id, {}))
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/voluptuous/validators.py", line 259, in __call__
    return self._exec((Schema(val) for val in self.validators), v)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/voluptuous/validators.py", line 315, in _exec
    raise error if self.msg is None else AnyInvalid(self.msg, path=path)
  File "/usr/local/lib/python3.12/site-packages/voluptuous/validators.py", line 307, in _exec
    return func(v)
           ^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 205, in __call__
    return self._compiled([], data)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/voluptuous/validators.py", line 256, in _run
    return self._exec(self._compiled, value, path)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/voluptuous/validators.py", line 315, in _exec
    raise error if self.msg is None else AnyInvalid(self.msg, path=path)
  File "/usr/local/lib/python3.12/site-packages/voluptuous/validators.py", line 309, in _exec
    return func(path, v)
           ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 779, in validate_callable
    return schema(data)
           ^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 205, in __call__
    return self._compiled([], data)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 549, in validate_dict
    return base_validate(path, data.items(), out)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 382, in validate_mapping
    raise er.MultipleInvalid(errors)
voluptuous.error.MultipleInvalid: not a valid value @ data['aliad']

And:

Logger: homeassistant.helpers.config_validation
Source: helpers/config_validation.py:917
First occurred: 21:05:54 (1 occurrences)
Last logged: 21:05:54

The 'ramses_cc' option near /config/configuration.yaml:2 is deprecated, please remove it from your configuration.

The ramses_cc section in my Configuration.yaml looks like this:

ramses_cc:
  serial_port: /dev/ttyACM0
  restore_cache:
    restore_state: true
    restore_schema: false

  ramses_rf:
    enforce_known_list: true

  known_list:
    01:248420: { alias: "Evohome Controller" }
    18:005908: { class: HGI, alias: "HGI:evofw3" }
    03:085164: { alias: "Slaapkamer temperatuursensor" }
    03:085317: { alias: "Badkamer temperatuursensor" }
    04:060711: { alias: "Woonkamer nis radiator HR92" }
    04:060715: { alias: "Woonkamer radiator HR92" }
    04:060717: { alias: "Kantoor Remco HR92" }
    04:060729: { alias: "Eethoek kleine radiator HR92" }
    04:060733: { alias: "Kantoor Clarinda HR92" }
    04:060735: { aliad: "Slaapkamer HR92" }
    04:151855: { alias: "Eethoek grote radiator HR92" }
    04:151857: { alias: "Badkamer Radiator HR92" }
    13:110812: { alias: "BDR91T Relay box" }
    34:262074:
    34:045844: { alias: "Kantoor Clarinda Temperatuur" }

There was apparently a regression which caused this exact error to appear in HA core, but was supposedly fixed in a newer version of voluptuous:

I am looking at this now - I will need to refactor the test suite first, then add a test that exposes this, then I will fix the bug.

I believe there is another regression that remains in voluptuous 0.15.2 - I will submit a PR to voluptuous & see how we get on.

1 Like

OK, here is the PR - Fix bug with REMOVE_EXTRA and Any validator by zxdavb · Pull Request #524 · alecthomas/voluptuous · GitHub

The repo owner will have to accept the PR, and issue a new release. Then HA will have to integrate the updated library in HA.

This could take a while… I will look at a hotfix in ramses_rf.

voluptuous.error.MultipleInvalid: 
  not a valid value for dictionary value @ data['class']

Could people affect by this bug please try release 0.42.0 of the RAMSES RF integration (it is a pre-release).

… and report back.

Works here, no specific errors/warnings.

Seems to have fixed my Drimaster remote issue.

It is working fine with HA 2024.8.2 and Ramses_rf 0.42.0. I have installed them today in this order and then run some tests.

  • Configure Ramses (change command name from “bypass_on” to “bypass_open”). Ramses starts correctly with no exception and the usual warnings
  • Test several commands from my HVAC card. All working fine.
  • Updated card accordingly with new command name “bypass_open” and click on it. It worked fine:
    You can see the command being issued in the packet.log:
  2024-08-18T15:14:40.634013 000  W --- 37:172240 32:159286 --:------ 22F7 003 00C8EF
  2024-08-18T15:14:40.650404 068  I --- 32:159286 37:172240 --:------ 22F7 003 00C800
  2024-08-18T15:14:42.294347 066  I 034 32:159286 --:------ 32:159286 31D9 017 001A070020202020202020202020202008
  2024-08-18T15:14:42.394747 066  I --- 32:159286 --:------ 32:159286 31DA 030 00EF007FFFEFEF0BB30ADC0A9B0BEFF00220179EB0000000EF7FFF7FFF00

And the unit changed bypass mode ok.

I can confirm that the issues are solved for my configuration. :+1:

Great it works here again as well

It does add some json_loads warnings…see attached.
Also the growing amount of depreciation warnings of hacs…that was there already :slight_smile:

Thanks for quick fix!!

2024-08-17 18:39:57.561 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration ramses_cc which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2024-08-17 18:39:57.565 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2024-08-17 18:40:08.870 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' calls hass.http.register_static_path which is deprecated because it does blocking I/O in the event loop, instead call `await hass.http.async_register_static_paths([StaticPathConfig("/hacsfiles/frontend", "/config/custom_components/hacs/hacs_frontend", False)])`; This function will be removed in 2025.7 at custom_components/hacs/frontend.py, line 54: hass.http.register_static_path(f"{URL_BASE}/frontend", locate_dir(), cache_headers=False), please create a bug report at https://github.com/hacs/integration/issues
2024-08-17 18:40:08.880 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' calls hass.http.register_static_path which is deprecated because it does blocking I/O in the event loop, instead call `await hass.http.async_register_static_paths([StaticPathConfig("/hacsfiles/iconset.js", "/config/custom_components/hacs/iconset.js", True)])`; This function will be removed in 2025.7 at custom_components/hacs/frontend.py, line 57: hass.http.register_static_path(, please create a bug report at https://github.com/hacs/integration/issues
2024-08-17 18:40:08.889 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' accesses hass.components.frontend. This is deprecated and will stop working in Home Assistant 2024.9, it should be updated to import functions used from frontend directly at custom_components/hacs/frontend.py, line 68: hass.components.frontend.async_register_built_in_panel(, please create a bug report at https://github.com/hacs/integration/issues
2024-08-17 18:40:08.905 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' calls hass.http.register_static_path which is deprecated because it does blocking I/O in the event loop, instead call `await hass.http.async_register_static_paths([StaticPathConfig("/hacsfiles", "/config/www/community", True)])`; This function will be removed in 2025.7 at custom_components/hacs/base.py, line 1162: self.hass.http.register_static_path(, please create a bug report at https://github.com/hacs/integration/issues
2024-08-17 18:40:11.071 WARNING (ImportExecutor_0) [ramses_tx.transport] EXPERIMENTAL: Using pyserial-asyncio-fast in place of pyserial-asyncio
2024-08-17 18:40:11.312 WARNING (MainThread) [custom_components.ramses_cc.broker] The config schema is not minimal (consider minimising it)
2024-08-17 18:40:11.453 WARNING (MainThread) [ramses_rf.gateway] GATEWAY: Restoring a cached packet log...
2024-08-17 18:40:11.812 WARNING (MainThread) [ramses_rf.gateway] GATEWAY: Restored, resuming
2024-08-17 18:40:11.837 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'ramses_cc' calls async_forward_entry_setup for integration, ramses_cc with title: RAMSES RF and entry_id: 1e8b3c93bcd3a75eb973a4553c08da4b, which is deprecated and will stop working in Home Assistant 2025.6, await async_forward_entry_setups instead at custom_components/ramses_cc/broker.py, line 217: self._platform_setup_tasks[platform] = self.hass.async_create_task(, please create a bug report at https://github.com/zxdavb/ramses_cc/issues
2024-08-17 18:40:13.470 WARNING (MainThread) [homeassistant.components.climate] Entity climate.37:252531 (<class 'custom_components.ramses_cc.climate.RamsesHvac'>) implements HVACMode(s): auto, off and therefore implicitly supports the turn_on/turn_off methods without setting the proper ClimateEntityFeature. Please create a bug report at https://github.com/zxdavb/ramses_cc/issues
2024-08-17 18:40:20.154 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' accesses hass.helpers.event. This is deprecated and will stop working in Home Assistant 2024.11, it should be updated to import functions used from event directly at custom_components/hacs/base.py, line 630: self.hass.helpers.event.async_track_time_interval(, please create a bug report at https://github.com/hacs/integration/issues
2024-08-17 18:40:20.349 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-17 18:40:20.553 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-17 18:40:20.575 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-17 18:40:20.590 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-17 18:40:20.803 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-17 18:40:21.994 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-17 18:40:22.130 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-17 18:40:22.143 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-17 18:40:22.154 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-17 18:40:22.410 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-17 18:40:22.424 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-18 00:40:20.432 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-18 00:40:20.444 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-18 00:40:20.465 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-18 00:40:20.483 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-18 06:40:20.408 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-18 06:40:20.422 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-18 06:40:20.433 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-18 06:40:20.463 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-18 07:18:08.943 WARNING (MainThread) [ramses_tx.transport] *** sync cycle stats: 0.095, avg: 0.095, lower: 0.095, upper: 0.095, times: ['0.095']
2024-08-18 12:40:20.411 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-18 12:40:20.435 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-18 12:40:20.451 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-18 12:40:20.462 WARNING (MainThread) [homeassistant.util.json] json_loads was called from hacs, this is a deprecated function which will be removed in HA Core 2025.8. Use homeassistant.util.json.json_loads instead, please create a bug report at https://github.com/hacs/integration/issues
2024-08-18 14:51:08.798 WARNING (MainThread) [ramses_tx.transport] *** sync cycle stats: 0.021, avg: 0.058, lower: 0.021, upper: 0.095, times: ['0.095', '0.021']
2024-08-18 16:10:25.276 WARNING (MainThread) [ramses_tx.transport] *** sync cycle stats: 0.105, avg: 0.074, lower: 0.021, upper: 0.105, times: ['0.095', '0.021', '0.105']
2024-08-18 16:25:31.271 WARNING (MainThread) [ramses_tx.transport] *** sync cycle stats: 0.094, avg: 0.079, lower: 0.021, upper: 0.105, times: ['0.095', '0.021', '0.105', '0.094']
2024-08-18 17:14:35.763 WARNING (MainThread) [ramses_tx.transport] *** sync cycle stats: 0.033, avg: 0.070, lower: 0.021, upper: 0.105, times: ['0.095', '0.021', '0.105', '0.094', '0.033']

This is a helpful hint that should not be ignored (see the wiki):

2024-08-17 18:40:11.312 WARNING (MainThread) [custom_components.ramses_cc.broker] 
The config schema is not minimal (consider minimising it)

This is what it is:

2024-08-17 18:39:57.561 WARNING (SyncWorker_0) [homeassistant.loader] 
We found a custom integration ramses_cc which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

This can be ignored, it will be made a DEBUG (EXPERIMENTAL will be removed):

2024-08-17 18:40:11.071 WARNING (ImportExecutor_0) [ramses_tx.transport] 
EXPERIMENTAL: Using pyserial-asyncio-fast in place of pyserial-asyncio

These don’t need to be warnings, will be made a DEBUG:

2024-08-17 18:40:11.453 WARNING (MainThread) [ramses_rf.gateway] 
GATEWAY: Restoring a cached packet log...
2024-08-17 18:40:11.812 WARNING (MainThread) [ramses_rf.gateway] 
GATEWAY: Restored, resuming

This has been fixed and will be in the next release:

2024-08-17 18:40:11.837 WARNING (MainThread) [homeassistant.helpers.frame] 
Detected that custom integration 'ramses_cc' calls async_forward_entry_setup...

This needs looking at (someone could raise an issue, please):

2024-08-17 18:40:13.470 WARNING (MainThread) [homeassistant.components.climate] 
Entity climate.37:252531 (<class 'custom_components.ramses_cc.climate.RamsesHvac'>) implements HVACMode(s): auto, off and therefore implicitly supports the turn_on/turn_off methods without setting the proper ClimateEntityFeature. Please create a bug report at https://github.com/zxdavb/ramses_cc/issues

These can be ignored (should be removed):

2024-08-18 07:18:08.943 WARNING (MainThread) [ramses_tx.transport] 
*** sync cycle stats: 0.095, avg: 0.095, lower: 0.095, upper: 0.095, times: ['0.095']

This has also been fixed:

2024-08-18 09:53:49.840 WARNING (MainThread) [homeassistant.util.loop] 
Detected blocking call to open with args ('/config/packet.log', 'a') inside the event loop by custom integration 'ramses_cc' ...

Thanks for all the explanations.
I issued the requested bug report.