Kegerator / Bar Monitoring Tool. RaspberryPi + Docker + Beer + Metrics + Slack
Switch branches/tags
Nothing to show
Clone or download
He who is brandon gulla
He who is brandon gulla fixed build script
Latest commit 9d5a166 Jul 8, 2018
Permalink
Failed to load latest commit information.
config adding Slack integration May 15, 2018
dashboard pour one out Apr 19, 2018
db adding travis ci integration Jul 8, 2018
img fixed slack May 22, 2018
src added scrollphat test harness; Jul 2, 2018
.gitignore fixed slack May 22, 2018
.travis.yml spelling Jul 8, 2018
Dockerfile fixed build script Jul 8, 2018
README.md adding travis badge Jul 8, 2018

README.md

boozer - Kegerator Monitoring Toolkit

Build Status

The Bar That Started It All

Boozer was recently featured in Hackaday

Features

Kegerator monitoring/volume tracking tool writting in Python.

  • Track the remaining beer volume of your kegs! Flow sensors keep a running log of your remaining beer volume, using SQLITE.
  • Slack & Twitter functionality. Sharing is caring.
  • Temperature Monitoring. via sensors2json microservice

Supported Notification Platforms

Boozer can tweet out whenever a new pour event is detected. The following notification platforms are supported:

  • Slack (webhook) Slack
  • Twitter (oauth)
  • Untappd Auto-Posting. (I broke this, hoping to fix it soon)

Hardware

The following hardware was used in the inital build of boozer but not necessarily required.

Pouring in motion Breadboard

Running in Docker

Simplify deployment with Docker. Instructions for installing docker on RaspberryPi's here. Works in Kubernetes, if you're into the whole distributed computing thing.

docker run --rm  -d --name="boozer" \
    --privileged \
    -v <config.ini>:/boozer/config.ini \
    -v <db.sqlite>:/boozer/db.sqlite \
    -t bgulla/boozer

Configuration Sample

[Taps]
tap1_gpio_pin: 24
tap2_gpio_pin: 26 
tap3_gpio_pin: 12 
tap4_gpio_pin: 13
tap1_beer_name: American IPA
tap2_beer_name: Irish Red Ale
tap3_beer_name: Seltzer Water
tap4_beer_name: disabled

[Slack]
enabled: True
webhookurl: https://hooks.slack.com/services/xxx/xxx/xxx

[Temperature]
enabled: True
endpoint: http://localhost:8888/chillerf

[Twitter]
enabled: False
consumer_key=""
consumer_secret=""
access_token=""
access_token_secret=""

[Scrollphat]
enabled: True

[Mqtt]
enabled: True
broker: localhost
port: 1883

Toolkit

🍺  pi@bar[/opt/boozer] >docker exec -ti boozer python /boozer/toolkit.py -h
usage: toolkit.py [-h] [--reset-tap RESET_TAP_ID] [--printval] [--temp]
                  [--mqtt]

Example with long option names

optional arguments:
  -h, --help            show this help message and exit
  --reset-tap RESET_TAP_ID, -t RESET_TAP_ID
                        Reset the database value for a tap
  --printval, -p        print all tap volumes
  --temp                print the temperature values
  --mqtt, -m            update the tap values in mqtt broker
  --scrollphat, -s      Test the functionality of the SCROLLPHAT display.

Print Remaining Keg Volumes

🍺  pi@bar[/opt/boozer] > docker exec -it boozer python /boozer/toolkit.py --printval
Loaded config...
        Database file:  /boozer/db.sqlite
----------------------------------------------------
        Tap 1 | 100.0 remaining
        Tap 2 | 100.0 remaining
        Tap 3 | 100.0 remaining
        Tap 4 | 100.0 remaining

Force-Update MQTT Broker

🍺  pi@bar[/opt/boozer] > docker exec -it boozer python /boozer/toolkit.py --mqtt
Loaded config...
        Database file:  /boozer/db.sqlite
----------------------------------------------------
[MQTT] updated tap 1
[MQTT] updated tap 2
[MQTT] updated tap 3
[MQTT] updated tap 4

Reseting Taps

The time will come to change out your kegs and rather than editing sqlite directly, use the toolkit script to reset your keg volume available to 100%.

🍺  pi@bar[/opt/boozer] >docker exec -ti boozer python /boozer/toolkit.py --reset-tap 1
Loaded config...
	Database file:	/boozer/db.sqlite
----------------------------------------------------
current [Tap 1 ] 0.00 remaining
Are you sure that you reset tapid: 1 (y/n): y
Record: Tap 1 Volume 0
Reset Tap  1
updated! [Tap 1 ] 1.0 remaining

Grafana Integration

With a little help from Telegraf and the Mqtt message broker, bar stats are viewable in real time with Grafana.

Grafana is awesome

Home Assistant

Home Assistant is a great tool to pull together all of your home's smart IOT devices into an easy to use, secure tool. Since Boozer can speak mqtt, it can be easily integrated into Home Assistant. Home Assistant

Build Pictures

Photos of the bar making process are available here.

FAQs

Most of your questions can probably be answered in the reddit post or the Hackaday feature.

Press:

Updates

  • 5-22-2018: Temperature sensors are now optional.
  • 7-1-2018: Toolkit functionality finally documented. Reset tap db values and more.