pyHottop gives you the power to control your Hottop KN-8828b-2k+ roaster directly through python code. This library is meant to be used within applications and should not be used by itself to conduct a roast. Questions, comments or for support needs, please use the issues page on Github.
In order to interact with your Hottop roaster, you need to ensure your model has a USB-serial port which comes standard with the KN-8828b-2k+.
- Install the CP210x USB driver to read from the serial port:
https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
- Install the pyHotop module:
pip install pyhottop
or python setup.py install
- Plug your Hottop roaster into your laptop.
- Test connectivity to the roaster by running the diagnostic utility:
pyhottop-test test
This library provides full control of the Hottop roaster. Built-in callback functionality allows you to build applications that decouple the processing logic from the library from the core of your application.
- Stream Hottop readings
- Easy-to-use callbacks that return readings
- Adjustable polling interval
- Human-readable settings
- Flexible collection of data
- Debugging interface
- Control the Hottop directly
- Heater settings
- Fan speeds
- Drum motor toggle
- Cooling motor toggle
- Solenoid (drum door) toggle
- Chaff tray (detection) reader
- Auto-discover roaster connection
- Loops over USB connections to find the proper serial
- Bugfix: Capture error when validating byte sequence
- Change: Removed non-python3 dict method
- Bugfix: Error in valid config checking
- Change: Added logic to add event code to find a valid configuration before saving
- Change: Added logic to turning point logic to avoid setting too soon
- Feature: Added a mock service to simulate a roast without being connected to a machine
- Bugfix: Removed the reset on start as it clears any properties set by the user
- Change: Keep the drum on by default to avoid any stalls
- Change: Wrap the buffer read and pull from cache if it continues to fail
- Change: Adjusted lower bound temperature to 50
- Feature: Reset all the roast settings when starting a roast
- Bugfix: Called the proper logging object on buffer measurement
- Change: Added raw buffer responses to the event log
- Feature: Added a validate routine to the buffer read to account for inaccurate responses from the roaster
- Feature: Automatically derive charge and turning point events based on temperature data
- Bugfix: Turned drum motor on when doing a cool-down to push beans out
- Bugfix: Replaced existing extenal_temp with environment_temp
- Bugfix: Fixed issue with buffer retry loop where it was not being called
- Change: Adjusted default interval to 1 second to avoid buffer issues
- Change: Toggle serial connection if having trouble reading buffer
- Change: Adjusted duration to be of format MM:SS instead of total seconds
- Change: Return roast state when toggling monitoring
- Feature: several new methods for getting additional roast details
- Change: Refactored code related to tracking roast properties and timing
- Change: Updated documentation within the code
- Bugfix: when running with python3 due to queue library