Skip to content

dralois/KegScale

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KegScale - A keg tracking app

Feature list

Detailed Keg Monitoring

  • Keg tracking (remaining beer, pours & level over time)
  • Temperature monitoring (current & over time)
  • Leak detection (e.g. water in the kegerator)
  • Drift correction & pour detection

Easy Keg Setup

  • Loading data from Brewfather (API, JSON) & BeerXML
  • Manually enter or update values
  • Automatic volume from weight calculation
  • No-purge burst carbonation calculator

Customizable & Easy to use

  • Modern & intuitive UI, optimized for mobile & desktop
  • Customizable units (imperial, metric or mixed)
  • Fully accessible from any browser
  • Easy cloud updates (via github)
  • Quick initial setup & easy calibration

... and more

  • Customizable monitoring & pour detection
  • Automatic device discovery & setup via mDNS
  • An optional, Raspberry Pi-based master server
  • Custom PCBs & 3D printable holders


Table of Content


KegScale Server

While this is "experimental", here is a brief explanation how to set up a Raspberry Pi KegScale server.

Requirements

  • Raspberry Pi (3 and up recommended) with Raspian already set up
  • Raspberry Pi Display, connected and already set up
  • Recommended: SSH enabled / a way to access the pi remotely

Packages

sudo apt install unclutter onboard lighttpd avahi-daemon

Setup

Additional pi config

  • Change the hostname
    • Open config: sudo raspi-config
    • System Options -> Hostname -> Set to kegscale-server
    • Optionally, change the password
  • Disable IPv6 mDNS
    • Edit file: sudo nano /etc/avahi/avahi-daemon.conf
    • Change use-ipv6=yes to use-ipv6=no
    • Change #publish-aaaa-on-ipv4=yes to publish-aaaa-on-ipv4=no
    • Restart: sudo service avahi-daemon restart

Lighttdp server

  • Setup files & updating
    • Go to the future server directory: cd /var/www/
    • Clone this repository: sudo git clone https://github.com/dralois/KegScale.git
    • Create cronjob to auto update
      • Open crontab: sudo crontab -e
      • Paste the following:
        0 0 * * * cd /var/www/KegScale && git pull
        
  • Update the server config
    • Edit file: sudo nano /etc/lighttpd/lighttpd.conf
    • Add the following
      server.add-response-header = (
          "Access-Control-Allow-Origin" => "*",
          "Access-Control-Allow-Methods" => "*",
          "Access-Control-Allow-Headers" => "*",
          "Access-Control-Expose-Headers" => "*")
      
    • Change the document root (server.document-root) to "/var/www/html"
  • Restart: sudo service lighttpd restart

Onboard (onboard-settings)

  • General: Enable Auto-show when editing text & Start Onboard hidden
  • Window: Enable Force window on top
  • Auto-show: Make sure Auto-show when editing text is enabled
  • The keyboard can be repositioned by holding enter -> Move icon

Autostart

  • Create file: sudo nano .config/lxsession/LXDE-pi/autostart
  • Paste the following
    @unclutter
    @onboard
    @chromium-browser --kiosk http://kegscale-server.local
    

Finishing up

  • Reboot, the pi should now display an overview listing all available KegScales, if this isn't the case, you have two options (under Settings)
    • Change the local domain (e.g. .lan instead of .local)
    • Add custom device IP addresses (set them up to be static beforehand)
  • The server is now accessible from anywhere in the network by visiting http://kegscale-server.local (may also be .lan or similar).

Contributing

Contributions are appreciated, feel free to report bugs, request features or directly improve / contribute to the codebase.

Bug report guidelines

  • Check if it has already been reported
  • Try to isolate the problem to a simple test case
  • Be as descriptive as possible, details always help
  • Mark the issue as a bug

Feature request guidelines

  • Check if the feature is already request
  • Be descriptive, explain why the feature is good / necessary
  • Mark the issue as an enhancement

Improving / adding code

  • Check the trello board for things to improve / add
  • For things that aren't on there yet, follow the guidelines for bugs / features first
  • Ensure sure your changes are well documented and comply with the general style of the codebase
  • Finally, create a pull request with your changes

Licensing & Thanks

While this project is distributed completely open-source and under GNU GPLv3, I explicitly prohibit commercial use. This project shall remain free of charge, selling original or modified versions of both the software and hardware, such as 3D prints and the PCBs, is strictly forbidden.

Licenses

Special Thanks