ryanalden / esphome-jura-component Goto Github PK
View Code? Open in Web Editor NEWCustom component for ESPhome to communicate with Jura Impressa J6 coffee machines
Custom component for ESPhome to communicate with Jura Impressa J6 coffee machines
Had anybody got the Power (On/Off) State working?
I'm using a Jura E6 - and a year ago it was working with a little detour - I checked the sum of the coffees made and when the amount was lower then the value before the machine was off. So at that time when the machine was off - there weren't any status updates send concerning the total amount of coffees / cappuccinos etc. and the value was resetted to 0. When the machine was powered on again the 0 was replaced with the correct values and so the status of the machine was recognized as on.
These days the amount isn't going to be resetted to 0 when the machine was powered off. No clue if this changed due to an update of the esp..??
Regards
Hi,
i am trying to use the jura wifi dongle with the esp32 inside.
when i use your code i get a watchdog timeout right after wifi scan has started.
this happens a few time and then the esp32 starts in safe mode.
what do i have to do to get the dongle running with your code?
[D][text_sensor:064]: 'Jura-Wifi ESPHome version': Sending state '2024.5.4 May 29 2024, 13:22:16'
[D][binary_sensor:034]: 'Jura-Wifi Status': Sending initial state OFF
[C][wifi:038]: Setting up WiFi...
[C][wifi:051]: Starting WiFi...
[C][wifi:052]: Local MAC: A4:E5:7C:52:E9:BC
[D][wifi:462]: Starting scan...
[D][sensor:094]: 'Jura-Wifi Uptime': Sending state 0.34800 s with 0 decimals of accuracy
E (10963) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (10963) task_wdt: - loopTask (CPU 1)
E (10963) task_wdt: Tasks currently running:
E (10963) task_wdt: CPU 0: IDLE
E (10963) task_wdt: CPU 1: IDLE
E (10963) task_wdt: Aborting.
abort() was called at PC 0x400ff648 on core 0
Backtrace:0x40083809:0x3ffbe9bc |<-CORRUPTED
ELF file SHA256: 0000000000000000
Rebooting...
ets Jun 8 2016 00:22:57
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:1184
load:0x40078000,len:13132
load:0x40080400,len:3036
entry 0x400805e4
[I][logger:156]: Log initialized
[C][status_led:014]: Setting up Status LED...
[C][ota:483]: There have been 1 suspected unsuccessful boot attempts.
[D][esp32.preferences:114]: Saving 1 preferences to flash...
[D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
[W][app:022]: Component <unknown> already registered! (0x3ffbcd08)
[I][app:029]: Running through setup()...
[C][uart.arduino_esp32:077]: Setting up UART...
Is this file generate_esphome_jura_yaml.py necessary?
Or is it to just create the yaml for the wemos?
Please teach me I'm not getting this my ๐ค powers aren't working
Thanks for this awesome project, I got this to work without a problem on my Jura F9 machine (7 PIN service port).
Because the Jura F9 machine seems to have a different software coding I hope that this maybe can help some other users:
FA:02 : Wartung / Rinse button
FA:06 : 1 Tasse Normal / 1 cup normal button
FA:07 : 2 Tassen Normal / 2 cup normal button
FA:09 : Milchschaeumer aufheizen / Heat up milk foamer
FA:10 : Configure: Staerke - Mild / Touch button select: Mild stength
FA:11 : Configure: Staerke - Normal / Touch button select: Medium strength
FA:12 : Configure: Staerke - Stark / Touch button select: Strong
FA:15 : Reinigungsprogram starten / Start cleaning program
FA:18 : Enter Menu (Long press "P")
FA:19 : "Start" button
FA:0A : Hot Water
FA:0B : Pulver Kaffee / Powder Coffee
FA:0D : Configure: Grosse Tasse / Large cup
FA:0E : Configure: Medium Tasse / Medium cup
FA:0F : Configure: Espresso Tasse / Espesso cup
Example of combining commands to make a strong, medium cup of coffee:
- uart.write: [0xFB, 0xDF, 0xDB, 0xDF] ## 'F'
- delay: 8ms
- uart.write: [0xDF, 0xDB, 0xDB, 0xDF] ## 'A'
- delay: 8ms
- uart.write: [0xFB, 0xFB, 0xFF, 0xDB] ## ':'
- delay: 8ms
- uart.write: [0xDB, 0xDB, 0xFF, 0xDB] ## '0'
- delay: 8ms
- uart.write: [0xDF, 0xDF, 0xDB, 0xDF] ## 'E'
- delay: 8ms
- uart.write: [0xDF, 0xFF, 0xDB, 0xDB] ## '\r'
- delay: 8ms
- uart.write: [0xFB, 0xFB, 0xDB, 0xDB] ## '\n'
- delay: 100ms
- uart.write: [0xFB, 0xDF, 0xDB, 0xDF] ## 'F'
- delay: 8ms
- uart.write: [0xDF, 0xDB, 0xDB, 0xDF] ## 'A'
- delay: 8ms
- uart.write: [0xFB, 0xFB, 0xFF, 0xDB] ## ':'
- delay: 8ms
- uart.write: [0xDF, 0xDB, 0xFF, 0xDB] ## '1'
- delay: 8ms
- uart.write: [0xFB, 0xDB, 0xFF, 0xDB] ## '2'
- delay: 8ms
- uart.write: [0xDF, 0xFF, 0xDB, 0xDB] ## '\r'
- delay: 8ms
- uart.write: [0xFB, 0xFB, 0xDB, 0xDB] ## '\n'
- delay: 100ms
- uart.write: [0xFB, 0xDF, 0xDB, 0xDF] ## 'F'
- delay: 8ms
- uart.write: [0xDF, 0xDB, 0xDB, 0xDF] ## 'A'
- delay: 8ms
- uart.write: [0xFB, 0xFB, 0xFF, 0xDB] ## ':'
- delay: 8ms
- uart.write: [0xDF, 0xDB, 0xFF, 0xDB] ## '1'
- delay: 8ms
- uart.write: [0xDF, 0xFB, 0xFF, 0xDB] ## '9'
- delay: 8ms
- uart.write: [0xDF, 0xFF, 0xDB, 0xDB] ## '\r'
- delay: 8ms
- uart.write: [0xFB, 0xFB, 0xDB, 0xDB] ## '\n'
Hope this helps!
We have a Jura Giga X9C, and we can talk with the ESP board just fine, just nothing happens with the coffee machine. We can see in ESPHome that it receives the commands from HA, but nothing seems to happen with the coffee machine. So the board is getting power, but how do we know that the codes we are sending are interacting with the machine?
Also how do you figure out the correct signals for your specific model?
Hi,
have you every came around the following from your to-do list?
First of all: Thanks a lot for your work. It helped a lot!
Here - as info - if someone has an E8. The Tray and water tank status are stored in other places, so I modifed jura_coffee.h
trayBit = bitRead(strtol(result.substring(3,5).c_str(), NULL, 16), 4);
tankBit = bitRead(strtol(result.substring(5,7).c_str(), NULL, 16), 5);
if (trayBit == 1) { tray_status = "Present"; } else { tray_status = "Missing"; }
if (tankBit == 1) { tank_status = "Fill Tank"; } else { tank_status = "OK"; }
Hi Ryan,
Though it is not an issue your assistance will be appreciated. I make use of ESPhome in my Homeassistant.
After spending > 20 hours with my esp32 board I was not able to get my Jura j5 to respond.
Tried to use your yaml code ( copied it into the ESPhome configuration) but that led to no result on this esp board.. (Yes I'm a newbee with these boards :-) ) and so decided to buy the wemos d1 mini.
After setting-up the hardware can I then copy your YAML file in my ESPhome environment ( by using of course my own wifi credentials) and than install on the Wemos? Or am I missing something?
Can you please advice?
Looking forward ypur reply.
Regards,
Ronald
I m getting a bunch of type errors and scope errors for all of the string variables in jura_coffee.h if I try to use the esp-idf framework. I want to use this as a bluetooth proxy too, which is why I'm trying to make the switch. Do you think it's possible to make jura_coffee.h work with esp-idf framework?
Hey,
I'm using a C5 and most of the commands respond after sending them. The only commands I was interested in were the function ones (FA:..) so I can activate the buttons to just make a coffe.
These commands have no response or whatsoever. Any idea how I can continue on this problem?
Any kind of suggestion would be wonderful :)
Btw. great guide you've done!
Many thanks for your effort in creating this project.
Ive got a Jura E60 - commands are slightly different then yours, but I've got them working with trail and error.
Not a big deal but one problem occurs with the status of the water tank in my case - no matter if the tank is full, missing or if it's empty the status is always shown as "OK".
I have no clue what the difference to your machine could be.
Do you have a suggestion what I could try to get it working / e.g. changing if (xsensor7 != nullptr) xsensor7->publish_state(tank_status)
; or some other piece of code (I'm not that familiar with self-coding)
On the other side I would like to see the status of cappuccinos made instead of coffees- do you also have a suggestion for this case?
Where I have to do make changes - maybe here?
substring = result.substring(11,15);
num_coffee = strtol(substring.c_str(),NULL,16);
Thanks in advance - Regards
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.