Python API for the Rocket R 60V
Project description
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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file Rocket-R60V-1.2.1.tar.gz
.
File metadata
- Download URL: Rocket-R60V-1.2.1.tar.gz
- Upload date:
- Size: 23.8 kB
- Tags: Source
- Uploaded using 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
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1965953985c23f3d846d71c4214d2ffea37f5cd2cd14e7222c1f53d929cf643b |
|
MD5 | 28bca145a9bb8d6f26289c0972c21caa |
|
BLAKE2b-256 | 180c4a8fce4a3ec0c2624519fda4d706d4316f72108075a62fce0fef47085281 |