Control your Jura coffee machine


I am now able to control my Jura impressa S95 via Wifi and homeassistant

What you need:

  • ESP8266 (wemos d1 mini in my case)
  • 4x short Cables (0,25m² etc)
  • Short female pin (4x1)
  • soldering iron and accessories
  • Jura Coffemachine with ServicePort. (Tested with S95 and E65)

First of all, solder the connector for the service port.

From Left (Blue Marker) to right:
1 – 5V on Wemos
2 – GPIO 13 (D7 on Wemos)
3 – GND on Wemos
4 – GPIO 12 (D6 on Wemos)

Now upload the sketch on your ESP:
You do not need to make any further changes here.

Now plug the gateway into the service port of your Jura. BE CAREFUL!!!
Pay attention to the correct direction! PIN 1 (5V) must be on the left side!

Now you look for the new WiFi accesspoint “JURA” and connect to it.
Open a browser and go to Here you can connect your gateway to your house Wifi.

Search the new IP in your router or the FING app and enter this address in your browser. You are greeted with “Jura Coffee Machine Gateway”.
You can enter following parameters on the Webinterface to test your connection:

AN:01 - Switch On
AN:02 - Switch Off
AN:03 - display test
FA:04 - small cup
FA:05 - two small cups
FA:06 - large cup
FA:07 - two large cups
FA:08 - steam
FA:0C - XXL cup

The Wemos fits nicely behind the little door!
Now we can integrate the whole thing into HomeAssistant.
Communication via POST commands (change the IPs) :

Turn On/Off


  • platform: command_line
    command_on: “curl -d AN:01”
    command_off: “curl -d AN:02”

Make Coffe:

- service: shell_command.jura_1coffee

jura_1coffee: ‘curl -d FA:06’

Thats It! Enjoy Alexa making coffee:)

For further questions, please do not hesitate to contact me.


That’s really cool. So the Wemos is powered from the Jura, even when the Jura is switched off?

1 Like

Right. The Jura only has to be connected to the power grid.

1 Like

Very nice!
We have a Jura S8 with Smart Connect and since there is an (iOS and Android) App to control the machine via Bluetooth, it should be possible to decipher the ‘protocol’ and control the Jura wireless. Anyone who has giving it a try already? The dongle in the coffee machine is a TT214H BlueFrog.

But on topic, do you happen to know if the S8 has a service port as well? Couldn’t find it with visual inspection and no info on internet so far for this new machine.

Wow…that’s awesome… I have plenty ideas for this…thanks for sharing.will buy e65 …what’s the significant difference between both machines ?

I’m going to buy this e65 jura.could you please tell me where the port is located? Need to ask the seller for this

Is it only for jura machines with the 4-PIN service port?

I’ve got a jura ena micro 90 and the service port looks like that.


I’ve tested it with my ena micro 90 and checked the pins with a multimeter - the 7 port connector has the following pin out:


+5V and GND are powering up my nodemcu but connecting the RX / TX line to the ports configured in the script has no effect on the machine when sending commands with the web interface.

#define GPIORX    12
#define GPIOTX    13

any chance to do some debugging?

1 Like

by the way… seems to be the same project - code is 100% the same…

1 Like

Hello, an progress with 7 pin Jura? I have Jura Ena 5 and tried it but without succes. Wemos doesnt start. On usb ccabel it start but after conncet to Jura it not. Why? I soldered pin as on picture. Thanks.

Jura S9 user here. I get the same results. The wemos is powered and works but I get no results from the machine when sending commands (AN:01 eg).

Maybe add some LED debugging to the code to see if the RX/TX works?

Maybe a silly question: I found a similar setup (ESP8266 / Jura) at the knx-user-forum but they seem to be adding a level-shifter (3.3V/5V). Any idea if this might be necessary to make it work?

The wemos d1 got a level shifter included, because you can directly attach it to usb, so if you are using the 5V from the Jura port you are “running” it over the level shifter to power up the ESP with 3.3V.

What I figured out is, that the service port seems to fall into sleep mode a couple of minutes after the machine is powered off (ENA Micro 90), so I’m not able to use that as power source for the ESP.

Maybe Jura changed the protocol for the newer models? Got the same problems as @kgroshert.

My Jura S9 is from 2005 - so much for ‘newer model’ :wink:
It doesn’t have powersave afaik - the wemos stays powered on the whole time after the machine is powered off.

Ok, seems not to depend on the age :smiley: have you tried to switch the rx tx ports?

I’m trying it with a Nodemcu Modul, not sure if the pin out is correct.

I tried swapping the pins (rx/tx) as well as using different pins (and changing them in the code) but to no avail. I even tried adding a level shifter - no effect.
I double-checked the encryption against other projects but that also seems to be fine.
I added some debugging to the code and it seems there is never a single byte received from the machine (the “if (softserial.available())” always fails).
Tomorrow I might have a chance to try this setup against an old Jura S90 (4-pin serviceport), lets see if that gives different results.

Further thoughts:

  • the service-port might not be completely connected - can I measure rx/tx with a multimeter?
  • the encryption might be different on that machine
  • the softserial might cause timing problems - could I use the original rx/tx pins on the wemos/nodemcu?

I have read at one website that some models got two service ports? I’m not sure if both are connected in the same way and maybe my Ena micro 90 got also two ports.

Ok, just checked against the S90 4-pin service-port. No reaction from AN:01/AN:02 or FA:01.


But it seems to work with the S90 → in this german FHEM community they made it work

1 Like

I will now try by using the rx/tx of my esp8266 board (instead of the soft serial). If that doesn’t work I’ll whip out the good old arduino uno and try that…

Keep me updated :slight_smile:

1 Like

Ok, made it (somehow).

I plugged an Arduino Uno to the Jura S9 Adv. instead of the NodeMCU and everything is working fine.
So the problem is probably that the GPIO-Pins of the NodeMCU only are 3V3 but the Jura expects 5V.
As it works for some people I can only suspect that some machines are more sensitive if the voltage is too low. Good news is: I got a lot of coffee over the weekend :slight_smile:

Options from here:

  • use a level-shifter to get the 3.3V to 5V. Of course the level shifter need a supply of 3.3V which is something I don’t have in this setup. For testing I added a 3.3V powersupply to drive the level-shifter (the other side gets driven by the 5V from the Jura). Communication now works, albeit a bit flaky. Sometimes a message is not received by the Jura or the return string is not received completely. Maybe the timing need some work. Of course the use of a 3.3V power-supply adds another component which is not very nice. I could however try to add a AMS1117 converter to the setup to get the 3.3V out of the 5V from the Jura.
  • use an Arduino Nano + the NodeMCU as Wifi-expansion-board (although this still needs the level shifter and the AMS1117 to reliably interface the Nano and the NodeMCU)