Company from Munich
Household appliances manufacturer
Topic | Find the right oven settings for recipes with the help of Alexa
Technology | Node.js and TypeScript, Kotlin and Spring Boot, AWS Lambda and DynamoDB
Who does not dream of it? A tasty lasagna like the one from Italy, but prepared by yourself at home. Of course, there are countless recipes for this in cookbooks or on the Internet. But can't this be simplified in times of increasingly smart kitchens? Yes! To enable users to find the perfect oven settings for their dish via voice control without having to look in the cookbook while cooking, the goal was to develop an Alexa Skill (Skills are like apps, only for Alexa). This skill enables users to access a service for their smart home ovens via voice control that determines the perfect oven settings for a dish. If possible, these are selected directly by Alexa at the oven for the user's convenience. The manufacturer of the Smart Home ovens provides the knowledge which setting for which device provides the optimal result.
Via an already available interface it is possible to interact with the smart household appliances. For example, this interface can be used to find out whether an oven is currently running or how hot it is at the moment. New settings can also be sent to the oven, for example to set a certain temperature. If the oven settings are known, they can be sent directly to the oven. The challenge now is to find out from what the user says what they want to prepare and which oven settings are suitable for this. In a first step, Alexa's Natural Language Understanding ("NLU") model tries to understand which of the available dishes the user wants to prepare. With this information, in a second step, the optimal settings for the dish, and possibly for a connected oven, can be determined and executed directly.
Alexa Skill Backend
For the development of the Skill Backend we used the Alexa Skills Kit ("ASK") provided by Amazon and the ASK SDK for Node.js contained therein. As development language we chose Node.js with TypeScript, and this as serverless lambda deployed on AWS. This part of the backend gets the result from the Alexa NLU model. The backend evaluates the input of the user (for example that he wants to prepare a lasagna) and requests the appropriate oven settings from the service backend.
The service component, which contains the knowledge about the recommended settings for each dish and oven, was implemented in Kotlin with the Spring Boot Framework. For those who may not know it yet: Kotlin is a relatively modern programming language which is marketed as "better Java". This service checks the database to see which oven settings for the dish (in our example, the lasagna) give the perfect result. The service then forwards this data to the Alexa Skill Backend for Alexa voice output.
If the user stands in front of his Smart Home oven with his pre-prepared dish, for example a lasagna, he can simply say:
"Alexa, ask the oven assistant how I make lasagna."
and gets the following answer:
"For cooking fresh lasagna you can use top and bottom heat for 32 minutes at 210 degrees."
On devices with a display, the recommendation is also shown:
In this step, the appropriate settings are already selected for the oven. All the user has to do is place the lasagna in the oven, press 'Start' and wait for his perfect lasagna. Bon appetit!