Configuration Reference¶
Kegboard is configured in ESPHome YAML. This chapter covers the Kegboard
components; everything else (WiFi, sensors, displays, automations) is stock
ESPHome — see esphome.io. examples/ has complete
configs; packages/ has the composable pieces.
external_components:
- source: github://Kegbot/kegboard@main
kegboard¶
The hub. Required by every other component.
Option |
Default |
Notes |
|---|---|---|
|
|
Device identity in the protocol. Set explicitly to adopt a replaced board’s identity. |
kegboard_meter¶
One entry per flow meter.
kegboard_meter:
- id: flow0
pin: GPIO4
meter_number: 0
total:
name: Tap 1 Ticks
pouring:
name: Tap 1 Pouring
Option |
Default |
Notes |
|---|---|---|
|
required |
Meter input. Pulled up internally; counts falling edges. |
|
|
The protocol’s meter number: |
|
|
SwissFlow SF800 and clones (~5.4 ticks/mL). The device’s calibration is authoritative: reported volume comes from this. |
|
|
Matches the legacy firmware’s filter. |
|
|
Silence after which a pour is considered finished. |
|
|
Anything shorter is treated as a drip and discarded. |
|
|
Safety cutoff for a stuck meter; |
|
|
Throttle for sensor updates during a pour. |
|
|
Bucket width for the diagnostic tick series; |
Optional entities: total, volume, flow_rate, pouring.
Triggers: on_pour_start, on_pour_end (with ticks, volume_ml,
duration_ms).
Actions: kegboard_meter.reset_total, .end_pour, .set_calibration.
kegboard_reporter¶
Speaks the Kegboard Event Protocol to a server.
Option |
Default |
Notes |
|---|---|---|
|
required |
Full URL, path included, e.g. |
|
|
Meters whose pours are reported. |
|
|
The device’s numbered relays: |
|
|
|
|
|
Status event cadence; also bounds worst-case command latency. |
|
|
Live |
|
|
Base for exponential backoff, capped at 5 min. |
Optional diagnostic entities: queue_depth, dropped. A non-zero dropped
means events were lost and is worth alerting on.
kegboard_auth¶
Applies authenticated pouring: server-decided
grants driving valve relays and tagging pours for server-side attribution.
Requires a kegboard_reporter. (Serverless installs can gate valves with
plain ESPHome automations on the reader triggers instead.)
Option |
Default |
Notes |
|---|---|---|
|
|
Token presented while the server is unreachable: |
|
|
Device-side clamp on server-issued grants: the final bound on valve-open time. |
Actions: kegboard_auth.token_attached / .token_detached (device,
token), .revoke. Condition: .is_authorized. Triggers: on_authorized
(auth_device, token), on_denied (reason), on_revoked. Optional
entities: authorized.
Readers feed it through the actions — see examples/kegbot-full.yaml for
RFID and iButton wiring.
kegboard_onewire¶
iButton presence on a 1-Wire bus — ESPHome’s one_wire enumerates devices
but has no arrive/leave events. Triggers on_token_attached and
on_token_detached with the ROM code as hex.
Option |
Default |
Notes |
|---|---|---|
|
auto |
The bus to poll; bound automatically when exactly one |
|
|
Poll cadence. |
|
|
Consecutive misses before a detach is reported. A held iButton makes intermittent contact; reporting on the first miss would flap several times a second. |
Packages¶
Plain YAML over stock components; include what you have.
Package |
Provides |
|---|---|
|
WiFi + fallback AP, OTA, logging, native API, SNTP time, HTTP client. Expects |
|
Two GPIO relays, each with a watchdog: auto-off after |
|
Passive piezo via |
|
Chip selection + pin-map substitutions. See Hardware & Wiring. |