
Jura ESPHome component and reverse engineering of Impressa X9
I've followed in the footsteps of giants, porting the cmd2jura into an ESPHome component. I have then almost fully reverse engineered my Jura machine. I used ESPHome to create automations to step through the menu, make changes, dump and compare to baselines of EEPROM and RAM. From the results, I was able to create closed loop automations for my Impressa X9.
I am able to:
- read/re-write the brew counters
- re-map the buttons to different products and add new products
- dedicated decaf product buttons
- double brew of milk based beverages
- edit the recipes and preferences
- change the power on/power off schedules
- change auto power down timers.
- know which lights are on/flashing
- know when beans are out, water is low, trays are removed
all in home assistant - and also of course I can brew coffees and power on/off with a voice assistant.
There is even an EEPROM/RAM explorer web interface that documents/decodes the regions of RAM/EEPROM I've figured out which allows sending the UART commands directly.
I would like to support other machines - alas I don't have other machines or the time. This hyperfocus is also waning. The integration does everything I need at this point.
Here is the github repository
https://github.com/jaymemaurice/jura-esphome