Skip to content

serbanb11/bosch-homecom-hass

Repository files navigation

Bosch HomeCom Easy for Home Assistant

version HACS

A Home Assistant custom integration for Bosch HomeCom Easy-connected appliances. Cloud-polling, pure async, automatic token refresh.

Disclaimer: This project is not affiliated with Bosch or Home Assistant.

Supported Devices

Device Type Examples
RAC Climate Class 3000i*, 5000i, 6000i
K30 / K40 Bosch boilers, Buderus Logatherm WLW 186i (MX300)
ICOM IVT Aero Series, Bosch Compress 7000i/7001i AW heat pumps
RRC2 Bosch thermostats (CT200)
WDDW2 Hydronext 5700s water heaters
Commodule Wallbox 7000i EV chargers

Any Midea-based AC or air purifier are not supported by this integration. If you see no devices after setup then those devices are not supported and you should use matter instead.

Installation

HACS (Recommended)

  1. In HACS, go to Integrations > Custom repositories
  2. Add https://github.com/serbanb11/bosch-homecom-hass as an Integration
  3. Search for Bosch HomeCom and download
  4. Restart Home Assistant

Manual

Copy custom_components/bosch_homecom/ into your Home Assistant config/custom_components/ directory and restart.

Setup

The integration requires an authorization code from the Bosch SingleKey ID login flow.

  1. Go to Settings > Devices & Services > Add Integration > Bosch HomeCom

  2. Enter your SingleKey ID username

  3. Open the authorization URL in a private browser window

  4. Open the Network tab in Developer Tools (F12), then log in with your credentials

  5. After the redirect fails (expected), find the request containing code= in the Network tab and copy the code value (ends in -1)

    Authorization Code

  6. Paste the code into Home Assistant and select your devices

Tip: Use a private/incognito window and complete setup quickly -- the code is single-use and expires fast.

Tip: If you're having trouble capturing the authorization code, try using Microsoft Edge -- some users have reported more consistent results with its Developer Tools.

Tip: As an alternative to capturing the code manually via Developer Tools, you can use the community-made SingleKey Code Catcher Firefox add-on, which tracks the login flow and lets you copy the code directly (see #142). Note: this is a third-party tool, not maintained by this project.

What You Get

Platform RAC K30/K40/RRC2 ICOM WDDW2 Commodule
Climate HVAC modes, fan, swing, presets Heating circuits with away mode Heating circuits with temporary setpoint -- --
Water Heater -- Operation mode Operation mode Operation mode + target temp --
Select Airflow, programs DHW/HC modes, away, holiday, ventilation summer bypass DHW/HC modes, away -- Charging strategy
Sensor Notifications Notifications, DHW, HC, heat source, outdoor temp Notifications, DHW temp + setpoint, HC, heat source, supply temp, modulation, system pressure, heat demand, working time, outdoor temp Notifications, temperatures, flow State, power, energy, temperature, phases, charge log
Switch Plasmacluster -- -- -- Lock, auth, RFID secure
Fan -- Ventilation zones Ventilation zones -- --
Binary Sensor -- -- -- -- Network connectivity
Number -- Ventilation summer-bypass duration -- -- Electricity price

ICOM heat pump — DHW heating detection

The integration exposes dhw1_current_setpoint (the active DHW programme setpoint) and dhw1_sensor (actual tank temperature). These can be combined in configuration.yaml template sensors to detect heating activity that the cloud API does not expose directly:

template:
  - binary_sensor:
      # ON when the DHW tank is being heated (actual temp more than 1 °C below setpoint)
      - name: "DHW Heating Active"
        unique_id: pac_ecs_en_chauffe
        device_class: running
        delay_on:
          seconds: 60
        state: >
          {% set actual = states('sensor.YOUR_DHW_SENSOR') | float(-1) %}
          {% set setpoint = states('sensor.YOUR_DHW_CURRENT_SETPOINT') | float(0) %}
          {{ actual > 0 and setpoint > actual + 1 }}

      # ON when the indoor module draws > 1200 W — indicates the backup electric
      # resistance heater is active (e.g. thermal disinfection / anti-legionella)
      - name: "Heat Pump Electric Resistance"
        unique_id: pac_resistance_electrique
        device_class: running
        delay_on:
          seconds: 30
        state: >
          {{ states('sensor.YOUR_INDOOR_MODULE_POWER') | float(0) > 1200 }}

The thermal disinfection (anti-legionella) programme runs at a scheduled day/time (dhwCircuits/dhw1/tdweekDay and tddayTime) using the built-in electric resistance, not the heat pump compressor — the backup heater binary sensor above reliably detects this event.

Tip: Pair both binary sensors with History Stats to track cumulative DHW heating and resistance-heater run time per day and per month.

Ventilation summer bypass

The summer-bypass enable toggle is a manual override that forces the bypass flap open for duration hours. Reading enable = no does not mean the flap is physically closed — the controller can still open it automatically when supply temperature falls below minSupplyTemperature or rises above passiveCoolingSetpoint. Both thresholds, plus the live flapPower, are exposed as attributes on the ventilation sensor for diagnosis.

Documentation

See the Wiki for full documentation:

Acknowledgements

Special thanks to RonNabuurs for his valuable work on integrating K30 support.

About

Bosch HomeCom Easy integration for Home Assistant

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages