# 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
Raw data
{
"_id": null,
"home_page": "https://github.com/9b/fellow-aiden",
"name": "fellow-aiden",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "coffee, coffee brewer, fellow, coffee tech",
"author": "Brandon Dixon",
"author_email": "Brandon Dixon <brandon@9bplus.com>",
"download_url": "https://files.pythonhosted.org/packages/b7/6e/a4836ac4f89b7e984def0a997f55cab8260218f3988e7cc47c7cad1b3cf2/fellow_aiden-0.2.0.tar.gz",
"platform": null,
"description": "# Fellow Aiden\n\n[](https://badge.fury.io/py/fellow-aiden)\n\nThis 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/)\n\n\n\n## Quick Start\n\n**Install the library**:\n\n```sh\npip install fellow-aiden\n# or\npython setup.py install\n```\n\n**Set ENV variables**:\n\n```sh\nexport FELLOW_EMAIL='YOUR-EMAIL-HERE'\nexport FELLOW_PASSWORD='YOUR-PASSWORD-HERE'\n```\n\n## Sample Code\n\nThis sample code shows some of the range of functionality within the library:\n\n```python\nimport os\nfrom fellow_aiden import FellowAiden\n\n# EMAIL = \"YOUR-EMAIL-HERE\"\n# PASSWORD = \"YOUR-PASSWORD-HERE\"\n\nEMAIL = os.environ['FELLOW_EMAIL']\nPASSWORD = os.environ['FELLOW_PASSWORD']\n\n# Create an instance\naiden = FellowAiden(EMAIL, PASSWORD)\n\n# Get display name of brewer\nname = aiden.get_display_name()\n\n# Get profiles\nprofiles = aiden.get_profiles()\n\n# Add a profile\nprofile = {\n \"profileType\": 0,\n \"title\": \"Debug-FellowAiden\",\n \"ratio\": 16,\n \"bloomEnabled\": True,\n \"bloomRatio\": 2,\n \"bloomDuration\": 30,\n \"bloomTemperature\": 96,\n \"ssPulsesEnabled\": True,\n \"ssPulsesNumber\": 3,\n \"ssPulsesInterval\": 23,\n \"ssPulseTemperatures\": [96,97,98],\n \"batchPulsesEnabled\": True,\n \"batchPulsesNumber\": 2,\n \"batchPulsesInterval\": 30,\n \"batchPulseTemperatures\": [96,97]\n}\naiden.create_profile(profile)\n\n# Find profile\npid = None\noption = aiden.get_profile_by_title('FellowAiden', fuzzy=True)\nif option:\n pid = option['id'] # p0\n\n# Share a profile\nshare_link = aiden.generate_share_link(pid)\n\n# Delete a profile\naiden.delete_profile_by_id(pid)\n\n# Add profile from shared brew link\naiden.create_profile_from_link('https://brew.link/p/ws98')\n\n# Add a schedule\nschedule = {\n \"days\": [True, True, False, True, False, True, False], // sunday - saturday\n \"secondFromStartOfTheDay\": 28800, // time since 12 am\n \"enabled\": True,\n \"amountOfWater\": 950, // 150 - 1500\n \"profileId\": \"p7\", // must be valid profile\n}\naiden.create_schedule(schedule)\n\n# Delete a schedule\naiden.delete_schedule_by_id('s0')\n\n```\n\n## Features\n\n* Access all settings and details from Aiden brewer\n* Manage custom brewing profiles\n* Add shared profiles from URL\n* Generate share links from custom profiles\n* Search profiles using title (match and fuzzy)\n* Manage custom brewing schedules\n* Brew Studio UI with support for AI, Brew Links and Profile adjustments\n",
"bugtrack_url": null,
"license": "GNUv3",
"summary": "Interface for interacting with Fellow Aiden coffee brewer",
"version": "0.2.0",
"project_urls": {
"Homepage": "https://github.com/9b/fellow-aiden"
},
"split_keywords": [
"coffee",
" coffee brewer",
" fellow",
" coffee tech"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "9d46a044f401ef44ffea5adf35a87b80a937ee9df951c2687d6fc5cadd2757cf",
"md5": "ab530aafe8c33b429d2f50f5b891ecab",
"sha256": "c85e9cc0ef76f9c0606f8eb542ad6966c9cea0f7e4b9d766881a44d07672e83f"
},
"downloads": -1,
"filename": "fellow_aiden-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ab530aafe8c33b429d2f50f5b891ecab",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 19533,
"upload_time": "2025-02-09T23:35:57",
"upload_time_iso_8601": "2025-02-09T23:35:57.177522Z",
"url": "https://files.pythonhosted.org/packages/9d/46/a044f401ef44ffea5adf35a87b80a937ee9df951c2687d6fc5cadd2757cf/fellow_aiden-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b76ea4836ac4f89b7e984def0a997f55cab8260218f3988e7cc47c7cad1b3cf2",
"md5": "7bbb824ec95e2d1e212b10a4c00679aa",
"sha256": "f28f82d32a4e7113104de975ecc37f3f227972137d026fa49665b1fa70e960f9"
},
"downloads": -1,
"filename": "fellow_aiden-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "7bbb824ec95e2d1e212b10a4c00679aa",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 26328,
"upload_time": "2025-02-09T23:35:58",
"upload_time_iso_8601": "2025-02-09T23:35:58.174898Z",
"url": "https://files.pythonhosted.org/packages/b7/6e/a4836ac4f89b7e984def0a997f55cab8260218f3988e7cc47c7cad1b3cf2/fellow_aiden-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-09 23:35:58",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "9b",
"github_project": "fellow-aiden",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "annotated-types",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2024.12.14"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.4.1"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.10"
]
]
},
{
"name": "pydantic",
"specs": [
[
"==",
"2.10.4"
]
]
},
{
"name": "pydantic_core",
"specs": [
[
"==",
"2.27.2"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.32.3"
]
]
},
{
"name": "setuptools",
"specs": [
[
"==",
"75.1.0"
]
]
},
{
"name": "typing_extensions",
"specs": [
[
"==",
"4.12.2"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"2.3.0"
]
]
},
{
"name": "wheel",
"specs": [
[
"==",
"0.44.0"
]
]
},
{
"name": "openai",
"specs": [
[
"==",
"1.59.8"
]
]
},
{
"name": "pillar-security",
"specs": []
},
{
"name": "fellow-aiden",
"specs": [
[
"==",
"0.2.0"
]
]
}
],
"lcname": "fellow-aiden"
}