Track how many coffees your Jura E8 espresso machine makes — fully automated via webhook and Google Sheets.
This workflow exposes a custom API endpoint that can be called by smart devices, such as an ESP8266 or ESP32 reading data from a Jura E8 coffee machine via Bluetooth Low Energy (BLE). The incoming data (including total coffee count) is timestamped and appended to a Google Sheet, making it easy to visualize or analyze your machine usage.
☕ Originally built for a Jura E8, based on AlexxIT/Jura reverse-engineering project.
📝 This workflow uses Google Sheets as a logging backend. You can easily switch it to Airtable, Notion, or a database of your choice.
Live example available at: https://halfbitstudio.com/o-nas/
🖥️ In our setup, this workflow is used to provide real-time coffee consumption stats displayed directly on our website.
🔌 Some Jura machines require an accessory Bluetooth transmitter to enable connectivity. Communication is based on the Bluetooth Low Energy (BLE) protocol.
☁️ Two Webhook endpoints:
POST /{{WEBHOOK_POST_PATH}}
— receives JSON from ESP (coffee machine reader)GET /{{WEBHOOK_GET_PATH}}
— returns latest records as JSON📅 Timestamping via Date & Time
node
🔹 Coffee counter extraction from incoming JSON
🧾 Appends structured rows to Google Sheets
📤 Webhook response for external status or dashboards
Use an ESP device (e.g. ESP8266 or ESP32) to connect to the Jura E8 via Bluetooth Low Energy (BLE).
Send POST requests with JSON payload:
{
"total_coffees": 123
}
Reverse-engineered protocol reference: AlexxIT/Jura
Create a new Google Sheet with column headers like:
date | time | coffee counter
Connect your Google account in n8n and authorize access to this sheet.
Replace the documentId
and sheetName
fields in the Google Sheets nodes:
Sheet1
)Placeholder | Description |
---|---|
{{WEBHOOK_POST_PATH}} |
Endpoint to receive coffee counter data |
{{WEBHOOK_GET_PATH}} |
Endpoint to return latest data (for dashboards) |
{{SHEET_ID}} |
Google Spreadsheet ID |
{{GOOGLE_CREDENTIALS}} |
OAuth2 credentials for Google Sheets |
{{DATA_COLUMNS}} |
Column names in the target sheet |
Send test request:
/{{WEBHOOK_POST_PATH}}
total_coffees
valueCheck Google Sheet:
Test GET endpoint:
/{{WEBHOOK_GET_PATH}}
) in browser or fetch via APIOptional:
Respond to Webhook
output in a dashboard or frontendTags:
google-sheets
, iot
, webhook
, jura
, coffee
, api
, automation