4. Support for HVAC systems - zxdavb/ramses_cc GitHub Wiki

The ramses_cc integration supports HVAC systems (HRUs, CVEs, and PIVs), such as from Itho Daalderop and Orcon. Support extends to their remotes and sensors.

At the time of writing, this is a work in progress. These notes apply to release 0.20.22 and later.

Define Orphans

HVAC devices that are not specified elsewhere in the schema should be added as 'orphans'. This creates these entities without having to wait for that information to be eavesdropped (a packet from the device is received by the USB dongle). Add the device IDs to your System schema configuration block as follows:

orphans_hvac:
  - "30:111111"
  - "32:333333"
  - "32:555555"
  - "32:666666"

Known device IDs and classes

The creation of a Known device IDs list is not required but strongly recommended.

  1. Enforcing the known list will prevent unknown device IDs to end up in your schema.

  2. For HVAC devices, it is required to specify the class of the device because - unlike Heat devices - RAMSES RF cannot infer the device class (type) from the device ID.

Note that known devices are not instantiated unless they are either discovered, eavesdropped, or in the schema (config schema, orphans or cached schema).

An example of a known list is shown here:

"18:123456":   # Honeywell HGI80
"30:111111:
  class: FAN   # a HRU, CVE or PIV
"32:333333:
  class: REM   # RF remote
  faked: true  # an impersonatable remote
"32:555555:
  class: CO2
  faked: true  # a fully faked sensor
"32:666666:
  class: HUM

Beware: For your system, a 29: may be a fan, and not a remote, or a 32: may be a sensor and not a fan, etc..

Remote faking

To control HVAC systems from Home Assistant, remote faking can be used. To do so, the Known device IDs list needs to be extended. An example is shown below:

"28:111111": { class: REM,  faked: true, scheme: orcon }  # NB: scheme is not yet implemented
"29:123456":
  class: REM
  faked: True
  commands:
    low:    ' I --- 29:123456 --:------ 29:123456 22F1 003 000107'
    medium: ' I --- 29:123456 --:------ 29:123456 22F1 003 000207'
    high:   ' I --- 29:123456 --:------ 29:123456 22F1 003 000307'

The extra options here are faked, scheme, and commands.

  • faked: a boolean indicator used to set the device as faked - this is required
  • commands: allows for the user to explicitly specify commands that can be send using the faked remote if scheme cannot be used
  • scheme (TBA): used to provide the set of commands from a remote, which can vary by manufacturer/model

Command learning

To discover/add commands from your physical remote, a service call can be used. In Home Assistant, go to Developer Tools, tab Services and select the service call Remote: Learn Command. Fill the YAML with the following:

service: remote.learn_command
data:
  command: Auto
  timeout: 60
target:
  entity_id: remote.29_123456 

For entity_id, use the id of your remote. With everything filled in, click CALL SERVICE. ramses_cc will now listen for the command. Press the button on your remote that you want your faked remote to learn and you will see a green checkmark appear. The command is now learned and will be registered to your entity.

Command sending

Similar to command learning there is a 'command send' service call. In Home Assistant, go to Developer Tools, tab Services and select the service call Remote: Send Command. Fill the YAML with the following:

service: remote.send_command
data:
  command: Auto
target:
  entity_id: remote.29_123456 

Click the CALL SERVICE button and ramses_cc will send the command that was learned before under the name Auto. If your faked remote is bound to your fan it will respond to the command. To see which commands are supported for your remote, go to Developer Tools, tab STATES and select your remote entity. Your commands will appear in the State attributes window.

Faked remote binding

  • to be added

Climate data

Supported fans return data structures (31DA and 31D9) that contain climate information like temperature, humidity and CO2 levels.

Dashboard example

  • to be added

Known Schemes for Remotes

This is a Nuaire 4-way switch Known device IDs fragment:

30:082155: { class: FAN, _note: Nuaire PIV } 
32:222222:
  class: REM
  faked: true
  commands:
    normal:      ' I --- 32:222222 30:082155 --:------ 22F1 003 00020A'
    boost:       ' I --- 32:222222 30:082155 --:------ 22F1 003 00030A'
    heater_auto: ' I --- 32:222222 30:082155 --:------ 22F1 003 000A0A'
    heater_off:  ' I --- 32:222222 30:082155 --:------ 22F1 003 00090A'
  _note: Nuaire DRI-ECO-4S (4-way switch)

This is an Orcon remote (WIP): Known device IDs fragment:

32:123456 : { class: FAN, _note: Orcon HRC 400 } 
29:123456:
  class: REM
  faked: True
  commands:
    away: 	      ' I --- 29:123456 32:123456 --:------ 22F1 003 000007'
    low: 	      ' I --- 29:123456 32:123456 --:------ 22F1 003 000107'
    medium:       ' I --- 29:123456 32:123456 --:------ 22F1 003 000207'
    high: 	      ' I --- 29:123456 32:123456 --:------ 22F1 003 000307'
    auto: 	      ' I --- 29:123456 32:123456 --:------ 22F1 003 000407'
    auto2: 	      ' I --- 29:123456 32:123456 --:------ 22F1 003 000507'
    boost: 	      ' I --- 29:123456 32:123456 --:------ 22F1 003 000607'
    disable:      ' I --- 29:123456 32:123456 --:------ 22F1 003 000707'
    bypass_open:  ' W --- 29:123456 32:123456 --:------ 22F7 003 00C8EF'
    bypass_close: ' W --- 29:123456 32:123456 --:------ 22F7 003 0000EF'
    bypass_auto:  ' W --- 29:123456 32:123456 --:------ 22F7 003 00FFEF'
    reset_filter: ' W --- 29:123456 32:123456 --:------ 10D0 002 00FF'
  _note: based upon an Orcon 15RF 6-button remote (VMN-15LF01)
⚠️ **GitHub.com Fallback** ⚠️