Remote Control your Jura Impressa S95 Coffee Maker with Siri via Homekit and Arduino

Thomas Witt
Thomas Witt
Published in
4 min readNov 10, 2016

--

I love home automatization. And I always liked to play around with electronics, since I was a little child. So when I bought my coffee machine, a Jura Impressa S95, a long time ago, I always noticed this “Service Port — do not touch” sign. I always wanted to play around with it, but didn’t have the time.

When I found that some people did some research on this topic and found out, that the machine is completely remote-controllable through this (undocumented) port -which is a 9600bps serial interface-, I thought I’d solve a first-world problem which always annoyed me: After I wake up and go to the kitchen, I’ll have to wait until the S95 has warmed up, until I can make coffee.

So on a rainy sunday, I thought I’d automatize this and integrate the S95 into my Siri Homekit setup.

Jura Impressa S95 connected to an Arduino Uno Wifi

I needed the following parts:

And here we go. First of all, I have to say, that as much as I love Arduino, the Arduino Uno Wifi is the worst documented product I’ve ever bought. I’ve spent a considerable amount of time in figuring out libraries near-to-nonexistant documentation which only consists of a few examples.

But after a while, I’ve figured out how it works. Of course, if you’ll try that at home, that’s at your own risk, this description comes without any warranty. If you’ll send the wrong commands to the S95 or connect the wrong wires, you might very well destroy your Arduino and your S95. So be careful.

Part 1: Arduino Uno Wifi

After you connect the Arduino Uno Wifi to a power source, it’ll automatically create a WiFi network.

You’ll have to log onto that network and configure the connection to your home network via a browser (set hostname, DHCP, etc.).

After that, you’ll have to upload the Coffemaker.ino sketch I’ve uploaded to a GitHub repository:

https://github.com/thomaswitt/CoffeeMaker

This sketch turns the Arduino into a REST server for the coffee maker. Clone the Repo and upload the sketch to the Arduino Uno Wifi using the standard IDE for the Mac:

Arduino Uno Wifi

Part 2: Connect the Arduino to the S95

That’s pretty straightforward. Use the cable mentioned above and plug it into the S95 service port. S95-Pin 4 is on the left, S95-Pin 1 on the right.

Jura Impressa S95 Service Port

We don’t need Pin 4 and the rest connects as follows:

  • S95-Pin 3 connects to Arduino Pin #3
  • S95-Pin 2 connects to Arduino GND
  • S95-Pin 1 coneects to Arduino Pin #2

That’s it. I’ve soldered a pin at the end of the connection cable to make a better connection to the Arduino and isolated it with Heat-shrink tubing.

After you’ve powered your Arduino, you should be able to test the connection using your command line (or simply your browser):

curl http://ARDUINO.IP.ADDRESS.HERE/arduino/custom/turn_on

should turn on the S95 and

curl http://ARDUINO.IP.ADDRESS.HERE/arduino/custom/turn_off

turns it off. Besides turn_on and turn_off the commands flush and make_coffee are supported as well.

Go ahead and try it, it should work by now — or you’ll have to go for some debugging. You can also use hostname.local instead of the IP address in the curl request.

Jura Impressa S95 connected to an Arduino Uno Wifi

Part 3: Connecting Homebridge to the Arduino

Homebridge is an Open Source reverse-engineered implementation of Apple’s Homekit, which allows you to integrate custom stuff into Siri. I’ve installed it on my Raspberry Pi 3, straightforward after installing the newest Jessie-Version of Raspbian Linux, following the installation docs for the Pi and running it on boot-up using systemctl.

After that has been done, you’ll have to install just have to install the homebridge-http plugin on your Pi:

npm install -g homebridge-http

After replacing the standard homebridge config.json configuration with my homebridge configuration you’ll have to restart the homebridge server:

systemctl restart homebridge

Part 4: Ask Siri to turn on the coffeemaker

Now you should be able to start your iOS 10 “Home”-App on your iPhone, and you can add the new Homebridge Pi Server as a new device. Use the standard code 031–45–154 (changeable in the config.json) and you’re good to go by saying “Hey Siri, turn on the coffeemaker!” (or in my case, in german):

Video of remotely controlling a Jura Impressa S95 Coffee Maker with Siri via Homekit and Arduino

That’s it.

What’s currently missing is a status report back to HomeKit about the current status of the machine. That’s unfortunately not so easy as there’s no documentation about the internal status codes of the S95.

If you figure something out regarding the status codes, let me know!

--

--

Tech Entrepreneur & Angel Investor @ Expedite Ventures | Seed funding & CTO mentoring for deep tech startups.