Ideas for a brewday voice assistant?

Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum

Help Support Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

pepindavid

Well-Known Member
Joined
Dec 17, 2015
Messages
137
Reaction score
71
Hi everyone,

I started playing around building voice assistants (that can be invoked through Google Home or Alexa, for example).

Just for fun, I may try to build an assistant you can summon with your voice (while brewing, or bottling, for example), to get some answer "hands-free".

The first step is to determine what things brewers may want to ask a voice assistant. From what I've seen so far, it needs to be relatively short, and relatively straightforward. Here's my list of potential "tasks" so far:

  • Temperature conversion (C and F)
  • Volume conversion (gallons and L)
  • Weight conversion (g, kg, oz, lbs)
  • Gravity conversion (Plato, SG, Brix)
  • Dilution (how much water do you need to add to get to a specific gravity)
  • Adding DME or sugar to attain a specific gravity
  • Calculate ABV
  • Calculate relative bitterness (with or without taking into account attenuation)
  • Yeast cell count needed
  • Sugar needed for carbonation level
Is there anything else you can think of that you may want to get an answer for without having to whip out your phone or your laptop?

I'm not sure if this will really eventually become something available at large (and if it would event be useful). The goal for me is more to keep learning on conversational design - but it may eventually work!

Any insight on how homebrewers could use an interactive voice assistant could be useful.

Thanks!
 
Have you tried those with an assistant? I would bet you will get from Alexa: "Hmmm, I don't know that one." for a lot of those.
 
Have you tried those with an assistant? I would bet you will get from Alexa: "Hmmm, I don't know that one." for a lot of those.
But that's the thing: using a software like DialogFlow, you can build Google Actions and Alexa skills that handle specific conversations. The downside is that you need to download the skill (Alexa) or invoke the Action (Google).

For example, you could say "Hey Google, talk to Brewday Assistant". This would invoke the action I would create, and from there on, that action would handle all dialogues until you leave the action. So you're not limited to built-in actions from Alexa or Google.

It's pretty interesting, the way it works: you build "intents", which are similar to "tasks", and you prepare a reply for that intent.

For example, anytime someone says "I want to convert temp X to Celsius", or anything similar (that's handled by the Natural Language Processing function), it triggers the right intent, which looks for the right variables (and asks them to user if necessary), and replies back the correct answer (using fulfillment code).

Here's another example of how a dialogue could go:

User: Hey Google, talk to Brewday assistant.
(invokes the Google Action, and starts the Welcome intent)
Assistant: Welcome to Brewday Assistant! What do you need help with?

User: I want to know how much sugar to add to my bottling bucket.
(triggers the "Carbonation sugar" intent)
(looks for variables needed, and asks for what's missing)
Assistant: what's your bottling volume?

User: 5 gallons

Assistant: what's your target volume of CO2?

User: 2

Assistant: What was your fermentation temperature?

User: 68F

Assistant: What priming sugar will you use?

User: Table sugar

(Assistant goes to fulfillment code, uses the variables, and spits back the answer):

Assistant: To get 2.0 volumes of CO2, use 3 oz of table sugar. Do you need help witgh something else?

***

The beauty of this is that is the user gives some info up front, the assistant won't have to ask them agin:

...

User: How much table sugar do I need to get 2.2 volumes of C02 if I have 5 gallon of beer to bottle?
(Triggers the same carbonation intent, captures the variables, and only asks what's missing):
Assistant: What was your fermentation temperature?

User: 66F

Assistant: use...


Anyway, that's the idea. :)
 
Yes, you can set up all that. I was thinking you were just going to ask the question, then it would be unlikely the answer to the more brew specific calculations would be answered.

If you took the time to set up all the calculators in your "brewday assistant" I believe that you would have a very useful tool.

I don't think I would need to make the conversions often enough to warrant going through the process of making the "assistant". But that is just me.

Now, if you make one that works with Alexa, and it can be copied and installed as a routine or something I would be interested.. You do the work and I will benefit from your toils... ;)
 
That's a pretty cool idea man. I'm an accountant so I live inside excel and am very comfortable building spreadsheets for calcs or just using websites(although I do like making my own) but I'm admittedly old school. I haven't embraced a ton of the voice activated devices to do much yet but that is definitely where we're heading. My kids love telling Alexa to fart though
 
great ideas. I could really use the ones for convert brix to SG and and hydrometer corrections. I am always pulling up my calculator during the brew day to run those and then have go enter the data somewhere else. Clumsy.

Here is another thing I use manual calculator for on brew day...weighing grain. I weigh my grain on a scale that accommodates about 10 pounds in a container that holds about 8 pounds. I use metric to make the math easy so I frequently need about 10kg base malt. Going to be 3-4 scoops with my container depending on how full I get it. I'd like alexa to keep track of how much I have weighed out so far and how much I still need.

Here is another one. Can alexa talk to my tilt hydrometer without the need for a phone in between? Why can't that alexa dot do the same job as my phone, grab the data from the tilt and shoot it to brewstat.us?
 
Can alexa talk to my tilt hydrometer without the need for a phone in between? Why can't that alexa dot do the same job as my phone, grab the data from the tilt and shoot it to brewstat.us?

i just imagine HAL's voice, "Eric, your wort has dropped another 5 points of gravity. at this rate of fermentation, you should be drunk in 3 weeks"

great ideas. I could really use the ones for convert brix to SG and and hydrometer corrections. I am always pulling up my calculator during the brew day to run those and then have go enter the data somewhere else. Clumsy.

that would be handy, i use all the beersmith calcs, a lot.....


(and sounds like you need a better scale and a bigger bucket for that problem)
 
[...]Here is another one. Can alexa talk to my tilt hydrometer without the need for a phone in between? Why can't that alexa dot do the same job as my phone, grab the data from the tilt and shoot it to brewstat.us?

Theoretically, it could, but you'd need a Dot Bluetooth profile for the Tilt and a skill to use it.
Would be kinda cool to have Alexa announce wort gravity :D

Cheers!
 
Over my head. Who can do this? I want this!

I can try to build the necessary "conversation" I'm DialogFlow (to be eventually ported to a Google Action and an Alexa skill), but I the JS needed to read the iBeacon and parse the data is over my head too... We'll see!
 
First thing is to find a Bluetooth profile that runs on the Dot that can capture BTLE iBeacon broadcasts from the Tilt.
https://kvurd.com/blog/tilt-hydrometer-ibeacon-data-format/
If you can't find that, any related effort will be a waste, and so far the only supported profiles I can find are for audio streaming and hands-free voice control of connected devices...

Cheers!
 
I already talk to my beer during the entire process of brewing through fermentation, and drinking; to have it "talk" back to me might be just too weird. But the idea you have intrigues me.
 
I just thought of another one: off flavours.

And it could be both ways:

- get details of specific issue ("what does diacetyl taste like"
- describe an off flavour in a few words, and get the likeliest match
 
Recording and “prediction” by calculation, I would say.
“10 lbs grains with 3 gallons mash water. Expected target OG is 1.050 of 5 gallons.”
“Maximum gravity of first wort is 1.0xx, expected 1.0yy to meet your target gravity.”
“Gravity of first wort is 1.0xx. volume 2.x gallons.”
“Predicted OG might be 1.0xx.”
“Gravity before boil is 1.0xx, volume 6 gallons.”
“Target OG will be 1.0xx. Add x qts water to get expected OG.”

“Brew finished. OG 1.0xx, volume 5 gallons. Generate report.”

“Brew house efficiency is xx %. Report generated.”
 
Hi again!

I managed to get quite far in building a "conversational agent" (i.e. both a chatbot and a voice agent, powered by the same logic).

Before I try to "publish" the voice agent to a Google Action (and maybe eventually to Alexa), I was able to put the equivalent chabot on a web page for testing purposes:

https://desgrainsauverre.com/homebrew-helper/

There's a list of what it can do currently at the bottom of that webpage (gravity conversion, gravity adjustment by temp, abv calculation, telling if you'll need to add DME or dilute, for example).

Would some of you be kind enough to test a few things in there? I'll be able to see your conversations (anonymously) in DialogFlow, and try to make some improvements. .

One thing to note: most tasks can be done in either SG or Brix, and in either Liters or Gallons, but you need to keep the same unit for a same "task". Say you ask about ABV, you need to give both OG and FG using the same unit.

If you have questions, suggestions, or if you see errors, let me know on this thread.

Thanks a lot!
 
Recording and “prediction” by calculation, I would say.
“10 lbs grains with 3 gallons mash water. Expected target OG is 1.050 of 5 gallons.”
“Maximum gravity of first wort is 1.0xx, expected 1.0yy to meet your target gravity.”
“Gravity of first wort is 1.0xx. volume 2.x gallons.”
“Predicted OG might be 1.0xx.”
“Gravity before boil is 1.0xx, volume 6 gallons.”
“Target OG will be 1.0xx. Add x qts water to get expected OG.”

“Brew finished. OG 1.0xx, volume 5 gallons. Generate report.”

“Brew house efficiency is xx %. Report generated.”

This would be really cool. I do all that for every recipe I brew...this would make life easier putting together my brew day collection sheet. Heck, have it generate the sheet based on a Brewer's friend recipe.
 
I would like a mode where the voice assistant responds "That's what she said!" whenever anyone says anything.

I'd never go anywhere without it.
 
This would be really cool. I do all that for every recipe I brew...this would make life easier putting together my brew day collection sheet. Heck, have it generate the sheet based on a Brewer's friend recipe.

I know this would be cool... That said, anything that requires recording something for a certain period (more than the conversation), or spitting back a report sent to a specific address, for example, makes it way more complicated. It involves more work on the privacy notice front as well...

In the meantime, what does work (I think!) right now is this: imagine you are before boil, you have 7 gallons sitting at 1.040, and you want to know if you'll hit your target (and what to do if you don't). You can try it now by typing "will I hit my target gravity", "do I need to add dme", or something similar: https://desgrainsauverre.com/homebrew-helper/

Please try it! I'll be able to see if the questions asked make sense and work! :)
 
A timer would be a thought. Something that could say add .5 oz perle now etc
 
Hi again,

I made a few improvements in the last few days:

- you can identify an off-flavour directly (without having to first type "identify an off flavour" (e.g. you can type "why does my beer taste like vomit", and you get an answer)
- I added simple measure conversions (volume, weight, temperature). For example, you can type "convert 12F", or "what's 200 grams in oz", or something similar.
- for relative bitterness, I added some kind of characterization (whether the figure you get is "low", "medium", "high", or "very high"
- I added the "overall impression" of almost all styles from the BJCP (you can type "describe a beer style", "what's a quadrupel", "describe a witbeer", or something similar, and you'll get the basic description from the BJCP)

On my list (not sure when I'll have time to do it all..):
- adding other characteristics of specific styles (like target OG/FG, target IBU, color range, carbonation level, etc.)
- priming sugar calculation

Some stuff is a bit more complex (like estimate IBU for an addition based on addition weight, AA, and wort volume and gravity - it's feasible, I'm sure, but the math makes the equation a pain to handle, for a non-developer like me...)

Don't hesitate to query the bot; it's the only way I can know if it addresses questions home brewers may have...
 
I made other improvements. You can get some info by style (coming from the BCJP).

You can say/type the things like that:

- Describe an schwarzbier
- How many IBU in an american pale ale
- What's the color range for a American Lager
- Target OG for an American Barleywine
- Can you give me some examples of american porter

You do need to be pretty close to the official name of the style - I tried to add a few synonyms (like Dubbel for Belgian Dubbel), but the match is easier if you name the official style.

Unfortunately, I can't add a timer easily - because you can add a timer with the main Google Assistant, it looks like Google is not letting specific assistants use their "actions".
 
Back
Top