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

I don’t know if it is needed or not, but I do specify baud rate:

ramses_cc:
  advanced_features:
    send_packet: true
    message_events: None
  serial_port:
    port_name: /dev/serial/by-id/usb-SparkFun_evofw3_atmega32u4-if00
    baudrate: 115200

Oh I didn’t know that serial_port had port_name: and baudrate: parameters. You don’t need to specify it for the HGI80 or the 32u4 hardware but when you use the NanoCUL with the 328p MCU you often have to use a lower baud rate of 57600 to help the SW UART keep up. But I didn’t know if ramses_cc had been changed to allow variable baud rates.

OK. Have been experimenting with the NanoCUL with the Orcon fan and CO2 remote for a few days…
Two things I have for my wishlist now…

The first one:

I have faked the CO2 remote to be able to send commands, but I am not able to receive the CO2 values. Is it possible to pickup those reports like :
I — 32:102225 --:------ 32:102225 1298 003 000268
Or from the Fan:
I — 29:207706 --:------ 29:207706 31D9 003 000003
And then create a sensor so I also could have some status info.

I have no idea how to implement thing like this. SO any help would be great!

2nd one:

Also I am not able to set my away mode somehow. I copied this line from the packetlog
I — 32:102225 29:207706 --:------ 22F3 007 00520C00040404
But when I try to send the command with HA. I get an error:
image
A code like this will roll out:
I — 18:075527 63:262142 --:------ 7FFF 023 00110185E8E9ED7532324631204933323A313032323235
Homeassistantlog:

2023-01-25 13:31:38.063 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [281472173572304] Corrupt packet: Bad frame: invalid structure
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 200, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1755, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1792, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/components/script/__init__.py", line 473, in _service_handler
    await self.async_turn_on(variables=service.data, context=service.context)
  File "/usr/src/homeassistant/homeassistant/components/script/__init__.py", line 432, in async_turn_on
    await coro
  File "/usr/src/homeassistant/homeassistant/components/script/__init__.py", line 462, in _async_run
    return await self.script.async_run(script_vars, context)
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1524, in async_run
    await asyncio.shield(run.async_run())
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 409, in async_run
    await self._async_step(log_exceptions=False)
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 453, in _async_step
    self._handle_exception(
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 476, in _handle_exception
    raise exception
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 684, in _async_call_service_step
    await service_task
  File "/usr/src/homeassistant/homeassistant/core.py", line 1755, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1792, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service
    await service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 678, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 958, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 715, in _handle_entity_call
    await result
  File "/config/custom_components/ramses_cc/remote.py", line 189, in async_send_command
    cmd = Command(
  File "/usr/local/lib/python3.10/site-packages/ramses_rf/protocol/command.py", line 295, in __init__
    super().__init__(frame)  # may raise InvalidPacketError if it is invalid
  File "/usr/local/lib/python3.10/site-packages/ramses_rf/protocol/frame.py", line 86, in __init__
    raise InvalidPacketError("Bad frame: invalid structure")
ramses_rf.protocol.exceptions.InvalidPacketError: Corrupt packet: Bad frame: invalid structure

Thanks for the help!

I think you’re missing a leading space before the I in your command string. Try this one:

        away: " I --- 32:102225 29:207706 --:------ 22F3 007 00520C00040404"

This is a timed mode? My 15RF sends this for away (not timed, so it stays in this mode until told otherwise):

        away: " I --- 32:102225 29:207706 --:------ 22F1 003 000004"
1 Like

Spot on! You were right about the leading space!

Yeah it seems to be a timed mode code. Maybe because I have the CO2 remote? I guess it might be different with the 6 button remote?

Hey there! found out another problem with the NanoCUL.
It seems randomly being not available. When trying to send a command this morning. It failed. So checking out the binary_sensor.18_075527_status . I see the next thing.


A Home assistant reboot fixed the thing. Is there anyway to reload this integration without rebooting HA?

Maybe a setting could be the case as well?
I have my settings like this right now:

ramses_cc:
  serial_port: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0
  
  scan_interval: 30

  packet_log:
    file_name: packet.log
    rotate_backups: 28

  known_list:
    18:075527: # nanoCul 868 Mhz dongle?
      class: HGI
      _note: nanoCul 868 Mhz
    32:102225: # Orcon CO2 15RF remote 32:102225
      class: REM
      faked: true
      _note: Orcon 15RF
      commands:
        away: " I --- 32:102225 29:207706 --:------ 22F3 007 00520C00040404"
        auto: " I --- 32:102225 29:207706 --:------ 22F1 003 000404"
        timer1_60mins_low: " I --- 32:102225 29:207706 --:------ 22F3 007 00123C01040404"
        timer2_13hours_medium: " I --- 32:102225 29:207706 --:------ 22F3 007 00123C02040404"
        timer3_60mins_high: " I --- 32:102225 29:207706 --:------ 22F3 007 00123C03040404"
    29:207706: # Orcon MVS-15 fan
      class: FAN
      _note: Orcon MVS-15

    # 32:102225: {class: CO2}
    32:102841: {class: CO2} #buren?
    # 32:236773: # Orcon MVS-15 humidity sensor?
    #   class: HUM
    # 32:104339?
    # 32:102836?
 
  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

This is likely an insufficiency in the code, which I can address.

If you wish, send (or PM) me a 24h packet log, along with the make/model of the 32:236773 device. Does it have a movement sensor / presence detector?

I think I know what this is…

Please PM me a packet log, and I’ll let you know

I just send you a part of the log. It seems I am not able to send a full 24hr log. but anyways…

I noticed another FTDI USB was also interfered around the same time which never had problems before… It is used for monitoring the Utility meter with P1 connection.

as for today it seemed to be not having big issues…

But I guess the line should be full grey…

David,
I’d appreciate a confirmation on this before precious spending money …
Thankssss

Hi, I’ve been struggling to get all this working for the first time and I’ve got this error too with TEMP_CELIUS etc. I’m on the latest versions 2023.1.7 and 0.21.40 (although it also says 0.22.3). I suspect there’s something quite simple that I’ve not done. All help gratefully received. thx

Do not buy either a HGI80 (from Honeywell) or an evofw3-compatible (same thing, but from community) device - the support for such with a CM927 (or similar) is very basic.

Instead, replace your CM927 with something that can connect to the Internet (via Honeywell/Resideo’s TCC website):

  • a Round Thermostat (TR87RF) and an RFG100 to bind to it, or
  • an older evohome controller and an RFG100 to bind to it, or
  • a newer evohome (that has the equivalent of an RFG100 in it)

The Round Thermostat / Evohome controller will bind to the BDR91 instead of the CM927.

Then, use HA’s official evohome integration - you can later add a HGI80/evofw3 if you like, and use the ramses integration too (it is not worth doing so with a CM927)

The RFG100 is an RF-to-TCC (i.e. Internet) gateway. The HGI80 - is the same as an evofw3 dongle and - is an RF to HA (i.e. USB) gateway. Neither (normally) bind to your BDR91.

Maybe a bit offtopic, but I would like to calculate the consumption of each zone for a certain period by using the amount of time or percentage a TRV is on.

Does anybody already tried this or has a blueprint to start with?

Ok, thanks for this clear guideline.

I am getting a lot of PMs, etc. - some at my request…

I have a significantly reduced capacity for this project at the moment, so please bear with me.

It sounds like you have a corrupted install… remove and re-install ramses_cc via HACS.

You may even to do a pip uninstall ramses_rf via the CLI.

Hey everyone, I am looking to control a bunch of HR92 TRVs using the SSM-D2 plugged into a Raspberry Pi running Home Assistant. I don’t have any experience with either Home Assistant nor controlling RF devices. Can anyone confirm if my proposed setup will be able to interface with the HR92 devices?

If I understand you right:

  • you want to control a bunch of TRVs with an evofw3-compatible device
  • you will do that instead of an evohome controller, or similar (that the TRVs expect to be talking to)
  • you make of mention of a heat source relay, such as a BDR91 or an R8810…

Answer: You could, but the effort involved would be horrendous. I would suggest it would be beyond almost all people (it might take me a year to implement this in python working P/T), and I would strongly recommend against wasting your time by trying.

Ah, good to know. I live in an appartment building with a shared heat source (which I don’t have any control over), so the only thing I would like to control is the individual TRV temperature targets (for some reason with no controller connected they revert to 20C after a while, otherwise I could simply use the manual adjustment knobs on the TVRs), I don’t know if that changes the situation but I guess i’ll have to find another way…

You can use an evohome controller for that. You simply skip the boiler control setup.