Giter Site home page Giter Site logo

craftbeerpi's Introduction

CraftBeerPI v2.2

The Raspberry PI base Home Brewing Software

Website: www.CraftBeerPI.com

Facebook: www.facebook.com/craftbeerpi

Facebook User Group: www.facebook.com/groups/craftbeerpi/

Features

  • Simple and easy installation script
  • Flexible Kettle Setup - From simple 1 kettle preserving cooker to 3 kettle RIMS or HERMS setup
  • Flexible Brew Step Configuraiton - Configure your own brew steps. From mashing over boiling to whirlpool
  • Automatic Timer Control. The Step Control will take care of your brew steps.
  • Import Recipes from "Kleiner Brauhelfer" -Plan your brew at "Kleiner Brauhelfer" and import the recipes to CraftBeerPI
  • Heater & Agitator Control - Control heater and agitator via web interface
  • Temperature Chart - Temperature data is recorded and display as a line chart
  • Mobile Device UI - Control your brew form Smartphone or Tablet
  • Additional Hardware like pumps or vents can be controlled
  • Brew Automatic with Overshoot Logic, PID Logic, Fermentation Logic.
  • Custom Automatic logics can be add
  • Recipe Book
  • Support für GPIO, PiFace or Gembird USB Socket
  • Temperature can be measured in Fahrenheit or Celcius
  • Fermentation Controller
  • Beer.xml Import

You will find lots of pictures of different setup on the CraftBeerPi Facebook Page

Donation

CraftBeerPi is a free & open source project. If you like to support the project I happy about a donation:

Donate

Support & Communities

The Community of CraftBeerPi is quite active.

Facebook:

http://facebook.com/craftbeerpi

German Forum:

http://hobbybrauer.de/forum/viewtopic.php?f=58&t=3959

Australian Forum:

http://aussiehomebrewer.com/topic/90757-craftbeerpi-brew-controller/

US Forum:

http://www.homebrewtalk.com/showthread.php?t=569497

Canadian Forum:

https://www.canadianhomebrewers.com/viewtopic.php?f=12&t=4011&sid=d58dfec3f5959858f4ed7f2f3d3404d7

Norwegian Forum

https://forum.norbrygg.no/threads/craftbeerpi-styrings-software-for-raspberry-pi.33478/

Brazilian Forum http://www.homebrewtalk.com.br/showthread.php?t=408096

Screenshots

ScreenShot

Installation

Raspbian (Noobs)

Here you will find the guide to install Raspbian

https://www.raspberrypi.org/help/noobs-setup/

Please select Raspbina as operating system.

CraftBeer PI Installation

Watch the installation video or read the installation steps below

asciicast

Clone CraftBeerPI from GitHub. Open the shell on your Raspberry PI and type the following command.

git clone https://github.com/Manuel83/craftbeerpi.git

Setup Script

After cloning the program to your Raspberry PI you just have to run the install.sh script. The script will guide you through the installation process.

sudo ./install.sh

Automatic start after boot

As part of the installation you will ask if you like to start CraftBeerPI after boot automatically. If you have selected this at the first installation just run the installation again and select 'y' when you are ask if CraftBeerPI should start after boot.

Start the Server manually

sudo python runserver.py

The App is now available under: http://<server_id>:5000

Manual

Kleiner Brauhelfer Import

To import the database from "Kleiner Brauhelfer" select "Steps". There you will find a button "Import Kleiner Brauhelfer". Upload the kb_daten.sqlite of Kleiner Brauhelfer.

You will find the sqlite file on your computer at.

Windows: USER_HOME/.kleiner-brauhelfer/kb_daten.sqlite

Mac: USER_HOME/.kleiner-brauhelfer/kb_daten.sqlite

Refresh the "Import Kleiner Brauhelfer" page. Select the brew you want to load. After this you will asked for the MashTun and the Boil kettle of the brew.

Hardware Setup

  • 1 x 1-wire Temperatursensor DS1820 Waterproof! (ebay)
  • Thermowell stainless steel - in gewünschter Länge (sensorshop24.de)
  • 1 x 4.7k Ohm Resistor (Pollin.de, Conrad.de, Reichelt.de)
  • Jumper Cable (ebay)
  • 2 x Solid-State Relais XURUI (Pollin.de, Conrad.de, Reichelt.de)
  • Heatsink KAB-60 (Pollin.de, Conrad.de, Reichelt.de)
  • Breadboard SYB-46 (Pollin.de, Conrad.de, Reichelt.de)
  • Raspberry Pi (Model A+, 2 Model B) + Power Cable + SDCard (Pollin.de, Conrad.de, Reichelt.de)

ScreenShot ScreenShot

Use with CHIP computer

NextThing Co sells the C.H.I.P. Computer which offers similar functionality to a RaspberryPI. It is less expensive however, and has 4GB storage plus wifi built in. Access to GPIO is available, and 1wire thermometer devices are supported as well.

The 1wire device must send data in through port LCD-D2.

GPIO pin names can be found at https://github.com/xtacocorex/CHIP_IO

Start CraftBeerPI in Kiosk Mode

The Kiosk Mode requires that CraftBeerPI is start at boot. Make sure that SSH is still enabled otherwise its not possible remove this kiosk mode.

sudo raspi-config

Change your boot to desktop environment. This will start-up the GUI instead of the CLI and automatically will login to user 'pi'.

Install Chromium Browser

sudo apt-get install chromium

Change startup Config

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

Change the file that it looks like this

@lxpanel --profile LXDE
@pcmanfm --desktop --profile LXDE
@xset s off
@xset -dpms
@xset s noblank
@sed -i 's/"exited_cleanly": false/"exited_cleanly": true/' ~/.config/chromium/Default/Preferences
@chromium --noerrdialogs --kiosk http://localhost:5000 --incognito

Reboot the Raspberry PI

sudo reboot

User Pictures

ScreenShot ScreenShot ScreenShot ScreenShot ScreenShot ScreenShot ScreenShot ScreenShot ScreenShot

craftbeerpi's People

Contributors

aalhuhnsuppe avatar ahm74 avatar b-studios avatar bfonn avatar carsx avatar chiefwigms avatar claudiobr74 avatar dguder avatar henneonrails avatar hirschmann avatar hrafnkell avatar jlongstreet avatar manoode avatar manuel83 avatar mord4z avatar rmoe avatar stone avatar tomandre76 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

craftbeerpi's Issues

Warning when overwritting recipe

Wenn man unter einem bestehenden Namen ein Rezept speichert wird dieses überschrieben. Das Verhalten finde ich grundsätzlich Richtig, aber eine Warnung mit Bestätigung wäre sinvoll.

Add shutdown button

Since CBP is generally operated via another device it would be handy to have a button or icon on the Web page that initiates a system shutdown to prevent corrupted SD cards.

Number of steps limited to ten

Die Anzahl der programmierbaren Schritte scheint aktuell auf 10 limitert zu sein. Da ich die Hopfengaben auch einprogrammiere wäre es gut wenn mehr möglich wären.

Versucht man einen 11. Schritt zu speichern verschwindet dieser ohne Warnung im Nirgendwo.

Könnte in dem Sinne auch ein Feature Request sein ;-)

Issue installing CraftBeerPi on new Raspbian install

Freshly installed Raspbian from NOOBS. RPI 2

While running the install I get the below, any help would be appreciated.

libpcre3-dev is already the newest version.

0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Downloading/unpacking blinker==1.3 (from -r requirements.txt (line 1))

Cleaning up...

Exception:

Traceback (most recent call last):

File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main

status = self.run(options, args)

File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 290, in run

requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle

)
File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1178, in prepare_files

url = finder.find_requirement(req_to_install, upgrade=self.upgrade)

File "/usr/lib/python2.7/dist-packages/pip/index.py", line 194, in find_requirement

page = self._get_page(main_index_url, req)

File "/usr/lib/python2.7/dist-packages/pip/index.py", line 568, in _get_page
session=self.session,

File "/usr/lib/python2.7/dist-packages/pip/index.py", line 694, in get_page
req, link, "connection error: %s" % exc, url,

TypeError: str returned non-string (type Error)

Storing debug log for failure in /root/.pip/pip.log

Temperature set to 0° after creating a new step

After creating a new step during a running process (in my case fermentation - I want to add a additional step to increase the temp +1C° from 10C° to 11C° ) I created a new step with a new target temperature, go back to the dashboard, clicked the button to activate the next step and the target temperature was set to 0C° not the registered one.

After resetting the whole process and activating the steps all target temps works fine. The issue is reproducible.

...Alex

Buzzer Problem with PiFace

Buzzer piepst nicht wenn dieser über die PiFace angesteuert wird. Hier eine Variante von /craftbeerpi/brewapp/base/buzzer.py die mit PiFace läuft als Beispiel:

from brewapp import app
from views import base
from util import *
import time
from thread import start_new_thread
import pifacedigitalio as piface

###
@brewinit()
def initBuzzer():
    buzzer_gpio = app.brewapp_config.get("BUZZER_GPIO", None)
    app.logger.info("BUZZER GPIO: " + str(buzzer_gpio) )
    try:
        #GPIO.setup(buzzer_gpio, GPIO.OUT)
        #GPIO.output(buzzer_gpio, 0)
        import pifacedigitalio as piface
        print app.logger.info("SETUP PiFace Module Loaded for Buzzer")
    except Exception as e:
        app.logger.error(e)

def nextStepBeep():
    start_new_thread(playSound,(sound1,))

def timerBeep():
    start_new_thread(playSound,(sound2,))

def resetBeep():
    start_new_thread(playSound,(sound3,))

## Melodie Pattern
## H = HIGH
## L = LOW
## Float value as pause
## it must be a L at the end to turn the sound off
sound1 = ["H",1.0,"L"]
sound2 = ["H",0.2,"L",0.2,"H",0.2,"L",0.2,"H",0.2,"L"]
sound3 = ["H",0.1,"L",0.1,"H",0.1,"L",0.1,"H",0.1,"L"]

## Logic to play the sound melodie
def playSound(melodie):
    try:
        buzzer_gpio = int(app.brewapp_config.get("BUZZER_GPIO", None))
        if(buzzer_gpio == None):
            return
        for i in melodie:
            if(isinstance(i, str)):
                if(i == "H"):
                    #GPIO.output(buzzer_gpio,GPIO.HIGH)
                    piface.digital_write(buzzer_gpio,1)
                else:
                    #GPIO.output(buzzer_gpio,GPIO.LOW)
                    piface.digital_write(buzzer_gpio,0)
            else:
    start_new_thread(playSound,(sound3,))

## Melodie Pattern
## H = HIGH
## L = LOW
## Float value as pause
## it must be a L at the end to turn the sound off
sound1 = ["H",1.0,"L"]
sound2 = ["H",0.2,"L",0.2,"H",0.2,"L",0.2,"H",0.2,"L"]
sound3 = ["H",0.1,"L",0.1,"H",0.1,"L",0.1,"H",0.1,"L"]

## Logic to play the sound melodie
def playSound(melodie):
    try:
        buzzer_gpio = int(app.brewapp_config.get("BUZZER_GPIO", None))
        if(buzzer_gpio == None):
            return
        for i in melodie:
            if(isinstance(i, str)):
                if(i == "H"):
                    #GPIO.output(buzzer_gpio,GPIO.HIGH)
                    piface.digital_write(buzzer_gpio,1)
                else:
                    #GPIO.output(buzzer_gpio,GPIO.LOW)
                    piface.digital_write(buzzer_gpio,0)
            else:
                time.sleep(i)
    except Exception as e:
        print app.logger.error("ERROR")

Sub-Steps

As someone mentioned on Facebook. Sub-steps. I would like to have the ability to initiate heating of the spargewater in HLT at the same time as I do the Mash in another kettle.

push button shutdown of Pi

would be great if you could incorporate this into next build. Would make it so much easier to shutdown the brewery when your done. I know its only a couple lines of code so should be a quick addition.

Umstellung auf dev2.1

pi@raspberrypi:~/craftbeerpi $ sudo python runserver.py

Traceback (most recent call last):
  File "runserver.py", line 4, in <module>
    from brewapp import app, socketio
  File "/home/pi/craftbeerpi/brewapp/__init__.py", line 50, in <module>
    from .base.views import base
  File "/home/pi/craftbeerpi/brewapp/base/__init__.py", line 6, in <module>
    import kettle
  File "/home/pi/craftbeerpi/brewapp/base/kettle.py", line 9, in <module>
    from brewapp.base.automatic.automaticlogic import *
  File "/home/pi/craftbeerpi/brewapp/base/automatic/__init__.py", line 4, in <module>
    import custom
ImportError: No module named custom
pi@raspberrypi:~/craftbeerpi $ git status
Auf Branch dev2.1
Ihr Branch ist auf dem selben Stand wie 'origin/dev2.1'.
nichts zu committen, Arbeitsverzeichnis unverändert
pi@raspberrypi:~/craftbeerpi $ 
`

dev 2.2 - just background-image

Just getting the background-image in Safari on my Mac. Chrome and Firefox works fine. On my iPhone I also just get det background-image in Safari and also Chrome. This did work fine in 2.1

Uhrzeit

Es wäre schön, wenn bei den Zeiten die Systemzeit genommen würde. Im Moment sieht es mir so aus als würde hier die GMT benutzt.

harder 'Reset'

when resetting on the Mash step, the relay is still ON.

So when Starting again, after a reset, on the "Prepare HL" I can see two relays on.

Please add more 'reset power' to the reset button :)

Parameter in overshoot logic is not used

Maybe I just don't understand the code... But I expected to find the target temperature being altered by the parameter. Either up or down. But it seems not to be used at all.

SimpleFermentationLogic: add hysteresis

When using SimpleFermentationLogic the cooler is toggeling GPOI multiple times in less than a minute.
It would be usefull to get a little hysteresis build in to save the coolers live.

I´m no crack in python but i´ll try to get this solved using codesnippete from the overshoot logic.
As far as i can see you have already provided the basics with the "overshoot" variable

Heating

Hi... I have just a question about the heating...
Is the heating power regulated trough PWM?
I habe a BIAB setup where i need to do that...
thanks

Support for multi-step or step-less controllable heaters

We use an induction cooker in our brew setup. We made the induction cooker controllable via relays that "simulate" pressed buttons on the button panel of the cooker. We can now control the cooker via a custom control software in 9 steps.
We hacked your software to support our setup. In particular, dummy GPIO and PID logic write the heater state (output power percentage) to a file, our control software reads the file, and translates the state to a key press combination for the induction cooker.
The solution works, but we would prefer a more sophisticated implementation (The heater button in the webinterface could for example show the current heater output power).
Did you foresee support for multi-step or step-less controllable heaters in your design? I'm afraid the architecture is quite bound to using exactly one GPIO for a heater that can only be switched on or off. Maybe you see an easy and elgant way to add support for our setup in your software?

Add "Are you sure" before reset

when clicking "reset" in the dashboard while running a receipt:

  • open a dialog with text "Are you sure?"
  • only reset if Yes is clicked.

Unable to configure kettle agitator / heater with PiFace

Wollte eigentlich Morgen mit der Version dev2.2 commit f61974e brauen und das wieder mal richtig testen. Leider ist es nicht möglich die PiFace Ausgänge in dem Setup der Kettles zu machen, es wird einfach keine Auswahl angeboten:

screenshot2

Interessanterweise klappt das aber einwandfrei bei der Ansteuerung der zusätzlichen Hardware:
screenshot3

Habe verschiedene Browser getestet und cache, cookies usw. gelöscht.

Delete single step

Es ist nicht möglich einzelne Schritte komplett zu löschen.

Beispiel: Ich lade ein ganzes Rezept aus dem Rezeptbuch und möchte die Eiweissrast löschen.

Ein Mülleimer-Sypbol unten in dem Feld wäre wünschenswert:
screenshot1

Database error after changing to dev2.2

Trying to switch to the new dev2.2 and pulling the new files, the server wont start.
during a manual "runserver.py" it ends up with an sqlite3 error;

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: hardware.config [SQL: u'SELECT hardware.id AS hardware_id, hardware.name AS hardware_name, hardware.type AS hardware_type, hardware.config AS hardware_config \nFROM hardware']

It seems to me as this would be corrected if we installed the software in 2.2 version, as the tables and columns would be created as the initial setup, but not during a switch from master to dev?
There are several changes on the folder structure as well, so might be a simple fix to where its refering to an old path?

Control Box LCD Display

As per my facebook post, can you guys add the ability to show short brew process description with counter and current sequence step, next step etc on an LCD screen. Ideally 4 lines?

Settings link on dashbord not working

In Chrome funktioniert die "Settings Taste" nicht. Diese verweist auf den Link IP/base/#/kettle/1 bzw IP/base/#/kettle/2, angezeigt wird aber nichts:
screenshot4

In Firefox wird die Taste nicht dargestellt:
screenshot2

Licensing of craftbeerpi forbids any changes

Creating an Issue to follow up on the discussions on the facebook-page. The current license is very restrictive and makes it impossible to change the code and restricts its usage. In the spirit of many other projects like this one (brewpi, brewfactory..) please consider changing the license to an Open Source / Free Software one to encourage developers and other to join in and contribute to the project.

Add Timers and Hop Alarms

It would be very userful to have the possibility to configure some timers/counters for HOP additions in the brew. This could be added in the brew- schedule during boil adding multiple alarms . Maybe with a item on the screen that shows a counting down time and starts to blink and make a sound when its time to add the hop. Or some counter (s) that you just can select optionally to show on the screen and startup yourself for example like this page http://www.online-stopwatch.com/countdown-timer/

Hide from dashboard....

Nice to have the chance to choose "Hide from Dashboard" when doing the setup. Had to go through all hardware after setup was finished.

Donation

bildschirmfoto 2016-05-09 um 11 34 17

I always get an error trying to donate your work. Would you please distribute a valid paypal email address, so one could send you some money.

regards Holger

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.