Giter Club home page Giter Club logo

jura's Introduction

Jura Coffee Machines for Home Assistant

Home Assistant custom component for control Jura Coffee Machines via Bluetooth module.

Tested with the following coffee machines, but should support others:

Installation

HACS > Integrations > 3 dots (upper top corner) > Custom repositories > URL: AlexxIT/Jura, Category: Integration > Add > wait > Jura > Install

Or manually copy jura folder from latest release to /config/custom_components folder.

Configuration

  1. Add default Bluetooth integration.

  2. Configuration > Integrations > Add Integration > JURA Coffee Machines

If you have no MAC address in the setup window, then your HA server can't currently discover any coffee machine nearby. Check that the machine is on, bluetooth is working correctly (can you connect using the JURA smartphone application) and close enough.

If the machine is discovered but the device is not added, please check that you don't have protected the machine with a PIN code. PIN codes are not currently supported.

Demo

Video with Yandex voice assistant (Alice) and english subtitles:

Bluetooth

It is highly recommended to have a good bluetooth adapter. Check list here.

For example, I had unstable control with five different adapters (Unbranded CSR clone detected):

# dmesg | grep Bluetooth
[ 1285.821799] Bluetooth: hci0: CSR: Setting up dongle with HCI ver=9 rev=0001; LMP ver=9 subver=0001; manufacturer=2279
[ 1285.821832] Bluetooth: hci0: CSR: Unbranded CSR clone detected; adding workarounds and force-suspending once...
[ 1285.821846] Bluetooth: hci0: CSR: Couldn't suspend the device for our Barrot 8041a02 receive-issue workaround

It was only the sixth adapter with the CSR8510A10 chip that fixed the situation.

It is also possible to use a Bluetooth Proxy with active mode supported.

Currently tested with an M5Stack Atom Lite device.

Wi-Fi

I have NO plans to support a Wi-Fi module. This requires the purchase of such a module, researching the protocol and write new code. Do all those things that have already been done with the Bluetooth module. And maybe even a lot more work. Without any sense and hope of success.

If you want support for your coffee machine and can't find a working solution, just buy a Bluetooth module.

Useful links

jura's People

Contributors

alexxit avatar pipocanaja avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

jura's Issues

no macadress

put 3 different dongles in my nuc but none of them finds a macadres..
is it possible that esphome also picks up the jura?

Support Wi-Fi Adapter

I used the Bluetooth adapter with the Jura E8, but found the range not convenient and replaced it with the Wi-Fi adapter. Would be nice if this integration could support Wi-Fi as well.

Working setup with Jura ENA8 and ESPHome bluetooth proxy

Hi @AlexxIT

This issue is just to let you know that your component is installed successfully here :

  • Jura ENA8 (the 'old' one, with bluetooth dongle and no touchscreen
  • ESPHome Bluetooth Proxy
  • I had to disable the PIN to succeed

I have no idea if the PIN logic was reverse engineered, just started to look at connecting my coffee machine a few hours ago :) But if at any time you start something on the PIN, ping me :)

I have never wrote a single line of code for HA and never played with python. I am more like a C, perl guy, but I will try to understand your code !

image

Bye and thanx for sharing it!

Shelly Plus i4 bluetooth proxy

Hi,
is there a possibility to use bluetooth proxy from a Shelly Plus i4 module?
On Atom Lite everything is ok, but when I use Shelly bluetooth I can’t see my ENA8.
Proxy itself is working fine because I can see i.e. my iO oralb toothbrush but not Jura coffee machine.
Bluetooth is set to active mode. I tried restarting and adding everything one more time to HA. Can I do something else, maybe in configuration?
Anyway thanks for the integration, great job!

JURA E6 - Coffee-Strength not according to the setting

The E6 (EB) allows coffee-strength setting in the range from 1 to 8 (coffee-)beans. With the present integration you have to select the strength level between 3-10 to get 1-8 beans. Would be nice to have a configuration option for the respective JURA maschine type to get the right mapping.

Disconnect every 20 seconds

Hello,
Thanks a lot for the job, perfectly works with my Jura S80, the only problem I have is it disconnect every 20 seconds

image

I use atom bluetooth proxy

substitutions:
  name: atom-bluetooth-proxy
  board: m5stack-atom
  mac: 0d350c

esphome:
  name: ${name}
  name_add_mac_suffix: true

esp32:
  board: ${board}
  framework:
    type: esp-idf

# Enable Home Assistant API
api:

# Enable logging
logger:

ota:

improv_serial:

# captive_portal:

bluetooth_proxy:
  active: true

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  use_address: ${name}-${mac}.local

esp32_ble_tracker:
  scan_parameters:
    interval: 1100ms
    window: 1100ms
    active: true

Do you have implemented the heartbeat ?

When adding coffee machine no device or entities created

My Giga5 with Bluetooth adapter is detected (Mac address appears and adds to home assistant with out errors) ok but after adding I have no entities or devices.
Thanks for your efforts so far was pleased to see someone working on an integration for our beloved Jura coffee machines. 😊
Is it possible the Giga 5 just isn't supported yet?
Screenshot_20231228_065648_Home Assistant

WIFI models

Hi,

the project looks great, and i would love to use it with my Z10. Will you also add support for the wifi connected models?

works only on the second "press"

Nice integration. Thats's what I was looking for.

I have one small "problem". Nearly each time I use it, the first time I klick "press" nothing happens. (even if I wait for some time)
If I klick "press" a second time it works like a charm.
I'm using Raspberry Pie 4 as a Homeassistant host and have some Shelly devices configured as a bluetooth proxy.

Wifi support?

The Jura Smart Connect also supports Wifi. Will support be added for this?
Will make for a more stable connection than bluetooth and you don't have to worry about being in range of the signal.

Jura Z6 support

I have Jura Z6 with Bluetooth, it is visible in JOE app, also mac address was visible when I was adding integration but integration is unable to get details from coffee machine.

I suspect that this may be due older hardware? I'm using esp32 with proxy enabled, I have moved it closer to coffee machine but this didn't help.
How can I help you debug this and make it supported?

When I'm reloading integration in HA log I see few errors about config entries.

023-12-31 10:43:40.953 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry  for binary_sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 557, in async_unload
    result = await component.async_unload_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/binary_sensor/__init__.py", line 176, in async_unload_entry
    return await component.async_unload_entry(entry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 203, in async_unload_entry
    raise ValueError("Config entry was never loaded!")
ValueError: Config entry was never loaded!
2023-12-31 10:43:40.956 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry  for button
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 557, in async_unload
    result = await component.async_unload_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/button/__init__.py", line 73, in async_unload_entry
    return await component.async_unload_entry(entry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 203, in async_unload_entry
    raise ValueError("Config entry was never loaded!")
ValueError: Config entry was never loaded!
2023-12-31 10:43:40.960 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry  for number
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 557, in async_unload
    result = await component.async_unload_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/number/__init__.py", line 120, in async_unload_entry
    return await component.async_unload_entry(entry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 203, in async_unload_entry
    raise ValueError("Config entry was never loaded!")
ValueError: Config entry was never loaded!
2023-12-31 10:43:40.964 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry  for select
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 557, in async_unload
    result = await component.async_unload_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/select/__init__.py", line 118, in async_unload_entry
    return await component.async_unload_entry(entry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 203, in async_unload_entry
    raise ValueError("Config entry was never loaded!")
ValueError: Config entry was never loaded!

WiFi ?

The Jura E8 has option to be controlled via WiFi.
Is there any chance this could be integrated in this addon?? Perhaps? Please? :-)

Regards,
Marco

Can't select grinder ratio (machines with twin hoppers)

Thanks again for doing such an excellent job on getting this to work.
I found a feature missing which may not be available unless specifically looking for it.
There is in the J. O. E app the facility (provided Beans Ala Carte is disabled on the machine) to specify the ratio of which beans go into the coffee. On my Giga5 for example we do decaf left hopper/grinder and normal caffeinated on the right.
Screenshot_20231228_085344_JOE
Is there any sort of debug logs I can send you from my machine that would help?

E8 Showing as unavailable or disconnected.

First off thanks to releasing this, it has been something I wanted to integrate for sometime.

I have connected my E8 (it showed in the integration as soon as I added it) but in the diagnostics it shows as disconnected and if I restart the integration it changes to unavailable. I am connecting via an ASUS USB-BT500 which I think is a supported device and it is about 3m from the machine.

Any ideas what to try to resolve this?

Call service error?

Hello,
Was using your add on with my Z8 without issues until this morning where the following error (bottom of screenshot) came about. On RPi4 HAOS - latest OS and HA updates (24.1, i believe)

A
IMG_3857
ny ideas?

Bug: cannot access local variable 'items'

Logger: homeassistant.components.bluetooth.manager
Source: components/bluetooth/manager.py:109
Integration: Bluetooth (documentation, issues)
First occurred: 06:36:39 (1 occurrences)
Last logged: 06:36:39

Error in bluetooth callback
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/bluetooth/manager.py", line 109, in _discover_service_info
    callback(service_info, BluetoothChange.ADVERTISEMENT)
  File "/config/custom_components/jura/__init__.py", line 23, in update_ble
    devices[entry.entry_id] = Device(
                              ^^^^^^^
  File "/config/custom_components/jura/core/device.py", line 52, in __init__
    machine = get_machine(number)
              ^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/jura/core/device.py", line 207, in get_machine
    with f.open("machinefiles/" + items[2] + ".xml") as xml:
                                  ^^^^^
UnboundLocalError: cannot access local variable 'items' where it is not associated with a value

Broken since 2024.2.4

Was working fine prior to 2024.2.4 going on today have not got much of anything in the logs but all components appear unavailable.

strange behaviour after enabling the custom component

I bought the bluetooth module instead of the wifi and saw an MAC adres..
After choosing the mac adres: An device with 9 entities is made. But whitin a minute all entities got an red exclamation mark, and are not available.

I have enabled a fed esp32 boards with esphome as proxies.

but my system become slow and almost onresponsible. the only thing I found in the logs:

Logger: homeassistant.components.bluetooth.manager
Source: custom_components/jura/core/device.py:42
Integration: Bluetooth (documentation, issues)
First occurred: 16:39:35 (1 occurrences)
Last logged: 16:39:35

Error in bluetooth callback
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/bluetooth/manager.py", line 664, in async_register_callback
    callback(service_info, BluetoothChange.ADVERTISEMENT)
  File "/config/custom_components/jura/__init__.py", line 23, in update_ble
    devices[entry.entry_id] = Device(
                              ^^^^^^^
  File "/config/custom_components/jura/core/device.py", line 42, in __init__
    manufacturer = advertisment.manufacturer_data[171]
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
KeyError: 171

add Status en statics

First of all, thank you for your great work! I had been hoping for some time to integrate my JURA S8 into Home Assistant.

Could you add sensors with status such as machine status, product proces?

Could you add statistics?
How much coffee made? or How much until next cleaning?

Is it possible to turn on the device via Bluetooth?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.