Skip to content

5.2 Faking Remotes (switches)

David Bonnes edited this page Jan 21, 2024 · 95 revisions

NOTE: This feature is a WIP. Faking v2 has just been released in version 0.31.x.

Options for remote faking include:

  • Itho remote to a FAN
  • Nuaire 4-way switch to a PIV (positive ventilation unit)
  • Orcon RF15 to a HRU (heat recovery ventilation unit)

The binding will require OEM-specific information. The following should work in most cases:

OEM device type OEM code device_info payload
Itho 37: 01 0000010028090101FEFFFFFFFFFF140107E5564D532D313243333900
Nuaire 32: 6C 000001C85A01016CFFFFFFFFFFFF010607E0564D4E2D32334C4D48323300
Orcon 37: 67 000001C894030167FFFFFFFFFFFF1B0807E4564D492D313557534A353300

Tip: If your vendor isn't one of the above, you can determine the OEM by...

Itho: ...

WIP

Nuaire: 4-way Switch to PIV

This section describes binding a faked Nuaire DRI-ECO-4S to a DRI-ECO-HEAT-HC. Other models should work, but YMMV.

Nuaire PIVs only support a single switch (and also a single CO2, and single humidity sensor).

To declare a faked remote called 32:123456, add this configuration.yaml entry (and restart HA):

ramses_cc:
  known_list:
    32:123456: {class: REM, faked: true}  # device type 32: for Nuaire

Note: There is no need for the remote to be in the schema.

Perform initial binding

To bind the switch, put the PIV into binding mode and invoke this service call:

service: ramses_cc.bind_device
data:
  device_id: 32:123456
  offer:
    "22F1":  # 4-way switches only support 22F1
    "10E0":  # double-quotes are required for 10E0
  device_info: " I --- 32:123456 63:262142 --:------ 10E0 030 000001C85A01016CFFFFFFFFFFFF010607E0564D4E2D32334C4D48323300"

Note: Binding will fail without a valid device_info packet. The double quotes are necessary to protect the leading space.

Successful bindings will have an I-W-I sequence in the packet log similar to::

> ~ grep config/packet.log -E ' (10E0|1FC9) '

21:04:54.304429 000  I --- 32:123456 --:------ 32:123456 1FC9 024 0022F18325AA6C10E08325AA001FC98325AA
21:04:54.382823 050  W --- 30:082155 32:123456 --:------ 1FC9 012 2131DA7940EB6C10E07940EB
21:04:54.465230 000  I --- 32:123456 30:082155 --:------ 1FC9 001 21
21:04:54.546717 000  I --- 32:123456 63:262142 --:------ 10E0 030 000001C85A01016CFFFFFFFFFFFF010607E0564D4E2D32334C4D48323300

NOTE: Write down the device id of your PIV (this one is 30:082155), you will need it to create the commands, below.

Faking the switch

Add these commands to your configuration.yaml (and restart HA):

ramses_cc:
  known_list:
    32:123456:
      class: REM
      faked: true
      commands:
        normal:       ' I --- 32:123456 30:082155 --:------ 22F1 003 00020A'
        boost:        ' I --- 32:123456 30:082155 --:------ 22F1 003 00030A'
        heater_off:   ' I --- 32:123456 30:082155 --:------ 22F1 003 00090A'
        heater_auto:  ' I --- 32:123456 30:082155 --:------ 22F1 003 000A0A'
        battery_ok:   ' I --- 32:123456 --:------ 32:123456 1060 003 00FF01'
        get_fan_info: 'RQ --- 32:123456 30:082155 --:------ 31DA 001 00'

Note: You need to use the device_id of your PIV, which is unlikely to be 30:082155.

Then, to invoke a command, use the ramses_cc.send_command service call:

service: ramses_cc.send_command
data:
  entity_id: remote.32_123456
  command: boost

Orcon: ...

WIP: This is how to bind and Orcon 15RF to an MVS-15...

Perform initial binding

To initiate a bind, put the HRU into binding mode and use this service call:

service: ramses_cc.bind_device
data:
  device_id: 37:123456
  offer:
    "22F1":
    "22F3":
    "10E0":
  device_info: " I --- 37:123456 63:262142 --:------ 10E0 038 000001C894030167FFFFFFFFFFFF1B0807E4564D492D313557534A3533000000000000000000"

Note: Binding will fail without a valid device_info payload. Note the leading space, which has necessitated the double quotes.

Successful bindings will have an I-W-I sequence in the packet log similar to::

> ~ grep config/packet.log -E ' (10E0|1FC9) '

21:04:54.304429 000  I --- 37:123456 --:------ 32:123456 1FC9 024 0022F18325AA6C10E08325AA001FC98325AA
21:04:54.382823 050  W --- 32:082155 37:123456 --:------ 1FC9 012 2131DA7940EB6C10E07940EB
21:04:54.465230 000  I --- 37:123456 32:082155 --:------ 1FC9 001 21
21:04:54.546717 000  I --- 37:123456 63:262142 --:------ 10E0 038 000001C894030167FFFFFFFFFFFF1B0807E4564D492D313557534A3533000000000000000000

NOTE: Write down the device id of your PIV (this one is 32:082155), you will need it to create the commands, below.

    29:163367:
      class: REM
      _note: Orcon 15RF remote
      commands:
        away:         " I --- 37:123456 32:082155 --:------ 22F1 003 000004"
        low:          " I --- 37:123456 32:082155 --:------ 22F1 003 000104"
        medium:       " I --- 37:123456 32:082155 --:------ 22F1 003 000204"
        high:         " I --- 37:123456 32:082155 --:------ 22F1 003 000304"
        auto:         " I --- 37:123456 32:082155 --:------ 22F1 003 000404"
        timer_15mins: " I --- 37:123456 32:082155 --:------ 22F3 007 00020F03040000"
        timer_30mins: " I --- 37:123456 32:082155 --:------ 22F3 007 00021E03040000"
        timer_60mins: " I --- 37:123456 32:082155 --:------ 22F3 007 00023C03040000"