Skip to content
Alco edited this page Dec 26, 2024 · 6 revisions

home

Welcome to the Jura Coffee Machine Integration Wiki!

This repository provides tools and configurations to integrate Jura coffee machines, especially the Impreza F-series with ESPHome for smart home automation. By leveraging custom components and ESPHome YAML configurations, you can monitor and control your coffee machine seamlessly.

Quick setup links:


DISCLAIMER: By proceeding with the actions described below, you agree to assume full risk. The author of this documentation hereby expressly disclaims any liability for damage, loss of data, or other problems that may arise as a result of following these instructions. These actions may also void the product's manufacturer's warranty.

Setup Guide

Hardware Requirements

  • Jura coffee machine (tested with Jura Impressa F7 2016)
  • ESP8266 (e.g., Wemos D1 Mini)
  • UART connectivity

Steps

  1. Prepare the Hardware:

    • Connect your Jura machine to the ESP8266 via UART,look at the Hardware installation page for more details
    • Ensure GPIO pins D1 and D2 are connected for TX and RX, respectively.
  2. Install ESPHome:

  3. Upload Configuration:

    • Use the provided jura-01.yaml file to configure ESPHome.
    • Include jura_coffee.h as a custom component.

Configuration Details

Key Features

  • Real-time monitoring of coffee counters (e.g., espresso, ristretto).
  • Text sensors for tray and water tank status.
  • Full integration with Home Assistant.

Configuration Parameters

Substitutions

Parameter Description Example
devicename Device name for ESPHome jura
uart_tx_pin TX pin for UART communication D1
uart_rx_pin RX pin for UART communication D2
baud_rate UART baud rate 9600

Sensors

Sensor ID Description
num_single_espresso Counts single espresso servings
num_clean Counts cleanings performed

Custom Component

The custom component (jura_coffee.h) handles UART communication with the Jura coffee machine, processes EEPROM and IC data, and publishes sensor states to ESPHome.

Key Methods

  1. fetchData(command): Sends a command via UART and retrieves the response.
  2. processEEPROMData(data): Extracts sensor data from EEPROM response.
  3. processICData(data): Processes the tray and tank status.

Customization

You can modify the fetchData and processEEPROMData methods to add new functionalities.


Troubleshooting

Common Issues

  1. No Data from Sensors:

    • Check UART connections and ensure TX/RX pins are correctly configured.
    • Verify the baud rate is set to 9600.
  2. Timeout Errors:

    • Increase the timeout threshold in fetchData.

Debugging

Enable debug logs in logger:

logger:
  level: DEBUG

Contributing

We welcome contributions to improve this project. Please follow the contribution guidelines to submit issues or pull requests.


Let me know if you'd like these pages in Markdown format or need further customization.