Kategorien
Allgemein

Vorstellung meiner kleinen Brau-Webapp

In dem heutigen Beitrag möchte ich dir meine kleine Brau-Webapp vorstellen. In meiner Brauküche läuft die Anwendung auf einem Raspberry Pi 3 Model B. Es handelt sich um eine Webanwendung, die ich mit Python, Django, HTML und ein wenig CSS entworfen habe. Die Temperaturmessung übernimmt ein DS18B20.

Als Bierbrauer führt man natürlich akribisch genau Buch: Welche Zutaten sind im Bier, wie sieht der Maische- und Hopfenplan aus, wie lange dauert die Nachisomerisierung, welche Stammwürze hat das Bier und noch vieles mehr. Außerdem muss während des Brauvorgangs ständig ein Auge auf die Temperatur und die Zeit geworfen werden. In meiner bisherigen Laufbahn als Bierbrauer habe ich bereits diverse Lösungen ausprobiert, aber mit keiner dieser Lösungen war ich so zufrieden wie mit der aktuellen kleinen, aber feinen selbstentwickelten Brau-Webapp.

Abbildung 1: Übersicht Brauerzeugnisse

Was habe ich bisher ausprobiert? Der Weg fing ganz klassisch mit einem Stift und einem Blatt Papier an. Die nächste Station war dann wohl eine Excel-Datei, die ich in meiner Dropbox versucht habe zu pflegen. So richtig gut hat das allerdings nie geklappt. Für einen kurzen Wegesabschnitt habe ich den kleinen Brauerhelfer und auch den CraftBeerPi getestet. Optimal waren diese Lösungen für mich jedoch nicht. So war die einzige Konstante der Stift und das Notizbuch. Dies führe ich übrigens noch heute, als analoges Backup.

Abbildung 2: CraftBeerPi im Einsatz

Wie sah es mit der Temperaturmessung aus? Ich habe schon von Anfang an mit einem DS18B20-Sensor gearbeitet. Anfangs mit einem ESP8266 und einem kleinen Display. Später dann mit einem Raspberry Pi. Hier liefen ein paar Zeilen Python-Code ab (hier gehts zum Quellcode). Zwischenzeitlich dann aber auch mit dem CraftBeerPi. Die Temperaturaufzeichnung gefiel mir hier sogar schon recht gut.

Abbildung 3: Temperaturmessung mit einem ESP8266 und zwei DS18B20-Sensoren

Warum entschied ich mich, eine kleine eigene Brau-Webapp zu entwickeln? Hierfür gibt es mehrere Gründe. Zum einen hatte ich natürlich Bock auf programmieren und wollte mich in das Django-Framework einarbeiten. Aber was sind die technischen Gründe für die Entwicklung einer weiteren Brau-Webapp? Gibt es nicht bereits genügend auf dem Markt? An sich ist der CraftBeerPi eine hervorragende Lösung für Hobbybrauer, aber für meinen Geschmack ist dieses Projekt zu sehr auf die Automation ausgelegt. Ich präferiere beim Brauvorgang jedoch den Holzstab in der Hand und den Gasbrenner unter der Würzepfanne. Automatisiert habe ich quasi nichts und verspüre auch nicht den Drang dies zu tun. Vielmehr fehlt mir jedoch der „Tagebuch-Charakter“ beim CraftBeerPi. Das Schöne an einer Webapp ist, dass diese immer aufrufbar ist. Zuhause, wenn man im Heimnetzwerk ist oder unterwegs per VPN. So habe ich die Temperatur während des Brauvorgangs auf dem Handy oder Tablet immer im Auge und kann unterwegs auch noch einmal nachschauen, was ich in letzter Zeit so gebraut habe. Wenn man dann noch auf Daten, Zahlen und Fakten steht und schöne Graphen seiner eigenen Bierbraukunst erstellen möchte, muss man auf digitale Hilfsmittel zurückgreifen. Also hieß es für mich: „Ran ans programmieren!“

Abbildung 4: Hopfenstatistik von Pixelbräu

Ich möchte an dieser Stelle nicht in meinen Quellcode eintauchen. Die Sourcen sind auf github zu finden. Der Quellcode ist sicherlich auch noch verbesserungsfähig. Angefangen bei der Bezeichnung von Variablen über die Datenbankstruktur bis hin zu grundlegenden Funktionen wie die Temperaturmessung. Aber blicken wir einmal tiefer in die Funktionen hinein.

Bevor man anfängt zu brauen wird natürlich ein Rezept benötigt. Dies enthält grundlegende Informationen wie: Titel, Datum, Zielvolumen, Stammwürze, Restextrakt, Alkoholgehalt und noch vieles mehr. Diesem Rezept müssen im zweiten Schritt ein Maischeplan und ein Hopfenplan hinzugefügt werden. Also welche Malzsorten, welche Temperaturrasten, welche Hopfenmengen und welche Hopfengaben gehören zum Bier. Sind diese dokumentarischen Schritte erledigt, kann gebraut werden. Auf der Übersichtsseite des Rezeptes ist die aktuell gemessene Temperatur der DS18B20-Sensoren zu finden. Soll der Brauvorgang losgehen, muss per Button das Logging aktiviert werden. Nun wird immer der aktuelle Prozess mit der dazugehörigen Solltemperatur angezeigt.

Abbildung 5: Übersichtsseite eines Reszepts

Sind die Bedingungen erfüllt, um in den nächsten Prozessschritt überzugehen, ändert sich die Anzeige entsprechend. So wird also automatisiert die Dauer der Temperaturrasten oder des Hopfenkochens gemessen. Während das Logging aktiv ist, werden die Temperaturwerte in einer Datenbank gespeichert. Mit dem Highcharts-Framework werden daraus die Temperaturverläufe visualisiert. Nebenbei kann die Datenbank analysiert werden. So kann man herausfinden, welches seine Lieblingshopfensorte ist oder welches das bitterste Bier ist, das bisher gebraut wurde.

Ich habe bereits Ideen für Erweiterungen der kleinen Webapp. Es wäre z.B. denkbar eine Hopfen- und Malzdatenbank anzulegen, in der Infos wie Herkunft, Aromaprofil, Alphasäuregehalt, EBC-Wert usw. zu den einzelnen Sorten hinterlegt sind. Per Mouseover könnten diese Informationen abgerufen werden. Hieraus könnte dann auch automatisch die Bittere des Bieres in IBU berechnet werden. Mit einem Alkoholrechner könnte automatisch aus Stammwürze und Restextrakt der Alkoholgehalt des Bieres berechnet werden. Ein weiteres Feature wäre die Wiederholung eines bereits gebrauten Bieres. Hierbei würden die dokumentarischen Tätigkeiten reduziert werden und während des Brauvorgangs könnte der aktuelle Temperaturverlauf mit dem „alten“ Temperaturverlauf verglichen werden. So schafft man es vielleicht eher ein Bier ein zweites Mal zu brauen ohne dass es völlig anders schmeckt.

Mein heutiger Musik-Tipp: 23 von Jimmy Eat World


Weiterführende Infos:
BrewingDiary: https://github.com/Ulofemi/BrewingDiary
CraftBeerPi: http://web.craftbeerpi.com/
kleiner-brauhelfer: https://github.com/kleiner-brauhelfer/kleiner-brauhelfer-2
BeerPiDisplay: https://github.com/Ulofemi/BeerPiDisplay

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.