https://github.com/9b/fellow-aiden
Interact with the Fellow Aiden coffee brewer
https://github.com/9b/fellow-aiden
aiden coffee fellow
Last synced: 5 months ago
JSON representation
Interact with the Fellow Aiden coffee brewer
- Host: GitHub
- URL: https://github.com/9b/fellow-aiden
- Owner: 9b
- License: gpl-3.0
- Created: 2025-01-19T22:00:41.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-07-27T22:29:57.000Z (11 months ago)
- Last Synced: 2025-11-30T13:17:32.066Z (6 months ago)
- Topics: aiden, coffee, fellow
- Language: Python
- Homepage: https://fellow-brew-studio.streamlit.app/
- Size: 476 KB
- Stars: 41
- Watchers: 5
- Forks: 11
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Fellow Aiden
[](https://badge.fury.io/py/fellow-aiden)
This library provides an interface to the Fellow Aiden coffee brewer. An additional brew studio UI with support for AI-generated recipes is also included. You can run the Brew Studio locally on your system or make use of the hosted version: [https://fellow-brew-studio.streamlit.app/](https://fellow-brew-studio.streamlit.app/)

## Quick Start
**Install the library**:
```sh
pip install fellow-aiden
# or
python setup.py install
```
**Set ENV variables**:
```sh
export FELLOW_EMAIL='YOUR-EMAIL-HERE'
export FELLOW_PASSWORD='YOUR-PASSWORD-HERE'
```
## Sample Code
This sample code shows some of the range of functionality within the library:
```python
import os
from fellow_aiden import FellowAiden
# EMAIL = "YOUR-EMAIL-HERE"
# PASSWORD = "YOUR-PASSWORD-HERE"
EMAIL = os.environ['FELLOW_EMAIL']
PASSWORD = os.environ['FELLOW_PASSWORD']
# Create an instance
aiden = FellowAiden(EMAIL, PASSWORD)
# Get display name of brewer
name = aiden.get_display_name()
# Get profiles
profiles = aiden.get_profiles()
# Add a profile
profile = {
"profileType": 0,
"title": "Debug-FellowAiden",
"ratio": 16,
"bloomEnabled": True,
"bloomRatio": 2,
"bloomDuration": 30,
"bloomTemperature": 96,
"ssPulsesEnabled": True,
"ssPulsesNumber": 3,
"ssPulsesInterval": 23,
"ssPulseTemperatures": [96,97,98],
"batchPulsesEnabled": True,
"batchPulsesNumber": 2,
"batchPulsesInterval": 30,
"batchPulseTemperatures": [96,97]
}
aiden.create_profile(profile)
# Find profile
pid = None
option = aiden.get_profile_by_title('FellowAiden', fuzzy=True)
if option:
pid = option['id'] # p0
# Share a profile
share_link = aiden.generate_share_link(pid)
# Delete a profile
aiden.delete_profile_by_id(pid)
# Add profile from shared brew link
aiden.create_profile_from_link('https://brew.link/p/ws98')
# Add a schedule
schedule = {
"days": [True, True, False, True, False, True, False], // sunday - saturday
"secondFromStartOfTheDay": 28800, // time since 12 am
"enabled": True,
"amountOfWater": 950, // 150 - 1500
"profileId": "p7", // must be valid profile
}
aiden.create_schedule(schedule)
# Delete a schedule
aiden.delete_schedule_by_id('s0')
```
## Features
* Access all settings and details from Aiden brewer
* Manage custom brewing profiles
* Add shared profiles from URL
* Generate share links from custom profiles
* Search profiles using title (match and fuzzy)
* Manage custom brewing schedules
* Brew Studio UI with support for AI, Brew Links and Profile adjustments