Posted on

Choosing the correct firmware bin file for your BBQKees product

When you want to update via USB or you need to load a specific firmware version on your BBQKees Gateway, you have to upload the correct bin file to your Gateway or otherwise you may brick it.

For uploading a new firmware to your Gateway via USB you need to use the EMS-ESP flash tool. See the wiki here for more instructions. In some cases you can manually download the firmware, and upload it via the web interface of the Gateway.

On the EMS-ESP Github repository you can download the firmware bin files. The naming convention since firmware 3.6.5 is structured according to the chip type (chipset) and features, and does not have the name of a Gateway product in it.

It is structured like below:

EMS-ESP-<version>-<chipset>-<flashsize>[+].bin

where <chipset> is ESP32 or ESP32S3 and <flashsize> either 4MB or 16MB. The + indicates that the firmware is built to use any additional RAM (called PSRAM) if available.


See the EMS-ESP download info page here for more information.

If you want to upload a specific firmware version 3.7.2 to lets say a new E32 V2 Gateway, you first need to lookup which ESP32 chip is used. The E32 V2 has a ESP32 chipset with 16MB of Flash and 8MB of PSRAM. The filename of the bin file would then be EMS-ESP-3_7_2-ESP32-16MB+.bin.

Below a handy list about which Gateway model has which features and thus needs which firmware bin file.

So firmware version 3.7.2 for the EMS Gateway E32 V2 is this one:
https://github.com/emsesp/EMS-ESP32/releases/download/v3.7.2/EMS-ESP-3_7_2-ESP32-16MB+.bin

As a second example say you would like to get the 3.7.1 firmware for the S3 Gateway.
That’s the following bin file:
https://github.com/emsesp/EMS-ESP32/releases/download/v3.7.1/EMS-ESP-3_7_2-ESP32S3-16MB+.bin

ModelSide imageESP32 chip typeFlash storagePSRAM storageFirmware name ends with
E32 V2ESP3216MB8MB*-ESP32-16MB+.bin
S3 and S3-LRESP32-S316MB8MB-ESP32S3-16MB+.bin
S32 V2.0ESP3216MBnone*-ESP32-16MB.bin
S32 V1.1ESP324MBnone*-ESP32-4MB.bin
E32 V1.5ESP324MBnone
*-ESP32-4MB.bin
E32 V1.1-V1.4ESP324MBnone*-ESP32-4MB.bin

If you purchased an EMS interface board, you needed to get your own ESP32 development board. Because there are about 100 different ones available, please check carefully which ESP32 processor it has.
Next check the size of the Flash memory, and then if it has PSRAM.

Currently the most popular board is the Lilygo T7 S3. It has an ESP32-S3 chipset, 16MB of Flash and 8MB of PSRAM. For this one you need the bin file: EMS-ESP-3_7_2-ESP32S3-16MB+.bin.
Another popular cheap board is the MH-ET Live D1 Mini (or clone) module which have the ESP32 chipset, 4MB of Flash and no PSRAM. For this board you need the bin file: EMS-ESP-3_7_2-ESP32-4MB.bin

If you load a bin file without the ‘+’ on the end (meaning it is for boards without PSRAM) onto a ESP module that does have PSRAM on board, EMS-ESP will work. However, the PSRAM is not seen and not activated.

If you load a ‘+’ bin file on a board without PSRAM, it may not boot.

Posted on

Adding DS18B20 temperature sensors to your Gateway (without soldering)

This guide will show you how to easily add some DS18B20 temperature sensors to your BBQKees EMS Gateway.
No soldering skills necessary.

You can add DS18B20 sensors to all BBQKees Gateways ever made by using the small 3-wire JST cable that is supplied with each Gateway order.

The easiest to use are waterproof DS18B20 sensors with a cable. These are cheap and convenient to use.
We do not sell these sensors, they are available at many places online.


You can add a number of these sensors in parallel to a Gateway. The specific number varies depending on the length of the cable and the type of DS18B20 sensor used. But in general 10 sensors is usually not a problem.

Make sure the sensors are all of the same DS18B20 sub-type and do not mix parasitic mode with normal mode wiring.

Prerequisites and parts

  • BBQKees EMS Gateway
  • 3-wire JST ZH cable
  • DS18B20 waterproof sensors with cable
  • 3 Wago 221 splicing connector with levers or f.i. a ‘lusterklemme’
  • Wire stripper
Parts for adding DS18B20 sensors

Step 1: Strip the wires on the JST cable

You need to strip the wires on the JST cable by about 10mm. If the wire ends are soldered, it’s better to cut them off at the point of the wire insulation before stripping. This will make stripping the wires easier.

Stripping JST cable
Stripped JST cable

Step 2: Strip the wires on the DS18B20 sensors

Strip them 10mm, or at least the same length as you stripped the JST cable.

Step 3: Tie the wire ends together

Tie the wire ends together. Tie each color separately. So all yellow wires together, all black wires together and all red wires together.
If there are too many cables, you can also do 2 or 3 cables each time.

Tied cables

Step 4: Put each wire color in a separate Wago clamp

This step is where you could make the most errors so be careful here.

You need to insert each cable bundle of it’s own color into a separate Wago clamp.
DO NOT put any other wire color in the same clamp as this will cause shortcuts.

Wire ends in Wago clamps
End result DS18B20 sensors in Wago clamps

Step 5: Insert the JST plug into the EMS Gateway

Insert the JST plug into the JST connector in the Gateway. You need to keep the flat part of the plug at the top. Make sure it is fully inserted. See the image below for the correct orientation.

It’s best to turn off the Gateway before doing this. If the Gateway does not boot afterwards, you made a shortcut in the wiring.

Inserting the JST cable

Step 6: Check the EMS-ESP web interface and rename the sensors

If everything went correct, you will see the sensors appearing in the Sensors tab in the web interface.

Sensors tab EMS-ESP web interface

Each DS18B20 sensor has it’s own unique address identifier. These identifiers are displayed.
You can click on one to rename it.
After you rename a sensor, it is also renamed in MQTT and Home Assistant etc.

Renaming sensors

If you added a bunch of sensors at the same time, it can be hard to distinguish them.
You can heat each sensor separately with f.i. a hair dryer or heat gun and see which one gets hotter.

And that’s it!

Posted on

Updated guide on integrating an EMS Gateway into your Home Assistant

I have updated the guide on how to connect an EMS gateway into Home Assistant.
The old guide was a bit outdated, and as most EMS Gateway customers use Home Assistant as their Home automation, up to date guides are necessary.

Logo wordmark Home Assistant

It uses a fresh install of Home Assistant version 2025.2.1 installed as HA OS on a Raspberry Pi as a starting point. So only the initial Home Assistant setup has been done. Creating a HA user and that’s it before we configure anything else.

Steps

In short these are the steps you need to take to get all the EMS entities into Home Assistant in a few minutes:

  • Log into Home Assistant
  • Create a new user in Home Assistant for MQTT
  • Install the MQTT integration in Home Assistant
  • Connect the EMS Gateway to the bus and log into the web interface
  • Configure the MQTT settings in the Gateway
  • BOOM! all entities will show up in Home Assistant within a few minutes.

See the following link to the wiki: https://bbqkees-electronics.nl/wiki/home-automations/home-assistant-configuration.html

Posted on

Using the Smart Grid (SG) and Photovoltaic (PV) function of your heat pump with the EMS Gateways

Input 4 options

Almost every Bosch/Buderus/Nefit heat pump with an EMS bus has 4 external inputs. These can be used to block the operation of the pump etc, but also for Smart Grid (SG) and Photo Voltaic (PV) features. You can virtually switch these inputs with all EMS Gateways to have the heat pump operate in a specific way.

Currently it’s a bit of a read and some trial and error but once set it will work automatically.

(There is also similar information in the EMS-ESP documentation.)

Every Bosch heat pump has 4 of these inputs, it depends on the country and your specific system but usually input 3 and/or 4 can be used for SG and PV.

You need to check the system menu or the installation manual of the heat pump to check which features are supported on which input. In the installation manual you can see which action the heat pump can do when one of these inputs is enabled. If you cannot find the information in the installation manual, you need to look up the manual for the controller/display of your unit (Likely the UI800 or HPC410).

The section you need to look up is called “Menu: External connections” and will look something like below.

If you look into the following example of the installation manual of the Compress 6800i, then PV and SG are both on the input 4.

Heat pump External connections menu settings
Heat pump external connection feature table

This menu will list all configurations that are possible to set for each input.
The Smart Grid and PV System menu are the most interesting.

Smart Grid settings Bosch heat pump
PV menu setting Bosch heat pump

In the web interface of the Gateway you can see the input state of each input, and also the configuration of each input. In the example below the options for input 4.

Input 4 state
Input 4 options

If you change the configuration the the menu to the SG and/or PV feature you want to activate, you can see the corresponding input values.

You can send these same values from Home Assistant to the Gateway to enable these features.

However, the heat pump expects the actual input to be enabled. But there is nothing physically attached to the inputs. But there is a workaround. The first bit of the configuration will tell the heat pump if the signal is active high, or active low.
So it should enable the function if the physical state of the input is ‘Normally Open’ and thus enabled when closed, or ‘Normally Closed’, and thus enabled when open. What we need is the second one. As the manual describes: “Open contact is interpreted as ‘ON’“.

If we invert the logic here, and attach and detach the configuration to the input every time we need it, you can turn on or off the PV and SG feature of your heat pump with your EMS Gateway.

You can use the same logic to activate the ‘EVU Sperre’ feature etc.

Posted on

Accessing the EMS/BB terminal on a Junkers or Worcester boiler (and some Bosch as well).

To connect an EMS Gateway to a Heatronic 3 boiler like most Junkers, Worcester and some Bosch boilers you need to gain access to the EMS/BB screw terminal inside the boiler.

The guide is for all boilers that look like this:

General fascia appearance of a Heatronic 3 style boiler

Step one: disconnect the boiler from power

A good first step is to unplug the boiler from mains power for safety.

Step two: unscrew and unhinge the front cover

There are small variations between these models but in general they are held by 4 screws. Two are located at the bottom near the front. One on the left and one on the right.

On the top of the boiler there are usually also two screws, although some covers are held by a clip.

You can unscrew all screws that are holding the metal front cover. Don’t worry it won’t fall off because it is still held by clamping.

Next you need to pull the underside forward and then slightly up and the whole cover will come off pretty easily. It only weighs a few kilo so it’s a simple one-person operation.
If it does not come off easily, there may still be a hidden screw somewhere so don’t use force and see if you missed a screw somewhere.

Step three: flip down the control panel

Flipping down the control panel on a Heatronic 3 boiler

The control panel is held by a single screw on the top (nr. 1). Unscrew it and then you can flip down the control board.

Step four: Remove the connection cover

Removing the connection cover on a Heatronic 3 boiler

The connection cover is held by three screws. Unscrew them (nr. 1) and remove the cover.

Step five: Accessing the screw terminals on the control board

Now that the cover is off, you can access the EMS screw terminal marked ‘BB’ on the control board.

The control board of a Heatronic 3 boiler

As mentioned above the EMS bus data lines are located on ST19 on the ‘BB’ terminal pins.

Finding the BB Screw terminal block on a Heatronic 3 control board

See if there is a grey screw terminal block mounted as above. If not, there is no EMS bus on your boiler. If there is a terminal block, please check if there is about 15V DC between the BB pins. If so, you can go ahead and attach an EMS Gateway to these pins. If there is nothing or only a few mV present, there is no EMS bus active on this port. You can look for it on another part of the circuit board. On Junkers boilers there is always an EMS bus present on the BB terminal.

For Worcester availability of the EMS bus on the BB pins depends on the specific boiler model and whether an integral diverter valve kit has been installed or not. For some boilers that don’t have an active EMS bus it’s possible to swap out the code plug so it becomes active.

If you do not have an active EMS bus on the BB pins it may still be active on the other side of the circuit board. See the image below. Also see the wiki HERE.

Alternative EMS bus location on Worcester circuit board
Posted on

Powering the E32 V2 EMS Gateway via passive POE

Sometimes there is no easy way to make a 230V wall outlet or power socket near the boiler or heat pump. The E32 V2 has Ethernet, but is does not support active POE (Power Over Ethernet), which is usually 48V or 24V.

What you can do instead is use a so called ‘passive POE cable kit’ like the Digitus DN-95001 to inject the 12V DC of the BBQKees Electronics power supply to the E32 V2 over the same Ethernet cable as the LAN signal.

Each Ethernet cable has 8 leads, 4 of which are used for data and the other 4 are used for power.

These cable kits will also work for longer distances of Ethernet cable where the 12V voltage may drop a bit, because the E32 V2 will still work with f.i. 9V DC. And the bitrate of the connection is relatively low at just 100Mbit.

Below an image of such a cable kit. The female Ethernet connectors are for connecting to the Ethernet cable from the router location to the Gateway location. And then one side has a Ethernet plug which you plug into your router or switch and a female receptacle for the 5,5mm DC barrel jack plug of the 12V DC power supply.
The other cable in the kit has a male Ethernet plug and a 5,5mm male barrel jack plug for connecting to the Gateway.

Below an example setup. On the left you connect the combiner cable to your router or switch, and you plug in the 12V DC power supply to the connector on that cable.
On the receiving end you connect the incoming Ethernet cable to the splitter cable, and then the Ethernet plug of the splitter cable and the barrel jack plug into the E32 V2.

Please pay attention if your switch or router has 24V or 48V POE enabled on that specific port and you are using this passive cable set at the same time, you may blow up the Gateway. Of course I do not give any warranty if you fry the circuit board. Furthermore this page is just for reference. Always know what you are doing when messing with voltages and cables. The above example may or may not work in your specific situation.

Posted on

Difference between the EMS Gateway and the KM200/MBLAN2

Bosch has internet gateways for selected EMS boilers and heatpumps. It’s a range of models like the KM50, KM100, KM200 and MBLAN 2. Depending on the brand there are small variations. Nefit just calls it ‘Internet module’. There is an external model for existing boilers and an internal module for heat pumps. With this gateway and an app on your phone you can see (partly) what your boiler is doing.

The BBQKees EMS Gateways also give insight into boiler parameters.

I often get questions about the difference between the EMS Gateway and the Bosch KM200 Internet gateway. In this article I’ll explain it in more detail.

How does the KM200 work

The KM200 (and the other Bosch internet gateways) connect to the CAN or EMS bus of the boiler or heatpump and your home network. The data it captures from the bus is then sent to the cloud.
You need to install an app on your phone to see the data. The app does this by connecting to the cloud and retrieving your boiler data from the cloud. So all your boiler data is stored in the cloud.
It provides a link between your boiler and an app via the cloud.

How does the EMS Gateway work

The EMS Gateways also connect to the EMS bus of your boiler or heatpump and your home network. The data it captures is then sent to your home automation like Home Assistant or Domoticz.
It depends on how you configured your home automation on how you can access the data. Likely via a web interface on your pc but probably also via an app.
The EMS Gateway provides a link between your boiler and your home automation solely via your home network. So you do not need an external cloud service. All boiler data is stored locally in your home automation system.

Amount of available datapoints

Existing owners of a KM200 are often surprised by the amount of datapoints/entities the EMS Gateway provides over the KM200. With the EMS Gateway you usually get 60 entities of just the boiler alone. With some boilers and heat pumps this may add up to much more (100+). For thermostats and mixer modules it depends on the specific model but there are always some interesting values coming out.

Posted on

Remote access to the Gateway

The EMS Gateways run on your local network and work without any cloud service.
This is by design and it is a great feature on its own, because you do not need to rely on an external internet service to keep your own home automation running perfectly.

However, a cloud connection provides one benefit that running something on your local network does not have; easy remote access.
If you put something in the cloud, data is available anywhere. When you put it only in your home network, it’s not always easy to access it when you are not at home. But there are several ways to get it out though.

Create a VPN connection (secure)

Almost all decent routers support a VPN service. By setting up a VPN server on your router, you can make a secure connection to your home network remotely. Once you connect to the VPN, your device will think it is inside the home network. Therefore you can also access the Gateway or your home automation via it’s internal IP address.

Please note this is different from a VPN service for which you can buy a subscription such as NordVPN. That is a VPN client and is intended for secure web browsing. This is the other way around.

The benefit of a VPN connection to your home network is that you have a very secure connection and nobody else can access it (easily).
The downside is that you would have to open the VPN connection each time before you want to connect remotely, but that’s a small price to pay for the sake of security.

Check the manual of your router on how to set up a VPN server. This may also be called a Remote access VPN.
After the VPN server is running, you need to setup the VPN clients on your mobile phone or laptop to access the network. For Android you can set up a VPN client in the setting or use an external app like StrongSwan or Wifiman.

Use the Home Assistant app or cloud service

When you connected the Gateway to your home automation like Home Assistant, you probably do not need specific access to the Gateway itself. Everything is loaded and visualized within Home Assistant.
In this case you can use the existing ways of connecting remotely to Home Assistant to access the main features of the Gateway. You are probably already using the Home Assistant app on Android or iOS.

If you want to access Home Assistant remotely, this has to be configured properly. There is a good description on the Home Assistant website.

Add a port forward (insecure)

A third way of connecting to the Gateway remotely is by setting up a port forward from port 80 of the Gateway. By doing so, you can access the web interface of the Gateway remotely by typing in the external IP address of your home followed by a port number you set in the router. With access to the web interface of the Gateway you can see an overview of all the boiler parameters and you can also change the values of the boiler/thermostat if needed.

A benefit of this method is that you can easily connect to the Gateway remotely, but as a downside others can access it also pretty easily. Although the web interface of the Gateway is password protected, it was never designed to withstand all the various hacking attacks imaginable.

So although this method is easy to setup it is not recommended. The VPN method above provides a much better security.

Posted on

Changing the selected flow temperature on boilers with EMS-ESP

On some boilers from Bosch/Junkers/Buderus/Worcester changing a temperature only works if the rotary dials are set to AUT. Switching on/off is not possible, also set by the knobs.
On other controllers it is possible to send temperatures lower than the controller setting, but not higher. Some completely electronic settable controllers allow to change all values.
A new idea from a recent discussion and test: device-ID 0x12 is normally an alarm module that allows setting the flowtemp by a analog input. Try to set ems-esp to id 0x12 in the Settings and then try changing selflowtemp and selburnpow.

See the issue on Github.