Vad som började med en enkel tanke har med tiden växt sig till ett tämligen omfattande, men kul projekt. Nu kan vi brygga live och spegla bryggverket direkt på hemsidan.
Jag har alltid vetat att ölbryggning skulle kunna gå att kombinera med en av mina andra hobbies, programmering och databashantering. Det är sådär lagom nördigt men om man utgår från att en av dimensionerna i ölbryggning är att förstå processen och kunna upprepa den så förstår man också hur bra dessa två hobbies passar ihop. Att få kontroll kräver att man också vet och kan dokumentera vad man gjort och hur det gick. Därför borde en bryggerikontroll vara ett perfekt verktyg och sidoprojekt.
Själva idéen började när jag funderade kring varför kopplingen mellan brewfather och bryggverk var så ostabil. Dessutom, borde det inte vara möjligt att hitta ett bättre sätt att göra det på så att man kunde få ut kurvor och data på liknande sätt som man gör med jäsningen i brewfather? Det var då jag hittade gfconnect.
gfConnect
gfConnect är ett projekt med några år på nacken. Men det såg ut att vara precis vad jag letade efter. Så jag plockade fram den RasberryPi jag hade köpt tidigare för att köra tilt-programmet på och installerade ett vanlig OS på den istället. Allt detta var helt orörd mark för mig så det blev till att ta hjälp av Chat GPT för att få den att snurra med webserver, MariaDB, och allt annat som behövdes. gfConnect använder Node-Red vilket var en helt ny bekantskap för mig men kunskap är som bekant en lätt börda. Sakta började jag förstå mer och mer och hur det hänger ihop. Jag insåg då att med hjälp av detta kan man bygga något betydligt större.
Men jag började litet. gfConnect fungerade faktiskt bra och kunde göra det den sa att den kunde. Den ersätter Grainfathers egna program eller för den delen Brewfather Grainfatherkoppling. Man har en inbyggd koppling till Brewfather i interfacet och kan där direkt hämta sina bryggningar via API och sända dem till bryggverket. Det är någorlunda stabilt och om kopplingen tappas under bryggningen plockar gfConnect upp den själv. Det är endast en gång av alla de bryggningar jag kört som den helt tappade kopplingen efter en stund. Med Brewfather var det snarare lag att den gjorde det.
Med gfConnect i botten utvecklade jag en databaskoppling som lagrade hela bryggningen med temperatur, pumpdata samt alla moment och steg. Jag skapade också några API-anrop som jag kunde använda på hemsidan för att göra en bryggpanel som helt speglade vad man såg i bryggverket i realtid. Nyttigt? Nja, men väldigt skoj!
Bryggprocessprogram
Det väl där någonstans jag insåg att jag utvecklat något som jag redan växt ur. Vad jag ville ha var snarare något som band ihop alla delar i bryggeriet. Bryggningen var en sak, men jag ville kunna knyta ihop det med jäsning och planering också. Med målbilden av en dashboard att ha i bryggstugan som visade alla processer och vad vi har på gång blev det till att riva och börja om!
Jag behöll gfConnect på Rasberryn. Den behöver såklart stå nära bryggverket. Den blev nu en av enheterna i bryggeriprogrammet istället. En gammal uttjänt Windows 10 maskin fick nytt liv som Linuxserver och allt installerades om på nytt i den maskinen. Delar av programmet som gick att återanvända flyttades över och ett helt nytt tänk fick göras.
Jag behöll Node-Red som utvecklingsplattform. Jag hade verkligen börjat gilla hur lätt den kunde kopplas ihop med andra enheter och interface. Att sätta upp en webbkoppling är så enkelt, bara för att nämna något. Likaså databaskopplingar. All den lågnivåkod man brukar behöva har redan någon annan gjort åt en. Jag lärde mig även om MQTT och hur man enkelt sänder meddelanden mellan enheter.
Första versionen
Efter mycket programmerande och fixande har jag nu en fullt fungerande generisk processhanterare. Med standardiserade meddelanden kan jag enkelt koppla in nya enheter genom att bara lägga till en rad i databasen eller, om det är en ny typ av enhet, skapa ett nytt flöde som normalisera meddelanden till mitt standardformat. På så vis kunde jag till exempel koppla in en ny Graviator till bryggeriprogrammet på en timme, trots att jag inte haft något direkt stöd för den innan. Den termometer och luftfuktighetssensor jag stoppat i bryggkällaren (ZigBee) tog lite längre tid, en halv dag, eftersom jag även behövde skapa ett nytt ZigBee flöde först. Men så snart det var klart började den logga data på samma vis som alla andra enheter. Och nästa ZigBee-enhet kommer vara betydligt enklare att få på plats.

Flödet som hanterar kommunikationen mot Brewcreator
Alla enheter vi har kan nu kommunicera med bryggeriprocessprogrammet. Nu är det mest sensordata som lagras men i skrivandes stund håller jag på att definiera kommandostrukturen och göra den generisk på samma vis. Jag kan till exempel redan nu lätt justera temperaturen på ferminatorerna från programmet och att därifrån göra en total styrning är inte svårt. Fördelen i att kunna styra jäsprocessen exaktare och helt automatiskt med temperaturjusteringar med mera är väldigt skoj. Detta är också det sista steget innan det verkligt roliga börjar när vi knyter ihop allt till en dashboard och bryggerikontroll. Uppdatering kommer!
Livepanel
Hur gick det med live-panelen då? Jo, efter att återställt allt och justerat gfConnect att leverera data mot bryggeriprocessen på rätt sätt är livepanelen åter igång. Håll utkik på den här sidan. När vi brygger kan man där live se vad som händer i bryggverket. Så här ser den ut.

Lämna ett svar