Exposes Gaggiuino Local Profiler as native Home Assistant entities —
machine status, shot data, live brewing state and machine sensors, all without cloud.
| Feature | Description | |
|---|---|---|
| ☕ | Brewing Sensor | Binary sensor updated every 2 seconds — perfect as automation trigger |
| 📊 | Shot Sensors | Profile, rating, duration, pressure, yield, ratio, dose, coffee, grinder, shots today and more |
| 🌡️ | Machine Sensors | Live pressure, temperature, water level, weight, uptime, active profile — updated every 5 s |
| 🔧 | Maintenance Sensors | One sensor per task (descaling, backflush, group head, gaskets, water filter) with progress value |
| ⏱️ | Preheat Sensors | Preheat ready binary sensor + elapsed / remaining time sensors |
| 🎛️ | Profile Selector | select entity to switch the active brew profile from any HA dashboard or automation |
| 🔔 | Shot Event | Fires gaggiuino_profiler_shot_completed with full shot data after every pull |
| ⚙️ | Configurable | URL and poll interval adjustable any time via Settings → Integration → Configure |
| 🔍 | Diagnostics | HA diagnostics export for easy bug reports |
Replaces ALERTua/hass-gaggiuino — as of v1.9.0 this integration provides all machine sensors (temperature, pressure, water level, weight, profile, uptime) natively. You no longer need a second integration.
- Click the button above — or: HACS → Integrations → ⋮ → Custom repositories
- Add
https://github.com/mxkissnr/glp-integrationas Integration - Search for Gaggiuino Local Profiler and install
- Restart Home Assistant
- Copy
custom_components/gaggiuino_profiler/into yourconfig/custom_components/directory - Restart Home Assistant
-
Settings → Devices & Services → Add Integration
-
Search for Gaggiuino Local Profiler
-
Enter the URL of your GLP app:
http://localhost:8099Use
localhost, nothomeassistant.local. mDNS resolution ofhomeassistant.localcan fail intermittently from within the HA core container on HA OS, causing all sensors to go unavailable.localhost:8099is always reachable because HA OS runs the core container in host-network mode.The integration validates the connection immediately.
Settings → Devices & Services → Gaggiuino Local Profiler → Configure
| Option | Default | Description |
|---|---|---|
| URL | (entered URL) | URL of the GLP app |
| Poll interval | 60 |
Update interval in seconds (10–300) |
| Entity | Description | Unit |
|---|---|---|
| Machine Status | online / error |
— |
| Shot Count | Total number of stored shots | shots |
| Shots Today | Number of shots pulled today | shots |
| Last Shot Profile | Extraction profile name | — |
| Last Shot Rating | Star rating (1–5 ★) | — |
| Last Shot Date | Timestamp of the last shot | — |
| Last Shot Duration | Shot duration | s |
| Last Shot Avg Pressure | Average extraction pressure | bar |
| Last Shot Yield | Output weight | g |
| Last Shot Brew Ratio | Yield ÷ dose | — |
| Last Shot Dose | Input dose weight | g |
| Last Shot Coffee | Coffee annotation | — |
| Last Shot Grinder | Grinder annotation | — |
| Last Sync | Timestamp of last sync | — |
| Machine Hostname | Gaggiuino controller hostname | — |
| Machine Temperature | Current boiler temperature | °C |
| Machine Target Temperature | Target boiler temperature | °C |
| Preheat Elapsed | Time elapsed since machine switched on | s |
| Preheat Remaining | Estimated time until machine is ready | s |
| Entity | Description | Unit |
|---|---|---|
| Machine Live Pressure | Current extraction pressure | bar |
| Machine Water Level | Water reservoir fill level | % |
| Machine Live Weight | Current weight on scale | g |
| Machine Uptime | Controller uptime | s |
| Machine Active Profile | Currently active brew profile name | — |
| Entity | Description |
|---|---|
| Maintenance Descaling | Progress toward next descaling |
| Maintenance Backflush | Progress toward next backflush |
| Maintenance Group Head | Progress toward next group head service |
| Maintenance Gaskets | Progress toward next gasket replacement |
| Maintenance Water Filter | Progress toward next filter replacement |
| Entity | Description | Update rate |
|---|---|---|
| Brewing | on during an active pull; attributes: datapoints, profile_name, seq |
every 2 s |
| Preheat Ready | on when machine has reached stable brewing temperature |
60 s |
| Steam Switch | on when steam mode is active |
5 s |
| Entity | Description |
|---|---|
| Profile | Active brew profile — read/write; options list updated every 60 s |
Fired automatically after every completed pull. Contains all relevant shot data:
event_type: gaggiuino_profiler_shot_completed
data:
shot_id: 54
profile: "Adaptive"
duration_s: 28.4
yield_g: 42.1
dose_g: 18.0
ratio: 2.34
avg_pressure: 8.72
score: 87
coffee: "Ethiopia Yirgacheffe"
grinder: "DF64"Notification after each shot:
automation:
trigger:
platform: event
event_type: gaggiuino_profiler_shot_completed
action:
service: notify.mobile_app
data:
title: "☕ Shot done"
message: >
{{ trigger.event.data.profile }} –
{{ trigger.event.data.duration_s }}s,
ratio 1:{{ trigger.event.data.ratio }}Dim lights when brewing ends:
automation:
trigger:
platform: state
entity_id: binary_sensor.gaggiuino_local_profiler_brewing
from: "on"
to: "off"
action:
service: light.turn_on
target:
entity_id: light.kitchen
data:
brightness_pct: 30Home Assistant
├── GlpDataCoordinator (60 s, configurable)
│ ├── GET /api/status → machine status, shotCount, lastSync, preheat
│ └── GET /shots.json → shot data, annotations, datapoints
│
├── GlpLiveCoordinator (2 s)
│ └── GET /api/live/data → isLive (brewing state + live datapoints)
│
├── GlpMachineCoordinator (5 s)
│ └── GET /api/machine/status → pressure, temperature, water level,
│ weight, uptime, active profile, steam switch
│
└── Event Bus
└── gaggiuino_profiler_shot_completed (on new shot_id)
Settings → Devices & Services → Gaggiuino Local Profiler → Device → Download Diagnostics
The diagnostics file contains current coordinator data (no sensitive information) and makes it easy to file an issue.
📖 Documentation (Wiki) · 📋 Changelog · 🔧 GLP App · 🐛 Issues
GPL-3.0 © 2024–2026 mxkissnr — free to use, fork and modify; any derivative work must remain open source under the same license. Commercial use is not permitted.
Inspired by BeanConqueror by graphefruit — a fantastic open-source coffee tracking app that pioneered many of the ideas around shot logging and coffee library management that influenced this project.
Built on top of the Gaggiuino project. The machine sensor design was inspired by the original Gaggiuino Home Assistant Integration by ALERTua — thank you for pioneering the HA connectivity concepts that made this possible.
Built with Claude Code by Anthropic