Skip to main content

Rocket R 60V - Python API

Purpose

This is a Python API for the Rocket R 60V.

It provides a proper API and a CLI tool to read & write settings on the machine.

Why this API

Rocket provides its own iOS & Android apps. However, IMHO the apps are complete rubbish (bad engineering par excellence) and don’t work properly. The app reviews tell the same story.

Annoyed and frustrated by the origin apps, I did some research & reverse engineering.

Why Python

I use Python simply because I like it and it allows me to get shit done.

Usage

Installation

The Rocket R 60V API can either installed from source (i.e. downloading or cloning this repository) or via pip:

pip install rocket-r60v

CLI command

This package provides a CLI command called rocket-r60v to communicate with the machine. To display the available commands, use the --help flag:

rocket-r60v --help
usage: rocket-r60v [-h] [-v] [-f LOGFILE]
                   {active-profile,auto-off,auto-on,brew-boiler-temperature,current-brew-boiler-temperature,current-brew-time,current-service-boiler-temperature,date-time,display,language,profile-a,profile-b,profile-c,service-boiler,service-boiler-temperature,standby,temperature-unit,total-coffee-count,water-feed,addresses,monitor-brew-time,read,write}
                   ...

Remote control the Rocket R 60V.

positional arguments:
  {active-profile,auto-off,auto-on,brew-boiler-temperature,current-brew-boiler-temperature,current-brew-time,current-service-boiler-temperature,date-time,display,language,profile-a,profile-b,profile-c,service-boiler,service-boiler-temperature,standby,temperature-unit,total-coffee-count,water-feed,addresses,monitor-brew-time,read,write}
    active-profile                      the active pressure profile
    auto-off                            the auto off (standby) time
    auto-on                             the auto on time
    brew-boiler-temperature             the desired temperature of the brew boiler
    current-brew-boiler-temperature     the current temperature of the brew boiler
    current-brew-time                   the current brew time, taken from the display
    current-service-boiler-temperature  the current temperature of the service boiler
    date-time                           the date & time (clock) of the machine
    display                             the display content
    language                            the language of the machine
    profile-a                           the pressure profile A
    profile-b                           the pressure profile B
    profile-c                           the pressure profile C
    service-boiler                      the state of the service boiler
    service-boiler-temperature          the desired temperature of the service boiler
    standby                             the standby state of the machine
    temperature-unit                    the temperature unit
    total-coffee-count                  the coffee cycles
    water-feed                          the source of the water feed
    addresses                           display all implemented memory addresses / settings (debugging)
    monitor-brew-time                   continously monitor brew time
    read                                manually read memory data (debugging)
    write                               manually write memory data (debugging)

optional arguments:
  -h, --help                            show this help message and exit
  -v, --verbose                         verbose mode (-v for error, -vv for warning, -vvv for info, -vvvv for debug)
  -f LOGFILE, --logfile LOGFILE         the filename of the logfile

You can also display the help for a single action:

rocket-r60v language --help
usage: rocket-r60v language [-h] [{English,German,French,Italian}]

positional arguments:
  {English,German,French,Italian}

optional arguments:
  -h, --help            show this help message and exit

For example, to query the language you can use:

rocket-r60v language

If you want to change the language, you can use:

rocket-r60v language English

Python API

The Python API can be used like this:

from rocket_r60v.machine import Machine

machine = Machine()
machine.connect()

# Get language from machine.
print(machine.language)

# Set language on machine.
machine.language = 'English'

All available settings can be displayed via CLI command rocket-r60v --help or by inspecting the settings module.

Networking

The Rocket R 60V machine will open a wireless network:

  • SSID: RocketEspresso

  • Passphrase: RocketR60V

A wireless client can then connect to the wireless network and should get a DHCP lease in the 192.168.1.0/24 subnet. From there on, you should be able to use the API.

Reverse Engineering

If you’re interested how I developed the API and how I reverse engineered the protocol, have a look at the Reverse Engineering Guide.

Metadata

Release files for Rocket-R60V 1.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Rocket-R60V 1.2.1
File Size Uploaded Provenance Actions
Rocket-R60V-1.2.1.tar.gz 23.8 kB Without provenance Details for Rocket-R60V-1.2.1.tar.gz

Release files / Rocket-R60V-1.2.1.tar.gz

Download URL Rocket-R60V-1.2.1.tar.gz
Size 23.8 kB
Tags Source
SHA-256 checksum
How to use checksums
1965953985c23f3d846d71c4214d2ffea37f5cd2cd14e7222c1f53d929cf643b
BLAKE2b-256 checksum
How to use checksums
180c4a8fce4a3ec0c2624519fda4d706d4316f72108075a62fce0fef47085281
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.4

Security for Rocket-R60V 1.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page