Buderus TC100 / Junkers CT100 thermostat


Since some time I am using a Buderus TC100 thermostat. I think it is the same device as Junkers CT100. or Bosch TC100
I would like to connect it with Home Assistant and/or Node Red and read/set some values like temperature, mode, gas usage,…
Has anyone been working on this?

Hi, this is using KM200 compatible “protocol”. Check other topic with Buderus KM200.
Bosch Pro Control Gateway is needed…

@pipo what was the outcome? Did you manage to get the tc100 connected?

I’m interested too. Do you have update on TC100 binding?

Anyway, I read (on Buderus documentation) that TC100 is not compatible with KM200. I mean is it possibile to use TC100 OR KM200 with the same EMS bus. But I think it is obvious. TC100 is just a gateway in such sense.


I was in the same trouble but finally got a nice setup :innocent:

First of all for getting info from the heating system I used the wonderful physical interface from https://bbqkees-electronics.nl/ a wemos D1 mini https://docs.wemos.cc/en/latest/d1/d1_mini.html with the code from Proddy https://github.com/proddy/EMS-ESP

It was then very easy to get all sensor values to HA
However it was impossible to set values as TC100 consider itself as “Master”

The workaround is using this command line utility created by Robert Klep https://github.com/robertklep/nefit-easy-cli

Then I created a input_number.slider in configuration.yalm

    name: Target Temperature
    initial: 21
    min: 14
    max: 24
    step: 0.5
    unit_of_measurement: C°

a shell command:

        set_temperature: /config/set-temp.sh "{{ value }}"

The bash script:

#! /bin/bash
easy --serial=*** --access-key=*** --password=*** set temperature $1

Then some automation rules to manage the slider:

- id: '1585238482440'
  alias: Set_Temp1
  description: Set target temperature HA slider from EMS/ESP
  - entity_id: sensor.current_set_temperature
    platform: state
  condition: []
  - data_template:
      entity_id: input_number.slider1
      value: '{{ states(''sensor.current_set_temperature'') | float }}'
    service: input_number.set_value
- id: '1585239965319'
  alias: Set_temp2
  description: Set target temperature from HA slider to EMS/ESP
  - entity_id: input_number.slider1
    platform: state
  condition: []
  - data_template:
      value: "{{ states('input_number.slider1') }}"
    service: shell_command.set_temperature


It’s working like a charm

BTW: nefit-easy-cli command line utility can already return lot’s of information like for example:

{"user mode":"clock","clock program":"auto","in house status":"ok","in house temp":20.7,"hot water active":true,"boiler indicator":"off","control":"room","temp override duration":0,"current switchpoint":27,"ps active":true,"powersave mode":true,"fp active":false,"fireplace mode":false,"temp override":true,"holiday mode":false,"boiler block":null,"boiler lock":null,"boiler maintenance":null,"temp setpoint":16,"temp override temp setpoint":16,"temp manual setpoint":16,"hed enabled":null,"hed device at home":null,"outdoor temp":5.9,"outdoor source type":"physical"}

So, BBkees physical interface to EMS bus is not mandatory, but with this interface you gain access to extra data like: heating running hours, burner starts, selected flow temp, current flow temp, additional info regarding Hot Water etc…

From EMS bus:

boiler_data {"wWComfort":"Hot","wWSelTemp":60,"selFlowTemp":5,"selBurnPow":0,"curBurnPow":0,"pumpMod":0,"outdoorTemp":5.7,"curFlowTemp":41,"wWActivated":"on","burnGas":"off","heatPmp":"off","fanWork":"off","ignWork":"off","wWCirc":"off","wWHeat":"off","burnStarts":3547,"burnWorkMin":147069,"heatWorkMin":147069,"ServiceCode":"0H","ServiceCodeNumber":203}
thermostat_data	{"thermostat_hc":"1","thermostat_seltemp":16,"thermostat_currtemp":20.65}

All that stuff took me a bunch of hours, so I wanted to share.
Hope this may help :wink:


very cool!

Hi Sonusss,
great job!! So, you can set the temperature of TC100 using easy command line? But… Where you get --serial --access-key --password data?


These info are in your smartphone APP.
In my case I’m using EasyMode APP on Android and the info is at “INFO” tab, “Product Information”
Normally you have entered the password yourself at the first APP connection, if you don’t remember it, just change it through the APP. Pay attention to have a password without special characters and <=10

Enjoy !


But, does netfit-easy-cli work over the lan, by TC100?