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

Hi,

I’m this integration for evohome, with very good results. However i plan to use a heatpump with integrated boiler. I wonder if i can simulatie a cs92a via hass or an esp device to send the boiler temp to my evohome system? I would like to see the dhw temp on my evohome display.

Is this possible?

Yes, Using ramses_cc, you can simulate a CS92A.

You need a source for the DHW temps that creates events in HA. Then you fake a CS92A, and create an automation to trigger a service call, like below:

service: ramses_cc.put_dhw_temp
data:
  entity_id: water_heater.stored_hw
  temperature: 63.4

Not many people have done this (if any), but it is the same as faking a zone temperature - look in the wiki: Faking Sensors.

The wiki may need updating/tweaking - feel free to edit it.

Because no-one has done it before - there may be bugs - let me know.

This is a very common finding.

You’ll have to provide more information - maybe some logs.

Hi,
I’m having difficulties setting up fake sensor for one of my zones.
I have evohome controller, OTB, and 6 HR92. Controller is connected with the honeywell server and in addition I’m running ramses_cc from hacs (ver 0.22.3), mostly to get current temperatures and heat demands.
There is this one TRV that is placed so that it’s temperature is not representative so I wanted to use a fake sensor instead which is the ShellyHT.
I followed the wiki and also this thread, ive gone through binding procedure and I see the sensor in the schema now, separate from the trv).
I called the fake sensor 03:123456 like in the example, but HA sees sensor.03_123456_temperature as unavailable, so I cannot assign the temperature value to it. I used the suggested automation to update the value, but no luck.
Where should I look for clues?

LM

Please cut-and-paste a copy of your schema.

I am not sure if this makes sense to me - it should be unavailable, unless you ‘assign’ a temperature to it.

Please try making a manual service call, something like:

service: ramses_cc.put_zone_temp
data:
  entity_id: climate.main_room
  temperature: 21.3

Please also provide the ramses_cc: section of your configuration.yaml

Hi,
thanks for responding. Here is the schema:

schema: 
system:
  appliance_control: '10:137840'
orphans: []
stored_hotwater: {}
underfloor_heating: {}
zones:
  '00':
    _name: Living room
    class: radiator_valve
    sensor: '03:123456'
    actuators:
      - '04:042755'
  '01':
    _name: Attic
    class: radiator_valve
    sensor: '04:018120'
    actuators:
      - '04:018106'
      - '04:018120'
  '02':
    _name: Ella
    class: radiator_valve
    sensor: '04:018136'
    actuators: []
  '03':
    _name: Office
    class: radiator_valve
    sensor: '04:042745'
    actuators: []
  '04':
    _name: Bedroom
    class: radiator_valve
    sensor: '04:042753'
    actuators:
      - '04:042753'
  '05':
    _name: WM office
    class: radiator_valve
    sensor: '04:059237'
    actuators:
      - '04:059237'
  '06':
    _name: Bathroom
    class: radiator_valve
    sensor: '04:061995'
    actuators: []

The status of the entity remains unavailable, see the screenshot:

configuration.yaml:

ramses_cc:
  01:182472:
    system:
      appliance_control: 10:137840
  scan_interval: 60
  restore_cache: 
    restore_schema: true
    restore_state: true
  serial_port: /dev/serial/by-id/usb-SHK_NANO_CUL_868-if00-port0
  packet_log: 
    file_name: /share/packets.log
    rotate_bytes: null
    rotate_backups: 7  
  ramses_rf:
    max_zones: 7
    enforce_known_list: true
  known_list:
    01:182472: 
    04:061995: 
    04:042755: 
    04:018106: 
    04:018120: 
    04:018136: 
    04:042745: 
    04:042753: 
    04:059237: 
    10:137840: 
    18:134158: 
    03:123456: {faked: true} 
  block_list:
    13:237335:

When I make the manual service call to climate.living_room

2022-12-12 20:30:59.040 WARNING (MainThread) [homeassistant.helpers.service] Unable to find referenced entities climate.living_room or it is/t           hey are currently not available

But I can change, e.g., the target temperature from the thermostat UI in homeassistant:

and the changes are visible in the controler

Yet I don’t see the climate.living_room evohome entity anymore in the list:


It was there when I was making the manual call just a few minutes ago

For the benefit of others: I want to start by making the point that it is difficult for anyone to supply a useful answer if the request for help does not provide sufficient information, for example: your first post.

Your second post is much more useful, and I believe I have the answer:

Your zone entity is not called
climate.living_room, it is called
climate.evohome_cc_01_182871_00 (this is the default entity_id format).

Either change the entity ID of that zone, or use the correct entity id in your automations.

It may be easier to start with a service call via the UI (note most of my climate entities were given pretty IDs, but one has not):

If that doesn’t sort it out, let us know.

I caught this for the climate.landing this morning:

2022-12-12 06:33:10.572 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.watchman_missing_entities, old_state=<state sensor.watchman_missing_entities=25; state_class=measurement, entities=[{'id': 'number.indoor_siren_6_default_volume_7', 'state': 'missing', 'friendly_name': '', 'occurrences': 'scripts.yaml:50,60'}, {'id': 'vacuum.marvin', 'state': 'unavail', 'friendly_name': 'Marvin', 'occurrences': 'automations.yaml:94'}, {'id': 'sensor.marvin_problem_sensor', 'state': 'missing', 'friendly_name': '', 'occurrences': 'automations.yaml:105'}, {'id': 'sensor.oil_temperature', 'state': 'unknown', 'friendly_name': 'Oil Temperature', 'occurrences': 'automations.yaml:160,172'}, {'id': 'alarm_control_panel.home_alarm', 'state': 'missing', 'friendly_name': '', 'occurrences': 'automations.yaml:240,244'}, {'id': 'sensor.salt_level_2', 'state': 'unknown', 'friendly_name': 'Salt Level [%]', 'occurrences': 'automations.yaml:462'}, {'id': 'sensor.battery_voltage', 'state': 'unknown', 'friendly_name': 'Battery Voltage', 'occurrences': 'automations.yaml:466'}, {'id': 'media_player.alarm_panel_browser', 'state': 'missing', 'friendly_name': '', 'occurrences': 'automations.yaml:674,708'}, {'id': 'binary_sensor.743e7c7d_3760faf', 'state': 'missing', 'friendly_name': '', 'occurrences': 'automations.yaml:699'}, {'id': 'binary_sensor.front_door_rechargeable', 'state': 'unknown', 'friendly_name': 'Front Door Rechargeable', 'occurrences': 'automations.yaml:1123,1127'}, {'id': 'sensor.hall_motion_sensor_charging_status', 'state': 'missing', 'friendly_name': '', 'occurrences': 'automations.yaml:1131'}, {'id': 'sensor.hall_motion_sensor_maximum_capacity', 'state': 'missing', 'friendly_name': '', 'occurrences': 'automations.yaml:1132'}, {'id': 'sensor.hall_motion_sensor_recharge_or_replace', 'state': 'missing', 'friendly_name': '', 'occurrences': 'automations.yaml:1133'}, {'id': 'sensor.hall_motion_sensor_temperature', 'state': 'missing', 'friendly_name': '', 'occurrences': 'automations.yaml:1134'}, {'id': 'sensor.side_door_charging_status', 'state': 'unavail', 'friendly_name': 'Charging status', 'occurrences': 'automations.yaml:1135'}, {'id': 'sensor.side_door_recharge_or_replace', 'state': 'unavail', 'friendly_name': 'Recharge or replace', 'occurrences': 'automations.yaml:1136'}, {'id': 'sensor.garage_battery_level', 'state': 'missing', 'friendly_name': '', 'occurrences': 'automations.yaml:1266'}, {'id': 'climate.main_bedroom', 'state': 'missing', 'friendly_name': '', 'occurrences': 'sensor.yaml:154'}, {'id': 'sensor.oil_level', 'state': 'unknown', 'friendly_name': 'Oil Level', 'occurrences': 'template.yaml:69'}, {'id': 'alarm_control_panel.alarm', 'state': 'missing', 'friendly_name': '', 'occurrences': 'custom_components/alarmo/services.yaml:9,59'}, {'id': 'sensor.30_123456_co2_level', 'state': 'missing', 'friendly_name': '', 'occurrences': 'custom_components/ramses_cc/services.yaml:540'}, {'id': 'sensor.30_123456_indoor_humidity', 'state': 'missing', 'friendly_name': '', 'occurrences': 'custom_components/ramses_cc/services.yaml:570'}, {'id': 'binary_sensor.30_123456_presence_detect', 'state': 'missing', 'friendly_name': '', 'occurrences': 'custom_components/ramses_cc/services.yaml:601'}, {'id': 'remote.30_123456', 'state': 'missing', 'friendly_name': '', 'occurrences': 'custom_components/ramses_cc/services.yaml:630'}, {'id': 'binary_sensor.template', 'state': 'missing', 'friendly_name': '', 'occurrences': 'esphome/hot-water-tank.yaml:50,53,65,68,78,81,92,95'}], unit_of_measurement=items, icon=mdi:shield-half-full, friendly_name=watchman_missing_entities @ 2022-12-12T06:31:39.686949+00:00>, new_state=<state sensor.watchman_missing_entities=26; state_class=measurement, entities=[{'id': 'number.indoor_siren_6_default_volume_7', 'state': 'missing', 'friendly_name': '', 'occurrences': 'scripts.yaml:50,60'}, {'id': 'vacuum.marvin', 'state': 'unavail', 'friendly_name': 'Marvin', 'occurrences': 'automations.yaml:94'}, {'id': 'sensor.marvin_problem_sensor', 'state': 'missing', 'friendly_name': '', 'occurrences': 'automations.yaml:105'}, {'id': 'sensor.oil_temperature', 'state': 'unknown', 'friendly_name': 'Oil Temperature', 'occurrences': 'automations.yaml:160,172'}, {'id': 'alarm_control_panel.home_alarm', 'state': 'missing', 'friendly_name': '', 'occurrences': 'automations.yaml:240,244'}, {'id': 'sensor.salt_level_2', 'state': 'unknown', 'friendly_name': 'Salt Level [%]', 'occurrences': 'automations.yaml:462'}, {'id': 'sensor.battery_voltage', 'state': 'unknown', 'friendly_name': 'Battery Voltage', 'occurrences': 'automations.yaml:466'}, {'id': 'media_player.alarm_panel_browser', 'state': 'missing', 'friendly_name': '', 'occurrences': 'automations.yaml:674,708'}, {'id': 'binary_sensor.743e7c7d_3760faf', 'state': 'missing', 'friendly_name': '', 'occurrences': 'automations.yaml:699'}, {'id': 'binary_sensor.front_door_rechargeable', 'state': 'unknown', 'friendly_name': 'Front Door Rechargeable', 'occurrences': 'automations.yaml:1123,1127'}, {'id': 'sensor.hall_motion_sensor_charging_status', 'state': 'missing', 'friendly_name': '', 'occurrences': 'automations.yaml:1131'}, {'id': 'sensor.hall_motion_sensor_maximum_capacity', 'state': 'missing', 'friendly_name': '', 'occurrences': 'automations.yaml:1132'}, {'id': 'sensor.hall_motion_sensor_recharge_or_replace', 'state': 'missing', 'friendly_name': '', 'occurrences': 'automations.yaml:1133'}, {'id': 'sensor.hall_motion_sensor_temperature', 'state': 'missing', 'friendly_name': '', 'occurrences': 'automations.yaml:1134'}, {'id': 'sensor.side_door_charging_status', 'state': 'unavail', 'friendly_name': 'Charging status', 'occurrences': 'automations.yaml:1135'}, {'id': 'sensor.side_door_recharge_or_replace', 'state': 'unavail', 'friendly_name': 'Recharge or replace', 'occurrences': 'automations.yaml:1136'}, {'id': 'sensor.garage_battery_level', 'state': 'missing', 'friendly_name': '', 'occurrences': 'automations.yaml:1266'}, {'id': 'climate.landing', 'state': 'unknown', 'friendly_name': 'Landing', 'occurrences': 'sensor.yaml:149,149,152'}, {'id': 'climate.main_bedroom', 'state': 'missing', 'friendly_name': '', 'occurrences': 'sensor.yaml:154'}, {'id': 'sensor.oil_level', 'state': 'unknown', 'friendly_name': 'Oil Level', 'occurrences': 'template.yaml:69'}, {'id': 'alarm_control_panel.alarm', 'state': 'missing', 'friendly_name': '', 'occurrences': 'custom_components/alarmo/services.yaml:9,59'}, {'id': 'sensor.30_123456_co2_level', 'state': 'missing', 'friendly_name': '', 'occurrences': 'custom_components/ramses_cc/services.yaml:540'}, {'id': 'sensor.30_123456_indoor_humidity', 'state': 'missing', 'friendly_name': '', 'occurrences': 'custom_components/ramses_cc/services.yaml:570'}, {'id': 'binary_sensor.30_123456_presence_detect', 'state': 'missing', 'friendly_name': '', 'occurrences': 'custom_components/ramses_cc/services.yaml:601'}, {'id': 'remote.30_123456', 'state': 'missing', 'friendly_name': '', 'occurrences': 'custom_components/ramses_cc/services.yaml:630'}, {'id': 'binary_sensor.template', 'state': 'missing', 'friendly_name': '', 'occurrences': 'esphome/hot-water-tank.yaml:50,53,65,68,78,81,92,95'}], unit_of_measurement=items, icon=mdi:shield-half-full, friendly_name=watchman_missing_entities @ 2022-12-12T06:33:10.571924+00:00>>

This is attributes at that time:

hvac_modes:
  - auto
  - heat
min_temp: 5
max_temp: 35
target_temp_step: 0.1
preset_modes:
  - none
  - temporary
  - permanent
current_temperature: 15
temperature: 5
hvac_action: idle
preset_mode: null
zone_idx: '08'
heating_type: radiator_valve
mode: null
config:
  min_temp: 5
  max_temp: 35
  local_override: false
  openwindow_function: true
  multiroom_mode: false
schema:
  _name: Landing
  class: radiator_valve
  sensor: '04:116093'
  actuators:
    - '04:116093'
params:
  config:
    min_temp: 5
    max_temp: 35
    local_override: false
    openwindow_function: true
    multiroom_mode: false
  mode: null
  name: Landing
schedule: null
schedule_version: null
icon: mdi:radiator
friendly_name: Landing
supported_features: 17

and this was ramses_rf packets:

2022-12-12 06:32:12.767 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd:  I --- 07:041190 --:------ 07:041190 1260 003 0015EE
2022-12-12 06:32:12.770 INFO (MainThread) [ramses_rf.dispatcher] || DHW:041190 |            |  I | dhw_temp         |      || {'temperature': 56.14}
2022-12-12 06:32:12.780 INFO (MainThread) [ramses_rf.protocol.protocol] SENT: RQ --- 18:000730 01:156286 --:------ 1260 001 00
2022-12-12 06:32:12.781 INFO (MainThread) [ramses_rf.protocol.transport] RF Tx:     b'RQ --- 18:000730 01:156286 --:------ 1260 001 00'
2022-12-12 06:32:12.896 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'000 RQ --- 18:072714 01:156286 --:------ 1260 001 00'
2022-12-12 06:32:12.898 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd: RQ --- 18:072714 01:156286 --:------ 1260 001 00
2022-12-12 06:32:12.898 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'073 RP --- 01:156286 18:072714 --:------ 1260 003 00150B'
2022-12-12 06:32:12.899 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd: RP --- 01:156286 18:072714 --:------ 1260 003 00150B
2022-12-12 06:32:12.924 INFO (MainThread) [ramses_rf.dispatcher] || CTL:156286 | HGI:072714 | RP | dhw_temp         |  00  || {'dhw_idx': '00', 'temperature': 53.87}
2022-12-12 06:32:37.909 INFO (MainThread) [ramses_rf.protocol.protocol] SENT: RQ --- 18:000730 01:156286 --:------ 2349 002 0200
2022-12-12 06:32:37.910 INFO (MainThread) [ramses_rf.protocol.transport] RF Tx:     b'RQ --- 18:000730 01:156286 --:------ 2349 002 0200'
2022-12-12 06:32:37.933 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'000 RQ --- 18:072714 01:156286 --:------ 2349 002 0200'
2022-12-12 06:32:37.936 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd: RQ --- 18:072714 01:156286 --:------ 2349 002 0200
2022-12-12 06:32:37.951 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'071 RP --- 01:156286 18:072714 --:------ 2349 007 0205DC00FFFFFF'
2022-12-12 06:32:37.953 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd: RP --- 01:156286 18:072714 --:------ 2349 007 0205DC00FFFFFF
2022-12-12 06:32:37.954 INFO (MainThread) [ramses_rf.dispatcher] || CTL:156286 | HGI:072714 | RP | zone_mode        |  02  || {'zone_idx': '02', 'mode': 'follow_schedule', 'setpoint': 15.0}
2022-12-12 06:32:46.619 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'072  I --- 01:156286 --:------ 01:156286 2309 036 0006D60101F40205DC0305DC0405DC0501F40601F40701F40801F40901F40A01F40B01F4'
2022-12-12 06:32:46.621 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd:  I --- 01:156286 --:------ 01:156286 2309 036 0006D60101F40205DC0305DC0405DC0501F40601F40701F40801F40901F40A01F40B01F4
2022-12-12 06:32:46.624 INFO (MainThread) [ramses_rf.dispatcher] || CTL:156286 |            |  I | setpoint         | [..] || [{'zone_idx': '00', 'setpoint': 17.5}, {'zone_idx': '01', 'setpoint': 5.0}, {'zone_idx': '02', 'setpoint': 15.0}, {'zone_idx': '03', 'setpoint': 15.0}, {'zone_idx': '04', 'setpoint': 15.0}, {'zone_idx': '05', 'setpoint': 5.0}, {'zone_idx': '06', 'setpoint': 5.0}, {'zone_idx': '07', 'setpoint': 5.0}, {'zone_idx': '08', 'setpoint': 5.0}, {'zone_idx': '09', 'setpoint': 5.0}, {'zone_idx': '0A', 'setpoint': 5.0}, {'zone_idx': '0B', 'setpoint': 5.0}]
2022-12-12 06:32:46.642 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'072  I --- 01:156286 --:------ 01:156286 30C9 030 00064E0106BD0207050306040406AE0705980805E00905420A053F0B06B7'
2022-12-12 06:32:46.643 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd:  I --- 01:156286 --:------ 01:156286 30C9 030 00064E0106BD0207050306040406AE0705980805E00905420A053F0B06B7
2022-12-12 06:32:46.644 INFO (MainThread) [ramses_rf.dispatcher] || CTL:156286 |            |  I | temperature      | [..] || [{'zone_idx': '00', 'temperature': 16.14}, {'zone_idx': '01', 'temperature': 17.25}, {'zone_idx': '02', 'temperature': 17.97}, {'zone_idx': '03', 'temperature': 15.4}, {'zone_idx': '04', 'temperature': 17.1}, {'zone_idx': '07', 'temperature': 14.32}, {'zone_idx': '08', 'temperature': 15.04}, {'zone_idx': '09', 'temperature': 13.46}, {'zone_idx': '0A', 'temperature': 13.43}, {'zone_idx': '0B', 'temperature': 17.19}]
2022-12-12 06:32:46.679 INFO (MainThread) [ramses_rf.protocol.protocol] SENT: RQ --- 18:000730 01:156286 --:------ 30C9 001 05
2022-12-12 06:32:46.679 INFO (MainThread) [ramses_rf.protocol.transport] RF Tx:     b'RQ --- 18:000730 01:156286 --:------ 30C9 001 05'
2022-12-12 06:32:46.702 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'000 RQ --- 18:072714 01:156286 --:------ 30C9 001 05'
2022-12-12 06:32:46.704 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd: RQ --- 18:072714 01:156286 --:------ 30C9 001 05
2022-12-12 06:32:46.719 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'071 RP --- 01:156286 18:072714 --:------ 30C9 003 050576'
2022-12-12 06:32:46.722 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd: RP --- 01:156286 18:072714 --:------ 30C9 003 050576
2022-12-12 06:32:46.723 INFO (MainThread) [ramses_rf.dispatcher] || CTL:156286 | HGI:072714 | RP | temperature      |  05  || {'zone_idx': '05', 'temperature': 13.98}
2022-12-12 06:32:46.724 INFO (MainThread) [ramses_rf.protocol.protocol] SENT: RQ --- 18:000730 01:156286 --:------ 30C9 001 06
2022-12-12 06:32:46.776 INFO (MainThread) [ramses_rf.protocol.transport] RF Tx:     b'RQ --- 18:000730 01:156286 --:------ 30C9 001 06'
2022-12-12 06:32:46.800 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'000 RQ --- 18:072714 01:156286 --:------ 30C9 001 06'
2022-12-12 06:32:46.802 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd: RQ --- 18:072714 01:156286 --:------ 30C9 001 06
2022-12-12 06:32:46.814 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'072 RP --- 01:156286 18:072714 --:------ 30C9 003 060657'
2022-12-12 06:32:46.815 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd: RP --- 01:156286 18:072714 --:------ 30C9 003 060657
2022-12-12 06:32:46.816 INFO (MainThread) [ramses_rf.dispatcher] || CTL:156286 | HGI:072714 | RP | temperature      |  06  || {'zone_idx': '06', 'temperature': 16.23}
2022-12-12 06:32:55.223 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'064  I --- 04:116503 --:------ 01:156286 3150 002 0700'
2022-12-12 06:32:55.225 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd:  I --- 04:116503 --:------ 01:156286 3150 002 0700
2022-12-12 06:32:55.226 INFO (MainThread) [ramses_rf.dispatcher] || TRV:116503 | CTL:156286 |  I | heat_demand      |  07  || {'zone_idx': '07', 'heat_demand': 0.0}
2022-12-12 06:32:57.101 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'084  I --- 34:019363 --:------ 34:019363 30C9 003 000604'
2022-12-12 06:32:57.103 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd:  I --- 34:019363 --:------ 34:019363 30C9 003 000604
2022-12-12 06:32:57.105 INFO (MainThread) [ramses_rf.dispatcher] || THM:019363 |            |  I | temperature      |      || {'temperature': 15.4}
2022-12-12 06:33:02.575 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'066  I --- 13:051818 --:------ 13:051818 3B00 002 00C8'
2022-12-12 06:33:02.579 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd:  I --- 13:051818 --:------ 13:051818 3B00 002 00C8
2022-12-12 06:33:02.583 INFO (MainThread) [ramses_rf.dispatcher] || BDR:051818 |            |  I | actuator_sync    |      || {'actuator_sync': True}
2022-12-12 06:33:03.276 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'066  I --- 13:051818 --:------ 13:051818 3EF0 003 00C8FF'
2022-12-12 06:33:03.277 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd:  I --- 13:051818 --:------ 13:051818 3EF0 003 00C8FF
2022-12-12 06:33:03.278 INFO (MainThread) [ramses_rf.dispatcher] || BDR:051818 |            |  I | actuator_state   |      || {'modulation_level': 1.0, '_flags_2': 'FF'}
2022-12-12 06:33:03.283 INFO (MainThread) [ramses_rf.protocol.protocol] SENT: RQ --- 18:000730 13:051818 --:------ 3EF1 001 00
2022-12-12 06:33:03.284 INFO (MainThread) [ramses_rf.protocol.transport] RF Tx:     b'RQ --- 18:000730 13:051818 --:------ 3EF1 001 00'
2022-12-12 06:33:03.307 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'000 RQ --- 18:072714 13:051818 --:------ 3EF1 001 00'
2022-12-12 06:33:03.309 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd: RQ --- 18:072714 13:051818 --:------ 3EF1 001 00
2022-12-12 06:33:03.513 INFO (MainThread) [ramses_rf.protocol.transport] RF Tx:     b'RQ --- 18:000730 13:051818 --:------ 3EF1 001 00'
2022-12-12 06:33:03.536 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'000 RQ --- 18:072714 13:051818 --:------ 3EF1 001 00'
2022-12-12 06:33:03.538 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd: RQ --- 18:072714 13:051818 --:------ 3EF1 001 00
2022-12-12 06:33:07.073 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'072  I --- 01:156286 --:------ 01:156286 3B00 002 FCC8'
2022-12-12 06:33:07.075 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd:  I --- 01:156286 --:------ 01:156286 3B00 002 FCC8
2022-12-12 06:33:07.075 INFO (MainThread) [ramses_rf.dispatcher] || CTL:156286 |            |  I | actuator_sync    |  FC  || {'domain_id': 'FC', 'actuator_sync': True}
2022-12-12 06:33:07.827 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'070  I --- 13:189689 --:------ 13:189689 3EF0 003 00C8FF'
2022-12-12 06:33:07.830 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd:  I --- 13:189689 --:------ 13:189689 3EF0 003 00C8FF
2022-12-12 06:33:07.833 INFO (MainThread) [ramses_rf.dispatcher] || BDR:189689 |            |  I | actuator_state   |      || {'modulation_level': 1.0, '_flags_2': 'FF'}
2022-12-12 06:33:07.867 INFO (MainThread) [ramses_rf.protocol.protocol] SENT: RQ --- 18:000730 13:189689 --:------ 3EF1 001 00
2022-12-12 06:33:07.867 INFO (MainThread) [ramses_rf.protocol.transport] RF Tx:     b'RQ --- 18:000730 13:189689 --:------ 3EF1 001 00'
2022-12-12 06:33:07.891 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'000 RQ --- 18:072714 13:189689 --:------ 3EF1 001 00'
2022-12-12 06:33:07.894 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd: RQ --- 18:072714 13:189689 --:------ 3EF1 001 00
2022-12-12 06:33:08.098 INFO (MainThread) [ramses_rf.protocol.transport] RF Tx:     b'RQ --- 18:000730 13:189689 --:------ 3EF1 001 00'
2022-12-12 06:33:08.122 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'000 RQ --- 18:072714 13:189689 --:------ 3EF1 001 00'
2022-12-12 06:33:08.124 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd: RQ --- 18:072714 13:189689 --:------ 3EF1 001 00
2022-12-12 06:33:42.774 INFO (MainThread) [ramses_rf.protocol.transport] RF Rx: b'067  I --- 07:041190 --:------ 07:041190 1260 003 001669'
2022-12-12 06:33:42.778 INFO (MainThread) [ramses_rf.protocol.protocol] rcvd:  I --- 07:041190 --:------ 07:041190 1260 003 001669
2022-12-12 06:33:42.780 INFO (MainThread) [ramses_rf.dispatcher] || DHW:041190 |            |  I | dhw_temp         |      || {'temperature': 57.37}
2022-12-12 06:33:42.785 INFO (MainThread) [ramses_rf.protocol.protocol] SENT: RQ --- 18:000730 01:156286 --:------ 1260 001 00
2022-12-12 06:33:42.785 INFO (MainThread) [ramses_rf.protocol.transport] RF Tx:     b'RQ --- 18:000730 01:156286 --:------ 1260 001 00'

The zone continued to give temperature and respond to inputs.

It didn’t help.

Your zone entity is not called
climate.living_room , it is called
climate.evohome_cc_01_182871_00 (this is the default entity_id format).

The above is not correct.

My evohome climate entity for living room is called climate.living_room. It does exist and works just fine.
My ramses_rf climate entity for the same zone is called climate.evohome_cc_01_182472_00

This is the suggested manual sevice call:

service: ramses_cc.put_zone_temp
data:
  entity_id: climate.evohome_cc_01_182472_00
  temperature: 19

It fails. This is the corresponding homeassistant.log entry:

AttributeError: 'NoneType' object has no attribute '_make_fake'

The instruction in the UI suggests that the service call may actually expect the evohome entity_id but it also might not be precise and refer to the ramses_rf climate entity.

If the first then why is the call failing.
If the second then why don’t I see the climate.living_room evohome entity in the dropdown.

Not strictly related to Evohome, more a general boiler/opentherm question as this project is the only place I know that exposes the OT attributes. Any idea whether I’m interpreting the below correctly/my boiler is functioning correctly? 99% demand, max allowable CH set point 65, but the OTB has a low rel modulation level and the boiler has a corresponding low CH output temperature. I would expect the rel modulation level to be close to 100% and the CH output temp to be close to the maximum permissible?

Like your question. I have the same. 10 zones , it’s quite cold outside so always multiple zones @100% demand and below is my modulation level over a week.

Transpires it was related to the evohome HA component. Powering down my HA instance and leaving it turned off fixed the boiler behaviour, so looks like there was some wayward active interaction with the OTB occurring - potentially misspecified configuration on my part.
@zxdavb let me know if this is of interest and I can provide logs and config.

This appears to match another report I received - in that case, I believed it was an only issue with the specific heat pump involved.

Anyway, we need to see which specific packet is causing the problem - I will send you a PM.

It may help if I start by unmasking myself as the developer of both the evohome and the ramses_cc integrations.

  • evohome uses a web API and does not do faking
  • ramses_cc uses RF (via a USB dongle) and does faking

The service call you need is ramses_cc.put_zone_temp, and (from the information you have posted) the entity is definitely climate.evohome_cc_01_182472_00.

Yes, it does fail, but it is still progress - it is the error message you would get if the schema is not configured correctly.

It is saying the zone doesn’t have a sensor.

Reboot you system with restore_schema: false, and post your schema. It should have the faked thermostat like so:

schema: 
  zones:
    '00':
      sensor: '03:123456'

I’d potentially be interested in having a go at this but have no experience of putting hardware like this together. Are there any resources you can point me at to help me figure this out? Could a Raspberry Pi Pico be used instead of the Arduino? These seem similar to me but the Pico is considerably cheaper.

ghoti57/evofw3 (github.com)

Wow! Great to see activity on this project, it’s something I’m attempting right now! I feel like I’m very close to getting this all running myself. I have deployed the evofw3 firmware to my ATmega32U4, got ramses_cc running on my HA instance and ramses_rf running on my pc for local testing.

I suppose my question is a case of hooking into the CC1101 correctly, I’ve studied through the evofw3 files, specifically the atm32u4_pins header file, but I’m not really sure if my understanding of the wiring is particularly accurate.

I purchased this CC1101 board UK UPGRADED 8 pin CC1101 V2 Wireless Transceiver 315/433/868/915MHZ +SMA Antenna | eBay, and I believe the schematic / pin descriptions is found here https://www.ebyte.com/en/downpdf.aspx?id=165 .

Knowing this, I’ve configured my wiring as below:

CC1101 ATmega32U4 Arduino
1 (GND) GND
2 (VCC) VCC
3 (GDO0) RX
4 (CSN)
5 (SCK) 15 (SPI SCLK)
6 (MOSI) 16 (SPI MOSI)
7 (MISO/GDO1) 14 (SPI MISO)
8 (GDO2) TX

I see there’s defined pins in the header file, like SPI_SCLK defined as pin 1, and GDO0_IN as 1 (bit shift) PD2. I can’t seem to work out the right configuration. Any advice from someone on this thread would be greatly appriciated :slight_smile:

@zxdavb - for info I’ve added a page to the WiKi with some scripts for improving Evohome hot water priority. Hot Water Priority by @lloyda · zxdavb/ramses_cc Wiki · GitHub