[solved] Bosch BTH II Thermostat - Remote Temperature Sensor

Hello everyone,

I recently purchased a couple of these TRVs:
https://www.zigbee2mqtt.io/devices/BTH-RA.html

According to that link above there is the option to add an external temperature sensor value.

In my Z2M device page I can see that this input field is exposed:

I am using Xiaomi Mijia Bluetooth thermometers which are connected to Homeassistant via ESPHome.

How can I fill in the temperature value from the Mijia thermometer into the Z2M input field of my thermostat?

Thank you in advance!

1 Like

Solved it using an automation.

alias: BSH-TRV Livingroom 1 - External Temperature
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.mijia_livingroom_temperature
    alias: External Temperature Sensor Change
condition: []
action:
  - service: number.set_value
    data:
      value: "{{ states('sensor.mijia_livingroom_temperature') }}"
    target:
      entity_id: number.bsh_trv_livingroom1_remote_temperature
mode: single

Hi, there! Did you notice any inconsistencies in the TRV’s indications when using a remote temperature sensor? See screenshot below where the remote temperature is correct (24.6°C), the local temperature is different (24.8°C), while the local display currently shows 24.5°C. I’ve noticed that the local temperature seems to be the same with the remote temperature for a shorter or longer time after the remote temperature is set, but it ends up switching to the internal sensor value (probably?) after a while.

Hi, I think we need a script, whitch e.g. every 5 minutes sends the values from the external sensor to the thermostat and need a loop. My knowledge is not enough, anyone have an idea?

Did you experience the same issue? A Node-Red flow or an automation for doing this are quite trivial, but these are just workarounds for what seems to be a bug in the TRV’s firmware. I also have Aqara TRVs and they work as expected.

I currently use AVM thermostats and am looking for a replacement because they take up to 15 minutes to respond.

I also tested a Hama thermostat with Better Thermostat.

I’m just starting to really test the BSH thermostats. I’m still watching how they really manage the external temp.
I’ll report back after a few days of testing.
The loop was just a suggestion.
Can you post the workaround? Or explain in more detail?

I’ve been watching this for a few days now:

The control seems to be working, checked with 2 separate thermometers. The set temperature is maintained and regulated, monitored by the behavior of the valve.

What is noticeable is that the displays differ, that was exactly the case with the AVM thermostats, sometimes up to 4° Celsius.
So everything is OK.

Are you also getting this problem described here → Bosch Radiator thermostat II - Does anyone use these without hub - Annoying build in schedule- Suggestions? ? I am contemplating multiple TRV purchase and I wish they could be compatible with Zigbee2MQTT but not sure which way to go.

Supplement:
The different temperatures are due to the fact that 1x value is displayed by the internal sensor and 1x by the external sensor. The leading variable is the external sensor. So everything is correct.
It was the same with AVM.

What I also notice is that the control behavior is not optimal, which leads to temperature fluctuations in the room of up to +/- 2 degrees.
Set to 20 degrees → heats up to around 22, then cools down to around 18 and then heats up again at full throttle to 22 degrees etc

The AVM TRV were more stable

Thanks for the auth - works good. But I found that even though you correctly put remote_temperature value - TRV does not use it. Just noted the situation target - set 19, built-in sensor dropped to 19 but external was 20.24 → it started heating. Normally it should not. And it was not open window thing.

PS.
Will double check but observations below were for “Heat” (manual) mode. Switched to “Auto” and local temp was replaced by remote one.

Thanks Knackwurst for sharing your YAML config. Its working great.

After first setting the remote temperature appears an additional text in in the Bosch TRV’s Zigbee2MQTT page in the detail-card. It says:

“Input for remote temperature sensor. This must be set at least every 30 minutes to prevent fallback to internal temperature reading!”

I was observing a wrong TRV temperature reading. At this point the automation was triggered the last time over one hour ago. After some scrolling through my confiuguration I found this in the TRV’s Zigbee2MQTT config. I added three additional triggers to the temperature state change trigger and now it’s working great. :slight_smile:

trigger:
  - platform: state
    entity_id:
     - sensor.aqara_thermometer_arbeitszimmer_temperature
  - platform: time_pattern
    minutes: "19"
  - platform: time_pattern
    minutes: "39"
  - platform: time_pattern
    minutes: "59"
1 Like

I ended up with my own automation - just adjusting differences via local_temp_calibration.

alias: TRVDefneRoomExtTempSensorSync
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.0x00158d000950a9d2_temperature
    attribute: temperature
  - platform: state
    entity_id:
      - sensor.2floordefroomtrv_local_temperature
condition: []
action:
  - variables:
      tempcalc: >-
        {{(states('sensor.0x00158d000950a9d2_temperature')|float(0)|round(1) -
        (states('sensor.2floordefroomtrv_local_temperature')|float(0) -
        states('number.0x18fc2600000c99e1_local_temperature_calibration')|float(0)))|round(1)}}
  - if:
      - condition: template
        value_template: >-
          {{tempcalc !=
          states('number.0x18fc2600000c99e1_local_temperature_calibration')|float(0)}}
    then:
      - service: number.set_value
        data:
          value: "{{tempcalc}}"
        target:
          entity_id: number.0x18fc2600000c99e1_local_temperature_calibration
mode: queued
max: 3

1 Like