Controlling a Jura coffee machine with ESPHome using the service port

No comments
Disclosure: This post contains affiliate links. If you click through and make a purchase, I’ll earn a commission, at no additional cost to you. Read my full disclosure here.
An illustration of a high-tech coffee machine in a modern kitchen.

Picture the scene: you’ve just woken up thanks to a Home Assistant script which simulates a sunrise using your connected lightbulbs. As you walk into your kitchen, your Jura coffee machine has already been turned on, heated up, and is ready to pour you a cup of freshly brewed coffee.


Unfortunately, Jura coffee machines don’t integrate with Home Assistant directly. Which means that you still have to push the on button and wait for it to heat up. But what Jura coffee machines do have is a service port. And hackers have been able to use that port and connect it to microcontrollers such as the Wi-Fi-enabled ESP8266 and ESP32. And GitHub user ryanalden has made their ESPHome code and wiring schematics for the Jura Impressa J6 publicly available.

Another project, which does the same for a Jura Impressa S95, has also been shared in the Home Assistant community. It has however not been converted to work with ESPHome yet.


How to make a dumb Jura coffee machine smart

The service port on Jura machines is meant, as the name suggests, for the manufacturer to service the machine. Using it, data such as how many cups have been poured in the machine’s lifetime can be read and analysed. The service port can also be used to power on the coffee machine and start the coffee-making process. It is not meant to be used by consumers.

The service port on a Jura coffee machine which can be accessed using ESPHome

Of course, that doesn’t mean that consumer can’t use it. Using the service port on a Jura coffee machine has the added benefit that you won’t have to modify the coffee machine itself in any way, meaning that you don’t have to void your warranty. All that needs to be done for this ESPHome project is to connect a few jumper wires to the service port.

On the Jura Impressa J6, the service port has seven pins, four of which have to be wired up to the ESP8266. As Jura Impressa J6 service port uses 5V signals and the ESP8266 uses 3.3V signals, you will have to place a logic level converter between the two.


How the ESPHome code for the Jura coffee machine works

Controlling a Jura coffee machine in Home Assistant

The ESPHome YAML file includes a header file (jura_coffee.h) which will also have to be downloaded into your EPSHome directory for everything to work. The contents of that file will read the status of the coffee machine’s sensors. The ESPHome script gives you three switches (turn of/off, make coffee, and make hot water) and seven sensors:

  • Single espressos made
  • Double espressos made
  • Coffees made
  • Double coffees made
  • Cleanings performed
  • Tray status
  • Water tank status

There are a few sensors which haven’t been implemented yet (fill beans, need cleaning, and need flushing). These could be added by someone who knows how to code. There is also no guarantee, that what is given will work with your Jura Impress J6. The code in the GitHub repository was tested with the Impressa J6 software TY: PIM V01.01, TL: LOADER V3.0.

Making any Jura coffee machine smart

The exact commands for Jura coffee machines vary by model. There is a chance that the provided code could work with yours, even if it isn’t an Impressa J6. But more likely than not it won’t. If you are technically inclined, the creator has provided a Python script which can be used to generate commands for other machines.


Jura coffee machines

There is no guarantee that every Jura coffee machine will work with the script detailed in this article.

Leave a comment

Share to...