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

Can you check the attributes on that binary sensor? I think it represents your gateway device. It may show unmapped devices in the “Other list”.

Schema  {} 
Config  enforce_known_list: true 
Known list
    - '32:xxxxxx': class: ventilator
    - '18:xxxxxx': class: gateway_interface
    - '37:xxxxxx': class: co2_sensor
    - '29:xxxxxx': class: switch
    - '37:yyyyyy': class: switch faked: true 
Block list
Other list
is evofw3   true

This is what is shown on my binary sensor attributes. I only have HRU devices, so I only have entries in the orphans_hvac list and the known_list dict. I have eavesdropping disabled. I’ll see what happens if I turn that on, I would expect my neighbours’ fans to show up in the “Other list” then.

The attributes on the sensor are :

Attributes
Schema
{}
Config
enforce_known_list: false
Known list
- '18:070686':
class: gateway_interface
Block list
Other list
is evofw3
true

Other list remains empty for me, with eavesdropping enabled. The packet.log shows plenty of other devices that are not mine.

@zxdavb Did something change there? It used to show my neighbours’ devices there, even with eavesdropping disabled…

Eavesdropping has to do with making decision about payloads (or not), not if a packets is ignored (or not) - in any case - every packet seen (valid or not) will end up in the packet log, so check that.

If relevant, try tuning dongle and/or leave it running and turn the Nuaire off/on & see?

My hardware works fine, my packet log contains many more devices than just mine.

What I meant is that I expected things to show up in the “Other list” too, I’m pretty sure an older version of the software put any devices in there that were seen but were not on my known list.

Version 0.22.1 released - includes bugfixes and a small enhancement.

ramses_cc bugfixes:

Bugfix: failure during HA startup:

None is of the wrong type ... @ data['ramses_cc']['advanced_features']['message_events']

Bugfix for ramses_cc:learn_command and remote:learn_command service calls:

"TypeError: must be exactly one command to learn"

Bugfix/Enhancement: Can’t use send_packet service to cast commands from gateway

  • can now use gateway’s sentinel id (18:000730) as destimation device_id

ramses_rf bugfixes:

Bugfix: failure to instantiate global orphans under certain circumstances

  • in configuration.yaml: ramses_cc: {heat_orphans: xxx, hvac_orphans: yyy}

Possible bugfix: incorrect error logged for BDR91Ts

Support the development of ramses_rf by reporting this packet (byte 5: )
1 Like

I misunderstood - I thought we were taking about @dgillings’s system.

Not sure - would have to check for a regression.

1 Like

I received my nanoCUL today.
(unfortunately the one from ebay from Smarthome Komponente)
I followed the wiki and everything was done according instructions.
However I receive no data/ packets in the logs.

When I send a command to a Evohome zone, I can see in the log the following, but no data/ logs in the packet.log

[custom_components.ramses_cc.coordinator] Saving the client state cache (packets, schema)...

Well, I’ve got one - and it works fine for me.

This is really an issue for Pete, me thinks - as you’ve installed evofw3 and there’s no evidence that bit is working.

I seem to recall you have to make sure you chose the right board, etc. Have a look at:

Whats the difference between climate.controller and climate.ramses_cc_01_xxxxxx_00 (which is the actual climate for the zone which has evotouch set)?

The temps dont match and ‘call for heat/heating’ seems totally random…

You are making an assumption that I hope I can clear up for you…

All climate entities are zones, with the exception of the climate.controller, which is the system as a whole (i.e. not a zone): maybe it should be called climate.temperature_control_system (TCS) instead.

For example:

  • climate.ramses_cc_01_xxxxxx_00 can be set to FollowSchedule, PermanentOverride, AdvancedOverride, or PermamentOverride
  • climate.controller can be set to Auto, Away, HeatingOff, etc.

In addition, the former can have a setpoint (target temperature), the latter cannot.

The Controller has a temperature sensor, that maybe is configured as the sensor for a zone (or not):

  • sensor.ramses_cc_01_xxxxxx

The temperature of climate.controller is an anachronism. All climate entities must have a current temperature, but the TCS (the system as a whole, i.e. the whole house) doesn’t have such a concept…

So, what to do?

The temperature of the TCS entity (climate.controller) is the average of all the zones that have a non-null temperature. This is a HA convention.

Your assumption is that the controller device is a monolithic unit. No. It two things: a TCS and a temperature sensor (which, like any such sensor, can be configured as a zone sensor) that happen to be in the same plastic box.

I hope that answers the question - it should be in the FAQ section of the wiki, I guess…

Thanks I had a look at the wiki, and when I connect the nanoCUL to ArduinoIDE monitor I get following data, so I presume it works.

# evofw3 0.7.1
070  I --- 04:212668 --:------ 01:217699 2309 003 020640
074  I --- 01:217699 --:------ 01:217699 0009 003 FC00FF
073  I --- 04:212668 --:------ 01:217699 12B0 003 020000
072  I --- 04:212668 --:------ 01:217699 12B0 003 020000

I have a very simple config, but no packets are logged in HA. (after 24h)

ramses_cc:
  serial_port: 
     port_name: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0
  packet_log:
    file_name: packet.log

Yep - looks good. Are you moving it elsewhere in the house when it is connected to HA?

If so - coudl be a reception problem? Take a TRV off a radiator at with it <1m from the dongle, press a button or two - that will let you know if it is a simple problem of RF reception.

Have you 100% confirmed you’ve got the correct port_name?

Do any errors show up in the home-assistant.log?

At most, you should only have to wait 5-6 mins between packets (even that is a little excessive).

I tried to hold it a TRV close to the HA server, but no effect.

This is my log (I just installed the latest beta to try)

2022-11-09 14:11:07.506 INFO (MainThread) [custom_components.ramses_cc] ramses_cc v0.22.1, is using ramses_rf v0.22.1
2022-11-09 14:11:07.506 DEBUG (MainThread) [custom_components.ramses_cc] 

Config = OrderedDict([('serial_port', OrderedDict([('port_name', '/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0'), ('dsrdtr', False), ('rtscts', False), ('xonxoff', True), ('timeout', 0), ('baudrate', 115200)])), ('known_list', OrderedDict([('01:217699', OrderedDict([('class', 'HGI'), ('alias', None), ('faked', None), ('_domain', 'heat')]))])), ('packet_log', OrderedDict([('file_name', 'packet.log'), ('rotate_backups', 7)])), ('block_list', {}), ('scan_interval', datetime.timedelta(seconds=60)), ('ramses_rf', {'max_zones': 12, 'disable_sending': False, 'disable_discovery': False, 'enable_eavesdrop': False, 'use_aliases': False, 'reduce_processing': 0, 'use_native_ot': 'prefer', 'enforce_known_list': False}), ('restore_cache', {'restore_schema': True, 'restore_state': True}), ('advanced_features', {'send_packet': False, 'message_events': None})])
2022-11-09 14:11:07.733 DEBUG (MainThread) [custom_components.ramses_cc.schemas] Loaded a cached schema: {'main_tcs': None, 'orphans_heat': [], 'orphans_hvac': []}
2022-11-09 14:11:07.733 DEBUG (MainThread) [custom_components.ramses_cc.schemas] A config schema was not provided
2022-11-09 14:11:07.733 INFO (MainThread) [custom_components.ramses_cc.schemas] Using the cached schema (cached schema is a superset of config schema)
2022-11-09 14:11:07.734 WARNING (MainThread) [ramses_rf.protocol.schemas] Best practice is exactly one gateway (HGI) in the known_list: []
2022-11-09 14:11:07.738 WARNING (MainThread) [ramses_rf.protocol.schemas] It is strongly recommended to use the known_list as a whitelist (device_id filter), configure: enforce_known_list = True
2022-11-09 14:11:07.741 INFO (MainThread) [custom_components.ramses_cc.coordinator] Success initialising with the cached schema: {'main_tcs': None, 'orphans_heat': [], 'orphans_hvac': []}
2022-11-09 14:11:07.741 INFO (MainThread) [custom_components.ramses_cc.coordinator] Restoring the client state cache (packets only)...
2022-11-09 14:11:07.836 INFO (MainThread) [homeassistant.setup] Setting up evohome
2022-11-09 14:11:07.842 WARNING (MainThread) [custom_components.solaredge_modbus_multi.hub] Advanced Power Control: StorEdge Control is enabled. Use at your own risk!
2022-11-09 14:11:07.854 WARNING (MainThread) [custom_components.solaredge_modbus_multi.hub] Advanced Power Control: Export Limit Control is enabled. Use at your own risk!
2022-11-09 14:11:07.856 INFO (MainThread) [ramses_rf.protocol.transport] RAMSES_RF protocol library v0.22.1, using PacketProtocolFile
2022-11-09 14:11:07.856 DEBUG (MainThread) [ramses_rf.protocol.transport] PacketProtocolFile.pause_writing()
2022-11-09 14:11:07.857 DEBUG (MainThread) [ramses_rf.protocol.transport] PacketProtocolFile.connection_made(<ramses_rf.protocol.transport.SerTransportRead object at 0x7fb3bdba8040>)
2022-11-09 14:11:07.858 WARNING (MainThread) [ramses_rf.protocol.transport] Not using any device filter: using a known_list (as a whitelist) is strongly recommended)
2022-11-09 14:11:07.860 DEBUG (MainThread) [ramses_rf.protocol.transport] PacketProtocolFile.pause_writing()
2022-11-09 14:11:07.912 INFO (MainThread) [custom_components.ramses_cc.coordinator] Restored the cached state.
2022-11-09 14:11:07.912 DEBUG (MainThread) [custom_components.ramses_cc.coordinator] Starting the RF monitor...

2022-11-09 14:11:07.938 INFO (MainThread) [ramses_rf.protocol.transport] RAMSES_RF protocol library v0.22.1, using PacketProtocolQos
2022-11-09 14:11:07.939 DEBUG (MainThread) [ramses_rf.protocol.protocol] MsgTransport._set_dispatcher(<bound method PacketProtocolQos.send_data of PacketProtocolQos(enforce_include=False)>)
2022-11-09 14:11:07.948 DEBUG (MainThread) [ramses_rf.protocol.transport] PacketProtocolQos.connection_made(SerialTransport(<_UnixSelectorEventLoop running=True closed=False debug=False>, PacketProtocolQos, Serial<id=0x7fb3bffbcca0, open=True>(port='/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=0, xonxoff=True, rtscts=False, dsrdtr=False)))
2022-11-09 14:11:07.948 WARNING (MainThread) [ramses_rf.protocol.transport] Not using any device filter: using a known_list (as a whitelist) is strongly recommended)
2022-11-09 14:11:07.949 DEBUG (MainThread) [ramses_rf.protocol.transport] PacketProtocolQos.resume_writing()
20
2022-11-09 14:11:08.055 DEBUG (MainThread) [custom_components.ramses_cc] 

Store = {'client_state': {'schema': {'main_tcs': None, 'orphans_heat': [], 'orphans_hvac': []}, 'packets': {}}, 'remotes': {}}

2022-11-09 14:11:08.055 DEBUG (MainThread) [custom_components.ramses_cc] Finished fetching ramses_cc data in 0.000 seconds (success: True)
2022-11-09 14:11:08.055 INFO (MainThread) [homeassistant.setup] Setup of domain ramses_cc took 0.5 seconds

2022-11-09 14:16:07.914 INFO (MainThread) [custom_components.ramses_cc.coordinator] Saving the client state cache (packets, schema)...
2022-11-09 14:21:07.914 INFO (MainThread) [custom_components.ramses_cc.coordinator] Saving the client state cache (packets, schema)...
2022-11-09 14:26:07.916 INFO (MainThread) [custom_components.ramses_cc.coordinator] Saving the client state cache (packets, schema)...
2022-11-09 14:31:07.917 INFO (MainThread) [custom_components.ramses_cc.coordinator] Saving the client state cache (packets, schema)...

So you definitely don’t get:

2022-11-09 16:15:07.197 ERROR (MainThread) [ramses_rf.protocol.transport] Failed to open /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0

… in your HA log? (I have to ask, as you have posted an edited log).

This is what I have:

2022-11-09 16:32:32.407 DEBUG (MainThread) [ramses_rf.protocol.transport] PacketProtocolQos.connection_made(SerialTransport(<_UnixSelectorEventLoop running=True closed=False debug=False>, PacketProtocolQos, Serial<id=0x7ff61b6c2260, open=True>(port='/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=0, xonxoff=True, rtscts=False, dsrdtr=False)))

If that doesn’t help: you’re not doing anything odd, like running in a VM, are you?

No VM, just HASSOS on a NUC

Could a Z-wave stick in the neighborhood cause interference?

2022-11-09 18:56:16.410 WARNING (MainThread) [ramses_rf.protocol.schemas] Best practice is exactly one gateway (HGI) in the known_list: []
2022-11-09 18:56:16.415 WARNING (MainThread) [ramses_rf.protocol.schemas] It is strongly recommended to use the known_list as a whitelist (device_id filter), configure: enforce_known_list = True
2022-11-09 18:56:16.418 INFO (MainThread) [custom_components.ramses_cc.coordinator] Success initialising with the cached schema: {'main_tcs': None, 'orphans_heat': [], 'orphans_hvac': []}
2022-11-09 18:56:16.418 INFO (MainThread) [custom_components.ramses_cc.coordinator] Restoring the client state cache (packets only)...
2022-11-09 18:56:16.547 INFO (MainThread) [homeassistant.setup] Setting up homekit_controller
2022-11-09 18:56:16.560 INFO (SyncWorker_2) [pyfritzhome.fritzhome] Updating Devices ...
2022-11-09 18:56:16.565 INFO (MainThread) [ramses_rf.protocol.transport] RAMSES_RF protocol library v0.22.1, using PacketProtocolFile
2022-11-09 18:56:16.565 DEBUG (MainThread) [ramses_rf.protocol.transport] PacketProtocolFile.pause_writing()
2022-11-09 18:56:16.576 INFO (MainThread) [homeassistant.setup] Setting up fritz
2022-11-09 18:56:16.576 INFO (MainThread) [homeassistant.setup] Setup of domain fritz took 0.0 seconds
2022-11-09 18:56:16.578 DEBUG (MainThread) [ramses_rf.protocol.transport] PacketProtocolFile.connection_made(<ramses_rf.protocol.transport.SerTransportRead object at 0x7fc8a2ac6f40>)
2022-11-09 18:56:16.578 WARNING (MainThread) [ramses_rf.protocol.transport] Not using any device filter: using a known_list (as a whitelist) is strongly recommended)
2022-11-09 18:56:16.579 DEBUG (MainThread) [ramses_rf.protocol.transport] PacketProtocolFile.pause_writing()
2022-11-09 18:56:16.744 INFO (MainThread) [homeassistant.setup] Setup of domain homekit_controller took 0.2 seconds
2022-11-09 18:56:16.744 INFO (MainThread) [custom_components.ramses_cc.coordinator] Restored the cached state.
2022-11-09 18:56:16.745 DEBUG (MainThread) [custom_components.ramses_cc.coordinator] Starting the RF monitor...
2022-11-09 18:56:16.747 INFO (MainThread) [ramses_rf.protocol.transport] RAMSES_RF protocol library v0.22.1, using PacketProtocolQos
2022-11-09 18:56:16.750 DEBUG (MainThread) [ramses_rf.protocol.protocol] MsgTransport._set_dispatcher(<bound method PacketProtocolQos.send_data of PacketProtocolQos(enforce_include=False)>)
2022-11-09 18:56:16.890 INFO (MainThread) [homeassistant.setup] Setting up hacs
2022-11-09 18:56:16.890 INFO (MainThread) [homeassistant.setup] Setup of domain hacs took 0.0 seconds
2022-11-09 18:56:16.892 DEBUG (MainThread) [ramses_rf.protocol.transport] PacketProtocolQos.connection_made(SerialTransport(<_UnixSelectorEventLoop running=True closed=False debug=False>, PacketProtocolQos, Serial<id=0x7fc8a1447eb0, open=True>(port='/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=0, xonxoff=True, rtscts=False, dsrdtr=False)))
2022-11-09 18:56:16.892 WARNING (MainThread) [ramses_rf.protocol.transport] Not using any device filter: using a known_list (as a whitelist) is strongly recommended)
2022-11-09 18:56:16.894 DEBUG (MainThread) [ramses_rf.protocol.transport] PacketProtocolQos.resume_writing()

I have no error when connecting to the serial port.
How can I verify the port? I checked in the hardware settings of HA

Could it be something with the bootloader?
I used the ‘standard’ bootloader

Yes it perfectly answers it, thanks!

Hello, I’m super sorry to ask an idiotic question but I’m having trouble following direction.

I have HA installed on a Pi4 and am using a SSM-D2 from indalo tech. I’m trying to control a Nuaire PIV instead of splashing out on their remote control.

I’ve got as far as the ramses configuration and can see things in the packet log:

2022-11-09 21:15:24.408 ERROR (MainThread) [ramses_rf.dispatcher]  I --- 30:112130 --:------ 30:112130 1F09 003 0005AA < TypeError(Invalid device type to be a controller: 30:112130 (RFG))
2022-11-09 21:17:49.409 ERROR (MainThread) [ramses_rf.dispatcher]  I --- 30:112130 --:------ 30:112130 1F09 003 0005AA < TypeError(Invalid device type to be a controller: 30:112130 (RFG))
2022-11-09 21:18:43.903 ERROR (MainThread) [ramses_rf.protocol.message]  I 025 30:112130 --:------ 30:112130 31D9 017 2100FF0000000000000000000000000000 < AssertionError(What!! (AA))
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/ramses_rf/protocol/message.py", line 338, in _validate
    return {**self._idx, **result}
  File "/usr/local/lib/python3.10/site-packages/ramses_rf/protocol/message.py", line 219, in _idx
    assert self._pkt._idx == "00", "What!! (AA)"
AssertionError: What!! (AA)
2022-11-09 21:20:14.411 ERROR (MainThread) [ramses_rf.dispatcher]  I --- 30:112130 --:------ 30:112130 1F09 003 0005AA < TypeError(Invalid device type to be a controller: 30:112130 (RFG))
2022-11-09 21:22:39.414 ERROR (MainThread) [ramses_rf.dispatcher]  I --- 30:112130 --:------ 30:112130 1F09 003 0005AA < TypeError(Invalid device type to be a controller: 30:112130 (RFG))
2022-11-09 21:25:04.417 ERROR (MainThread) [ramses_rf.dispatcher]  I --- 30:112130 --:------ 30:112130 1F09 003 0005AA < TypeError(Invalid device type to be a controller: 30:112130 (RFG))
2022-11-09 21:27:25.683 WARNING (MainThread) [ramses_rf.protocol.parsers]  I --- 30:112130 63:262142 --:------ 10E0 038 000001C90023006CFEFEFFFFFFFF1C0707E5425244472D30324A415330310000000000000000 < Support the development of ramses_rf by reporting this packet, with the make/model of device: RFG:112130 (device type 30 not known to have signature: 0001C90023006CFEFE)
2022-11-09 21:27:51.135 ERROR (MainThread) [ramses_rf.dispatcher]  I --- 30:112130 --:------ 30:112130 1F09 003 0005AA < TypeError(Invalid device type to be a controller: 30:112130 (RFG))
2022-11-09 21:30:16.138 ERROR (MainThread) [ramses_rf.dispatcher]  I --- 30:112130 --:------ 30:112130 1F09 003 0005AA < TypeError(Invalid device type to be a controller: 30:112130 (RFG))
2022-11-09 21:32:41.140 ERROR (MainThread) [ramses_rf.dispatcher]  I --- 30:112130 --:------ 30:112130 1F09 003 0005AA < TypeError(Invalid device type to be a controller: 30:112130 (RFG))
2022-11-09 21:34:00.229 WARNING (MainThread) [ramses_rf.entity_base] No response for task(000C|RP|01:090099|000E): throttling to 1/24h
2022-11-09 21:34:10.138 WARNING (MainThread) [ramses_rf.entity_base] No response for task(000C|RP|01:090099|010E): throttling to 1/24h
2022-11-09 21:34:20.048 WARNING (MainThread) [ramses_rf.entity_base] No response for task(10A0|RP|01:090099|00): throttling to 1/24h
2022-11-09 21:35:06.142 ERROR (MainThread) [ramses_rf.dispatcher]  I --- 30:112130 --:------ 30:112130 1F09 003 0005AA < TypeError(Invalid device type to be a controller: 30:112130 (RFG))
2022-11-09 21:37:28.647 WARNING (MainThread) [ramses_rf.entity_base] No response for task(000C|RP|01:090099|000F): throttling to 1/24h
2022-11-09 21:37:31.144 ERROR (MainThread) [ramses_rf.dispatcher]  I --- 30:112130 --:------ 30:112130 1F09 003 0005AA < TypeError(Invalid device type to be a controller: 30:112130 (RFG))

I don’t know what to do next, I’m not sure what class of device my PIV is and what numbers I should use to configure it. Should a device/entity magically shown up in HA by now? Do I need to look at the packet log and work out a number I should be using in the configuration? Do I need to pair/bind something with the PIV (it uses a pairing/binding method with the off-the-shelf control).

I’d appreciate any hints as to where I’m going wrong, I’m happy to read, I just don’t know what I’m doing. thanks

ramses_cc is great work, thanks a lot!

I’m trying to get it to work with my Orcon MVS-15 ventilation unit and I’m not sure what I’m missing, maybe my configuration is incomplete or I made some mistakes :slightly_smiling_face:

My setup:

  • Orcon MVS-15 with 15RF remote (the MVS-15 unit also has a built-in humidity sensor)
  • nanoCul USB dongle with evofw3 firmware. I started and completed the tuning procedure in evofw3 because I thought I wasn’t getting responses.
  • I’m using a bigger magnetic base antenna with the nanoCul

I started with the minimal setup for ramses_cc and I did get some logging, like:

2022-11-09T21:20:02.097536 ...  I --- 29:163367 32:236773 --:------ 22F1 003 000104 # 22F1| I|29:163367
2022-11-09T21:20:02.124372 ...  I --- 32:236773 --:------ 32:236773 31D9 003 000001 # 31D9| I|32:236773|00 (00)
2022-11-09T21:22:33.198788 063  I --- 29:163367 32:236773 --:------ 22F1 003 000404
2022-11-09T21:22:33.212834 063  I --- 32:236773 --:------ 32:236773 31D9 003 000004
2022-11-09T21:23:36.979362 068  I --- 29:163367 32:236773 --:------ 22F1 003 000204
2022-11-09T21:23:36.995382 063  I --- 32:236773 --:------ 32:236773 31D9 003 000002
2022-11-09T21:23:37.046597 063  I --- 32:236773 --:------ 32:236773 31D9 003 000002
2022-11-09T21:25:39.159801 094  I 190 37:250081 --:------ 37:250081 31D9 017 0006010020202020202020202020202000

29:163367 is definitely the 15RF remote. I assume that 32:236773 is the Orcon MVS-15.
I’m not sure what 37:250081 is (more about this later)

I wasn’t sure what auto-discovery would do for me and nothing was happening except for some ramses_rf logging in the HA logging so I ended up with this configuration (also using learn command):

# Transceiver for HVAC control (868 Mhz)
ramses_cc:
  # scan_interval: 30
  serial_port: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0
  packet_log:
    file_name: packet.log
    rotate_backups: 28
  known_list:
    18:070912: # nanoCul 868 Mhz dongle
      class: HGI
      _note: nanoCul 868 Mhz
    29:163367: # Orcon 15RF remote
      class: REM
      _note: Orcon 15RF
      commands:
        auto: " I --- 29:163367 32:236773 --:------ 22F1 003 000404"
        low: " I --- 29:163367 32:236773 --:------ 22F1 003 000104"
        medium: " I --- 29:163367 32:236773 --:------ 22F1 003 000204"
        high: " I --- 29:163367 32:236773 --:------ 22F1 003 000304"
        away: " I --- 29:163367 32:236773 --:------ 22F1 003 000004"
        timer_15mins: " I --- 29:163367 32:236773 --:------ 22F3 007 00020F03040000"
        timer_30mins: " I --- 29:163367 32:236773 --:------ 22F3 007 00021E03040000"
        timer_60mins: " I --- 29:163367 32:236773 --:------ 22F3 007 00023C03040000"
    29:123456: # Fake remote for use with HA
      class: REM
      faked: True
      _note: Fake Orcon 15RF
      commands:
        auto: " I --- 29:123456 32:236773 --:------ 22F1 003 000404"
        low: " I --- 29:123456 32:236773 --:------ 22F1 003 000104"
        medium: " I --- 29:123456 32:236773 --:------ 22F1 003 000204"
        high: " I --- 29:123456 32:236773 --:------ 22F1 003 000304"
        away: " I --- 29:123456 32:236773 --:------ 22F1 003 000004"
        timer_15mins: " I --- 29:123456 32:236773 --:------ 22F3 007 00020F03040000"
        timer_30mins: " I --- 29:123456 32:236773 --:------ 22F3 007 00021E03040000"
        timer_60mins: " I --- 29:123456 32:236773 --:------ 22F3 007 00023C03040000"
    32:236773: # Orcon MVS-15 fan
      class: FAN
      _note: Orcon MVS-15
    # 37:250081: # Orcon MVS-15 fan?
    #   class: FAN
    #   _note: Orcon MVS-15
    # 32:236773: # Orcon MVS-15 humidity sensor?
    #   class: HUM
  ramses_rf:
    enforce_known_list: false # TODO: set to true when finished

Based on the packet log I would say that 32:236773 is the Orcon MVS-15 but when I configure it with class FAN it doesn’t work (not available). When I configure 37:250081 as FAN it becomes available but it’s not updated when I change the fan speed using a remote etc. I’m confused…

I didn’t bind any of the devices to the fan unit except for the 15RF remote, the fake remote works using the send command service when I use the id of the real 15RF remote (29:163367) in the command instead of the fake remote’s id.

Some probably relevant HA logging:

2022-11-09 22:37:30.885 INFO (MainThread) [ramses_rf.dispatcher] || FAN:236773 |  18:070912 | RP | fan_mode         |      || {'fan_mode': 'auto', '_scheme': 'orcon', '_mode_idx': '04', '_mode_max': '04'}
2022-11-09 22:37:30.885 INFO (MainThread) [ramses_rf.dispatcher] RP --- 32:236773 18:070912 --:------ 22F1 003 000404 < Invalid code for 32:236773 (FAN) to Tx: 22F1
2022-11-09 22:37:30.928 INFO (MainThread) [ramses_rf.dispatcher] || HVC:250081 |            |  I | hvac_state       |      || {'exhaust_fan_speed': 0.005, 'fan_info': 'speed 1', 'remaining_time': 0.0, 'air_quality': None, 'air_quality_base': 0, 'co2_level': None, 'indoor_humidity': 0.55, 'outdoor_humidity': None, 'exhaust_temperature': None, 'supply_temperature': None, 'indoor_temperature': None, 'outdoor_temperature': None, 'speed_cap': 63488, 'bypass_position': None, 'supply_fan_speed': 0.0, 'post_heat': None, 'pre_heat': None, 'supply_flow': None, 'exhaust_flow': None}
2022-11-09 22:37:31.074 INFO (MainThread) [ramses_rf.dispatcher] || HVC:022641 |            |  I | fan_state        |  00  || {'exhaust_fan_speed': 0.3, 'fan_mode': '3C', 'passive': True, 'damper_only': True, 'filter_dirty': False, 'frost_cycle': False, 'has_fault': False, '_flags': [0, 0, 0, 0, 0, 1, 1, 0], '_unknown_3': '00', '_unknown_4': '202020202020202020202020', 'unknown_16': '00', 'seqx_num': '134'}
2022-11-09 22:37:31.087 INFO (MainThread) [ramses_rf.dispatcher] || HVC:022641 |  18:070912 | RP | unknown_3222     |      || {'start': '03', 'length': '07', 'data': '......00000000000000'}
2022-11-09 22:37:31.097 INFO (MainThread) [ramses_rf.dispatcher] || REM:163367 | FAN:236773 |  I | fan_boost        |      || {'minutes': 15, 'flags': [0, 0, 0, 0, 0, 0, 1, 0], '_new_speed_mode': 'per_vent_speed', '_fallback_speed_mode': None, 'rate': None, '_unknown_5': '0000'}
2022-11-09 22:37:38.387 INFO (MainThread) [ramses_rf.dispatcher] || REM:163367 | FAN:236773 |  I | fan_mode         |      || {'fan_mode': 'auto', '_scheme': 'orcon', '_mode_idx': '04', '_mode_max': '04'}
2022-11-09 22:37:38.420 INFO (MainThread) [ramses_rf.dispatcher] || FAN:236773 |            |  I | fan_state        |  00  || {'exhaust_fan_speed': 0.02, 'fan_mode': '04', 'passive': False, 'damper_only': False, 'filter_dirty': False, 'frost_cycle': False, 'has_fault': False, '_flags': [0, 0, 0, 0, 0, 0, 0, 0]}

I think HVC:022641 is a ‘neighbour’ device.

Please let me know if you need any more information. Thanks!