Home Assistant custom integration for Sage/Breville connected coffee machines.
- Power Control: Turn your coffee machine on (wake) and off (sleep)
- Real-time State Monitoring: See if your machine is ready, warming up, or asleep
- Temperature Sensors: Monitor brew and steam boiler temperatures
- Configuration Sensors: View theme, brightness, grind size, and more
This integration uses the sagecoffee library and supports WiFi-connected Sage/Breville machines. At time of publication this is only:
- Sage/breville Oracle Dual Boiler (BES995)
- Open HACS in Home Assistant
- Click the three dots in the top right corner
- Select "Custom repositories"
- Add
https://github.com/simonjgreen/sagehaas a custom repository (Category: Integration) - Click "Add"
- Find "Sage Coffee" in the HACS integrations list and install it
- Restart Home Assistant
- Download the
custom_components/sagecoffeefolder from this repository - Copy it to your Home Assistant
config/custom_components/directory - Restart Home Assistant
- Go to Settings → Devices & Services
- Click Add Integration
- Search for "Sage Coffee"
- Choose your authentication method:
- Email and Password: Enter your Sage/Breville account credentials
- Refresh Token: If you already have a refresh token from the sagectl CLI tool
If you prefer not to enter your password in Home Assistant, you can use the sagectl CLI tool to obtain a refresh token:
pip install sagecoffee
sagectl bootstrap --username [email protected]Then paste the refresh token from ~/.config/sagecoffee/config.toml into Home Assistant.
For each coffee machine, the integration creates:
| Entity | Description |
|---|---|
| Power | Turn the machine on (wake) or off (sleep) |
| Entity | Description |
|---|---|
| State | Current machine state (ready, warming, asleep) |
| Brew Temperature | Current brew boiler temperature |
| Brew Target Temperature | Target brew boiler temperature |
| Steam Temperature | Current steam boiler temperature |
| Steam Target Temperature | Target steam boiler temperature |
| Theme | Display theme (dark/light) |
| Display Brightness | Display brightness percentage |
| Work Light Brightness | Cup warmer light brightness percentage |
| Grind Size | Current grinder setting |
| Volume | Volume level percentage |
| Auto-off Time | Idle time before auto-sleep (minutes) |
Here are some example automations you can create:
automation:
- alias: "Morning Coffee Warmup"
trigger:
- platform: time
at: "06:30:00"
condition:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- service: switch.turn_on
target:
entity_id: switch.oracle_dual_boiler_powerautomation:
- alias: "Coffee Machine Ready"
trigger:
- platform: state
entity_id: sensor.oracle_dual_boiler_state
to: "ready"
action:
- service: notify.mobile_app
data:
message: "Coffee machine is ready!"- Ensure your Sage/Breville account credentials are correct
- Try using the sagectl CLI tool to verify your credentials work
- Check that your machine is connected to WiFi and visible in the Sage/Breville app
- The integration uses WebSocket for real-time updates; ensure your Home Assistant instance can reach
iot-api-ws.breville.com - Check Home Assistant logs for detailed error messages
- Ensure your machine is paired with your Sage/Breville account
- Try re-pairing the machine using the official Sage/Breville app
Contributions are welcome! Please open an issue or pull request on the GitHub repository.
This project is licensed under the MIT License.
This is an unofficial integration. It is not affiliated with, endorsed by, or supported by Breville or Sage. Use at your own risk.