Picture this: you wake up to a cosy, simulated sunrise courtesy of your connected lightbulbs. As you stumble out of bed and into the kitchen, you're greeted by the delightful aroma of freshly brewed coffee. Your Jura coffee machine has already been turned on, heated up, and is ready to pour you a cup of the good stuff – all thanks to an ESPHome node hooked up to its service port!
No challenge is too big for hardware hackers
Unfortunately, Jura coffee machines don’t integrate directly with Home Assistant. But they do have a service port that hackers have been able to use with microcontrollers such as the Wi-Fi enabled ESP8266 and ESP32. 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 Jura machine service port is a versatile connection intended for use by the manufacturer. It can be used to read and analyse data such as how many cups have been made, or to power on the machine and start the coffee-making process. It is designed for professional use, not for consumers.
However, with a few simple modifications, consumers can also take advantage of this port. By connecting a few jumper wires to the service port and adding a logic level converter (since the Jura Impressa J6 uses 5V signals, while ESP8266 requires 3.3V signals), you can easily use this service port in your ESPHome project without voiding your warranty. This opens up exciting possibilities, allowing you to control your coffee machine without having to modify it in any way!
How the ESPHome code for the Jura coffee machine works
The ESPHome YAML file includes a header file (jura_coffee.h) which will also have to be downloaded into your ESPHome 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 on/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 commands for Jura coffee machines may vary between models. The code given might work with your machine, even if it isn't an Impressa J6, but it is unlikely to be successful. If you are familiar with programming, the creator of the code has provided a Python script that can be used to generate commands for other machines.