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.

Posted on

Settings not saved in firmware 3.4.2 and 3.4.3

Firmware 3.4.2 and 3.4.3 have a small bug. If they are flashed on a new Gateway or other ESP32, settings are not stored. This means when you set up the device, after reboot it loses all settings.
If you update from a previous version via the web interface this problem does not occur.
Gateways with this issue shipped in the past few weeks can be updated via the web interface to version 3.5.0 and then it will work.

If you get an error 500/server error when you load the 3.5.0 firmware via the web interface, you need to use the USB connection inside the Gateway to flash firmware 3.5.0.

The steps to update are as follows:

First download the latest 3.5.0 firmware from https://github.com/emsesp/EMS-ESP32/releases/tag/latest

The file is a bin file called EMS-ESP-3_5_0b7-ESP32.bin .

Next connect to the ems-esp wifi network of your new Gateway and go to settings->upload.
Choose the file you just downloaded.

The Gateway will now update and after a minute you should refresh the page.
(Perhaps you need to reconnect to the ems-esp wifi network again.)

Then on the Settings page it will show the firmware version. It should now show 3.5.0.

If loading 3.5.0 fails with error 500/server error please use the USB flashing method with the new EMS-ESP flash tool to flash the Gateway. You have to open the device to access the USB connector.
See: https://bbqkees-electronics.nl/wiki/gateway/firmware-update-and-downgrade.html#uploading-the-firmware-via-ems-esp-flasher-flashtool

For the E32 it advised to connect the 12V DC power supply while flashing via USB if available.

Firmware 3.5.0 is still a beta, but it is packed with new features. You can now set the language to Dutch, English, German or Swedish.

One remark: if you set a language, all MQTT entities are renamed as well so you have to reload everything into Home Assistant etc again.

Instead of 3.5.0 you can also load 3.4.1 via the web and then upload to 3.4.3 the same way to stay on stable.