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

Thank you for the update! I have updated to 0.41.16.
I had to reconfigure the serial port to make it work. The id was set to a device I do not have (with Arduino in the name and I have an evofw3).

I saw one warning in the log:
2024-03-31 00:03:31.847 WARNING (MainThread) [ramses_tx.message] I — 30:069468 --:------ 30:069468 3110 004 01000010 < Packet idx is 01, but expecting no idx (00) (0xAB)

Is it worth creating an issue and providing a packet log for it?

Upgraded to 0.41.16 and all existing dashboard items and automations are working.
I’ve also tried removing 5sec delays I had between setting temp on two zones and both got set (previousley only first one would set, hence the delay)
Thanks for the update

Running 0.41.16

I’ve put in a value( regex) to look for in advanced features.
After restart HA there does not seem to be an existing entity event.ramses_cc_message.
The values I look for are appearing in the packet.log, but don’t see

[homeassistant.core] Bus:Handling <Event ramses_cc_message

Do I need to do more then just fill out the regex to start ramsescc to look at specific data in the packets and triggering events

Well I do see the event in the log now. Needed obviously to remove the " " shown in wiki :slight_smile:

but remains how to react on this with an automation as there is no entity.
in first line you see an entity, in the others not.
Any idea ? as in the wiki it is stated that there should be a event.ramses_cc_message entity…

2024-04-02 17:34:23.445 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.total_power_naar_net_hoog, old_state=<state sensor.total_power_naar_net_hoog=13876501; state_class=total, unit_of_measurement=Wh, device_class=energy, friendly_name=Total Power naar net Hoog @ 2024-04-02T17:34:13.369130+02:00>, new_state=<state sensor.total_power_naar_net_hoog=13876502; state_class=total, unit_of_measurement=Wh, device_class=energy, friendly_name=Total Power naar net Hoog @ 2024-04-02T17:34:23.445326+02:00>>
2024-04-02 17:34:34.009 INFO (MainThread) [ramses_rf.dispatcher] ||  37:012161 |  37:252531 |  I | fan_mode         |      || {'fan_mode': 'medium', '_scheme': 'orcon', '_mode_idx': '02', '_mode_max': '04'}
2024-04-02 17:34:34.010 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event ramses_cc_message[L]: dtm=2024-04-02T17:34:34.007999, src=37:012161, dst=37:252531, verb= I, code=22F1, payload=fan_mode=medium, _scheme=orcon, _mode_idx=02, _mode_max=04, packet= I --- 37:012161 37:252531 --:------ 22F1 003 000204>
2024-04-02 17:34:34.258 INFO (MainThread) [ramses_rf.dispatcher] ||  37:012161 |  37:252531 |  I | fan_mode         |      || {'fan_mode': 'medium', '_scheme': 'orcon', '_mode_idx': '02', '_mode_max': '04'}
2024-04-02 17:34:34.258 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event ramses_cc_message[L]: dtm=2024-04-02T17:34:34.257052, src=37:012161, dst=37:252531, verb= I, code=22F1, payload=fan_mode=medium, _scheme=orcon, _mode_idx=02, _mode_max=04, packet= I --- 37:012161 37:252531 --:------ 22F1 003 000204>
2024-04-02 17:34:34.508 INFO (MainThread) [ramses_rf.dispatcher] ||  37:012161 |  37:252531 |  I | fan_mode         |      || {'fan_mode': 'medium', '_scheme': 'orcon', '_mode_idx': '02', '_mode_max': '04'}
2024-04-02 17:34:34.509 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event ramses_cc_message[L]: dtm=2024-04-02T17:34:34.507074, src=37:012161, dst=37:252531, verb= I, code=22F1, payload=fan_mode=medium, _scheme=orcon, _mode_idx=02, _mode_max=04, packet= I --- 37:012161 37:252531 --:------ 22F1 003 000204>
20

Sorry to have bothered you all with my learning curve.

automation working as well

  trigger:
  - platform: event
    event_type: ramses_cc_message

instead of what is in the wiki

trigger:
  - platform: state
    entity_id: event.ramses_cc_message
1 Like

Ooh, that’s great news. Is it also fixed in 0.31.16? It’ll keep me busy with some more complex scheduling if so!

@zxdavb

I am still getting random serial port initialisation errors.

I have two separate systems and they both randomly generate the same error. If I reboot the system enough times it eventually works but it’s so inconsistent. I’ve been using this integration for years without a hitch so I think it has something to do with the recent refactoring?

2024-04-03 21:55:55.042 ERROR (MainThread) [custom_components.ramses_cc] There is a problem with the serial port: Transport did not initialise successfully
2024-04-03 21:55:55.044 ERROR (MainThread) [homeassistant.setup] Setup failed for custom integration 'ramses_cc': Integration failed to initialize.

My yaml configuration looks like this

ramses_cc:
  serial_port: /dev/serial/by-id/usb-SparkFun_evofw3_atmega32u4-if00

Any tips to troubleshoot the problem?

Hi @zxdavb any tips to troubleshoot the problem, i.e. turn up logs?

It’s a right nightmare, I have to bounce HA about 10 times until it initialises and then it will be stable thereafter. Problem is, I can’t restart HA to perform updates, etc, knowing I have to repeat this sager!

It must be a misconfiguration in my yaml or there is something odd with the recent refactoring. As stated above I have two seperate systems with the same issue, whilst previously they were stable for years…

My suspicion is that is has something to do with this issue

0.30.5 Improvements include:

3d2f52e ramses_cc will fail early if serial port is mis-configured

Here is what I’ve tried so far

ls /dev/serial/by-id/
usb-SparkFun_evofw3_atmega32u4-if00

Output from terminal

configuration.yaml
ramses_cc:
  serial_port: /dev/serial/by-id/usb-SparkFun_evofw3_atmega32u4-if00

The above is my default config.

configuration.yaml
ramses_cc:
 serial_port: /dev/ttyACM0

Testing this version, it didn’t improve …

I think the problem was introduced in the lastest series or possibly the series before that. I am currently on the latest release (0.31.16). What is the earliest release I can roll back too without re-configuration to confirm/validate it was working perfectly before? From memory, I think it was the (0.22.x) series.

Hi, question: I’ve reinstalled Home Assistant, this time not on my Raspberry Pi. But virtualized on my MacBook via UTM with the image: haos_generic-aarch64-x.x.qcow2 … so far so good… and USB forwarding is even working :)… but I’m experiencing exactly the same problem as on my Pi. When I adjust the configuration.yaml of HA, the changes are not applied after restarting HA… Only when I completely uninstall and reinstall ramses_cc, the changes take effect… very frustrating… am I doing something wrong?
I’m using ramses_cc 0.14.16… I SSH into HA and edit the configuration.yaml in the config directory… then I check/validate the YAML in HA and restart HA… no changes in the ramses_cc section go through… other parts of the configuration do (for example, when I change the logger level)…
Am I doing something weird? Do you have experienced the same?

Looks like it works now. it’s because of the introduction of Config Flow… we need to make changes in the GUI at the integration screen… and not using the configuration.yaml anymore… i was not able to make changes before because of an none accepted parameter (block_list)… after removing… i can! problem solved… :pray:

Versions 0.31.17 and 0.41.17 just released.

No cosmetic changes - hopefully less issues on startup.

1 Like

I’ve updated to 0.41.17 and I get an error if I try to change a zone temperature via the Thermostat card in the UI. I also get an error if I try to change the system mode via the climate.set_system_mode service call. However, the ramses_cc.set_zone_mode service call seems to work OK. Reverting to 0.41.16 fixes it.

Here’s the log extract when trying to change the zone temperature in the UI:

2024-04-15 03:57:51.588 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [281473060354368] no running event loop
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 239, in handle_call_service
response = await hass.services.async_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2543, in async_call
response_data = await coro
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2580, in _execute_service
return await target(service_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 971, in entity_service_call
single_response = await _handle_entity_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1043, in _handle_entity_call
result = await task
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 917, in async_service_temperature_set
await entity.async_set_temperature(**kwargs)
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 717, in async_set_temperature
await self.hass.async_add_executor_job(
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/ramses_cc/climate.py", line 414, in set_temperature
self.async_set_zone_mode(setpoint=temperature)
File "/config/custom_components/ramses_cc/climate.py", line 456, in async_set_zone_mode
self._device.set_mode(mode=mode, setpoint=setpoint, until=until)
File "/usr/local/lib/python3.12/site-packages/ramses_rf/system/zones.py", line 759, in set_mode
return self._send_cmd(cmd)
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/ramses_rf/entity_base.py", line 160, in _send_cmd
return self._gwy.send_cmd(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/ramses_rf/gateway.py", line 553, in send_cmd
task = asyncio.create_task(coro)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/tasks.py", line 417, in create_task
loop = events.get_running_loop()
^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: no running event loop
2024-04-15 03:57:56.927 WARNING (MainThread) [py.warnings] /usr/local/lib/python3.12/site-packages/aiohttp/helpers.py:701: RuntimeWarning: coroutine 'Gateway.async_send_cmd' was never awaited
def __init__(self, loop: asyncio.AbstractEventLoop) -> None:

Could you try changing the above to

self._loop.create_task(coro)

… and see what happens?

Otherwise, please raise an issue in the repo & I’ll put it on my to-do list.

Another issue is why we can’t have this class of error being picked up in the (rather thin) test suite.

Thx - I’ve changed that line and it seems to solve both problems. I’ll continue running with patched 0.41.17 to see if anything else crops up.

I thought I was doing a good thing… But seem to have introduced a bug - will roll it back, after seeing if I can get it into a test.

I’ve got this:

Detected that custom integration 'ramses_cc' accesses hass.helpers.storage. This is deprecated and will stop working...

I’ve not seen that message in my logs so far…

Hi,

when going to 0.41.17 I get multiple Failed to send errors. When going back to 0.41.16. They disappear again.

I run the SSM-D2 radio

here the logfile with errors.

2024-04-15 13:04:38.288 ERROR (MainThread) [ramses_rf.gateway] Failed to send 313F|RQ|01:007149: <ProtocolContext state=WantRply echo=313F|RQ|01:007149, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:04:42.197 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-04-15 13:04:42.838 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3EF0|RQ|10:057706: <ProtocolContext state=WantRply echo=3EF0|RQ|10:057706, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:04:44.272 ERROR (MainThread) [ramses_rf.gateway] Failed to send 2401|RQ|10:057706: <ProtocolContext state=WantRply echo=2401|RQ|10:057706, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:04:52.201 ERROR (MainThread) [ramses_rf.gateway] Failed to send 22F2|RQ|37:252531: <ProtocolContext state=WantRply echo=22F2|RQ|37:252531, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:04:53.124 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|12: <ProtocolContext state=WantRply echo=3220|RQ|10:057706|12, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:04:54.034 ERROR (MainThread) [ramses_rf.gateway] Failed to send 22F4|RQ|37:252531: <ProtocolContext state=WantRply echo=22F4|RQ|37:252531, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:04:54.968 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|13: <ProtocolContext state=WantRply echo=3220|RQ|10:057706|13, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:04:56.161 ERROR (MainThread) [ramses_rf.gateway] Failed to send 22F8|RQ|37:252531: <ProtocolContext state=WantEcho cmd_=22F8|RQ|37:252531, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:04:58.289 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|19: <ProtocolContext state=WantEcho cmd_=3220|RQ|10:057706|19, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:00.376 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|1A: <ProtocolContext state=WantEcho cmd_=3220|RQ|10:057706|1A, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:02.385 ERROR (MainThread) [ramses_rf.gateway] Failed to send 22F1|RQ|37:252531: <ProtocolContext state=WantEcho cmd_=22F1|RQ|37:252531, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:04.208 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|1B: <ProtocolContext state=WantRply echo=3220|RQ|10:057706|1B, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:06.218 ERROR (MainThread) [ramses_rf.gateway] Failed to send 2210|RQ|37:252531: <ProtocolContext state=WantEcho cmd_=2210|RQ|37:252531, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:08.229 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|1C: <ProtocolContext state=WantEcho cmd_=3220|RQ|10:057706|1C, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:10.240 ERROR (MainThread) [ramses_rf.gateway] Failed to send 2349|RQ|01:007149|00: <ProtocolContext state=WantEcho cmd_=2349|RQ|01:007149|00, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:12.294 ERROR (MainThread) [ramses_rf.gateway] Failed to send 2349|RQ|01:007149|02: <ProtocolContext state=WantEcho cmd_=2349|RQ|01:007149|02, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:14.305 ERROR (MainThread) [ramses_rf.gateway] Failed to send 22E0|RQ|37:252531: <ProtocolContext state=WantEcho cmd_=22E0|RQ|37:252531, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:16.672 ERROR (MainThread) [ramses_rf.gateway] Failed to send 2349|RQ|01:007149|01: <ProtocolContext state=WantEcho cmd_=2349|RQ|01:007149|01, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:18.684 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|05: <ProtocolContext state=WantEcho cmd_=3220|RQ|10:057706|05, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:20.692 ERROR (MainThread) [ramses_rf.gateway] Failed to send 22E5|RQ|37:252531: <ProtocolContext state=WantEcho cmd_=22E5|RQ|37:252531, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:22.719 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|73: <ProtocolContext state=WantEcho cmd_=3220|RQ|10:057706|73, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:24.728 ERROR (MainThread) [ramses_rf.gateway] Failed to send 22E9|RQ|37:252531: <ProtocolContext state=WantEcho cmd_=22E9|RQ|37:252531, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:26.741 ERROR (MainThread) [ramses_rf.gateway] Failed to send 313E|RQ|37:252531: <ProtocolContext state=WantEcho cmd_=313E|RQ|37:252531, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:28.751 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|01: <ProtocolContext state=WantEcho cmd_=3220|RQ|10:057706|01, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:30.761 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3222|RQ|37:252531: <ProtocolContext state=WantEcho cmd_=3222|RQ|37:252531, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:32.771 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|11: <ProtocolContext state=WantEcho cmd_=3220|RQ|10:057706|11, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:35.770 ERROR (MainThread) [ramses_rf.gateway] Failed to send 10D0|RQ|37:252531: <ProtocolContext state=WantEcho cmd_=10D0|RQ|37:252531, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:38.244 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|00: <ProtocolContext state=WantEcho cmd_=3220|RQ|10:057706|00, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:05:44.848 ERROR (MainThread) [ramses_rf.gateway] Failed to send 2401|RQ|10:057706: <ProtocolContext state=WantEcho cmd_=2401|RQ|10:057706, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:06:08.362 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|0E: <ProtocolContext state=WantEcho cmd_=3220|RQ|10:057706|0E, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:06:10.371 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|0F: <ProtocolContext state=WantEcho cmd_=3220|RQ|10:057706|0F, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:06:12.379 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|30: <ProtocolContext state=WantEcho cmd_=3220|RQ|10:057706|30, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:06:14.386 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|31: <ProtocolContext state=WantEcho cmd_=3220|RQ|10:057706|31, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:06:16.398 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|38: <ProtocolContext state=WantEcho cmd_=3220|RQ|10:057706|38, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:06:18.407 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|39: <ProtocolContext state=WantEcho cmd_=3220|RQ|10:057706|39, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:06:38.244 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|00: <ProtocolContext state=WantEcho cmd_=3220|RQ|10:057706|00, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:06:44.850 ERROR (MainThread) [ramses_rf.gateway] Failed to send 2401|RQ|10:057706: <ProtocolContext state=WantEcho cmd_=2401|RQ|10:057706, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:07:37.152 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|00: <ProtocolContext state=WantRply echo=3220|RQ|10:057706|00, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:07:38.069 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|03: <ProtocolContext state=WantRply echo=3220|RQ|10:057706|03, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:07:38.984 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|06: <ProtocolContext state=WantRply echo=3220|RQ|10:057706|06, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:07:39.901 ERROR (MainThread) [ramses_rf.gateway] Failed to send 3220|RQ|10:057706|7F: <ProtocolContext state=WantRply echo=3220|RQ|10:057706|7F, tx_count=4/4>: Exceeded maximum retries
2024-04-15 13:07:43.804 ERROR (MainThread) [ramses_rf.gateway] Failed to send 2401|RQ|10:057706: <ProtocolContext state=WantRply echo=2401|RQ|10:057706, tx_count=4/4>: Exceeded maximum retries

I’ve just seem another error in the log while running 0.41.17:

2024-04-15 12:38:46.224 ERROR (MessageIndex.housekeeping) [root] Uncaught thread exception
Traceback (most recent call last):
File "/usr/local/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
self.run()
File "/usr/local/lib/python3.12/threading.py", line 1431, in run
self.function(*self.args, **self.kwargs)
File "/usr/local/lib/python3.12/site-packages/ramses_rf/database.py", line 203, in _housekeeping
self._cu.execute("SELECT dtm FROM messages WHERE dtm < ?", (dtm,))
sqlite3.ProgrammingError: SQLite objects created in a thread can only be used in that same thread. The object was created in thread id 281473038860320 and this is thread id 281472141092984.

I’ve also seen one “Failed to send” error in about 2 hours:

2024-04-15 12:58:54.344 ERROR (MainThread) [ramses_rf.gateway] Failed to send 0006|RQ|01:216136: <ProtocolContext state=WantRply echo=0006|RQ|01:216136, tx_count=4/4>: Exceeded maximum retries

I’m pulling the 0.x.17 releases - the underlying library has introduced (too many) errors that are only exposed in a HA environment and have passed my CI scripts.

Maybe cause I’m in a dev environment - it will come to all, unless I sort it.