Skip to main content

Cookidoo smart home integration, free and open source

Cookidoo integration for Gladys Assistant

Your Cookidoo shopping list and week plan (Thermomix) in Gladys: sensors, widgets and scenes.

Bring your Cookidoo account — the recipe service of the Thermomix — into Gladys: the shopping list and the week plan become sensors, dashboard widgets and scene actions.

Not affiliated with Vorwerk. Cookidoo and Thermomix are trademarks of Vorwerk.

Developed without a Cookidoo account: feedback welcome. The integration follows the protocol of the open-source library cookidoo-api, used by Home Assistant, and is tested against its recorded answers, not against a real account yet.

Overview​

  • Shopping list: the ingredients of the recipes you added to the list and the free items you typed, checked or not; the number of items left to buy.
  • Week plan: the recipes planned today (names, total time), and the "recipe of the day" widget.
  • Subscription: its type (Premium, trial, free) and its end date.
  • Scene actions: add an item ("Add milk" from a button or a voice command), check or uncheck an item, clear the checked items.
  • Widgets: the shopping list with buttons to add, check and clear, and the recipe of the day.

Requirements​

  • Gladys Assistant 5.2.0 or later (the widget buttons open a short form, which needs 5.2.0).
  • A Cookidoo account signing in with an e-mail and a password, with or without a subscription.
  • Internet access from Gladys: the integration talks to Cookidoo's servers (cloud).

Configuration​

Install the integration from Integrations → Install from GitHub, then fill in:

FieldWhat to enter
E-mail, PasswordThe ones of your Cookidoo account.
Country of the accountThe country chosen when the account was created: it sets the Cookidoo site (cookidoo.fr, cookidoo.de, cookidoo.international for the countries without their own site...).
Cookidoo languageLanguage of the recipes and items. Automatic picks the language of the country closest to the next field (French on cookidoo.fr, German on cookidoo.ch...).
Language of names and statesLanguage of the feature names (set once, when you add the device) and of the texts the device shows. French by default.
Refresh intervalHow often the shopping list and the week plan are read: 2 to 30 minutes, 5 by default. Your own changes from Gladys show at once.

Then go to the Discover tab and add the Cookidoo device.

Test the connection​

The Test the connection button signs in again with the password and reads everything: the answer says how many items are left, the recipe of the day and the subscription, or why it failed. After a refused password, the integration stops signing in on its own (retrying could lock the account): fix the password or run this test.

Data and privacy​

The password stays in the Gladys configuration. The sign-in tokens (valid 12 hours, refreshed automatically) and the id of your Cookidoo profile are kept in the integration's data volume (/data/cookidoo.json, readable by the integration only). Nothing is sent anywhere but to Cookidoo, and no password, token or e-mail is ever written in the logs.

The device​

One Cookidoo device per account, with these features (read-only):

FeatureTypeValue
Items to buycounterunchecked items of the shopping list
Checked itemscounterchecked items, still on the list
Shopping listtextthe items to buy, separated by commas ("Empty list" when none)
Today's recipestextthe recipes planned today in Cookidoo ("No recipe planned" when none)
Number of today's recipescounterhow many recipes are planned today
Time of today's recipesduration (min)total time of today's recipes
SubscriptiontextPremium, Trial or Free
Subscription endtextend date of the subscription ("None" without one)
Subscription days leftduration (days)days until the subscription ends, 0 without one

"Today" is the day in the time zone of Gladys.

Widgets​

Add them from the dashboard editor (Integration widgets).

Shopping list (shopping_list)​

The number of items to buy and checked, the first eight items (still to buy first, then the checked ones with a badge), and four buttons:

  • Add: type the name of an item;
  • Check / Uncheck: pick an item in the list;
  • Clear checked: removes what was bought (asks for confirmation first).

The Gladys widgets have no checkbox by design: a tap on Check opens a short form whose list holds the items to buy.

Recipe of the day (recipe_of_the_day)​

The recipes planned today, with their picture, their time and a link to open them in Cookidoo. When nothing is planned today, the next recipes of the week, with their day.

Scene actions​

In a scene, Add an action → Integrations. The item name accepts scene variables.

Add to the Cookidoo list (add_item)​

Adds a free item to the shopping list, unless an item of that name is already there to buy; a checked item of that name is put back on the list instead of doubled. Outputs: Item added (yes/no), Items to buy.

Check a Cookidoo item (check_item)​

Checks the item of that name (case, accents and a leading article ignored: "du lait" finds "Lait"). When several items could match, nothing is checked. Outputs: Item found, Items to buy.

Uncheck a Cookidoo item (uncheck_item)​

Puts a checked item back on the list, found the same way. Outputs: Item found, Items to buy.

Clear the checked Cookidoo items (clear_checked_items)​

Removes the checked free items, and the recipes whose ingredients are all checked. Cookidoo only removes an ingredient with its recipe: a recipe partly bought stays on the list. Output: Items removed.

Scene examples​

  • "Add milk" from a button: trigger a button is pressed → action Add to the Cookidoo list with Lait → Send a message "Milk added, {{items to buy}} items to buy".
  • Shopping reminder: every Saturday at 9:00, if Items to buy is above 0 → send a message with the value of the Shopping list feature.
  • Back from the shop: when you arrive home on Saturday afternoon → Clear the checked Cookidoo items.
  • Time to cook: every day at 18:30, if Number of today's recipes is above 0 → message "Tonight: {{today's recipes}} ({{time}} min)".
  • Subscription: when Subscription days left goes below 7 → reminder.

Refresh and API usage​

Gladys does not poll this device: the integration reads Cookidoo on its own timer, and only while someone looks (the device is added, or a widget was shown in the last hour). Each refresh is two requests (shopping list and week plan); the subscription is read every 6 hours; the access token is renewed twice a day. With the default 5 minutes, that is about 600 requests a day. Cookidoo publishes no quota and no terms for this use: do not set the interval lower than you need. The values are published only when they change, plus once every 6 hours.

Troubleshooting​

  • "Cookidoo refused the sign-in": check the e-mail, the password and the country. If Cookidoo asks for a step (new terms of use, an e-mail check), sign in once on the website or in the app, then run Test the connection.
  • "Cookidoo refused the connection of the integration (anti-robot protection)": Cookidoo's protection refused the request. The integration never works around it: it waits 30 minutes and tries again. If it lasts, tell us on the forum.
  • "Cookidoo answered in an unexpected format": Cookidoo changed its API; update the integration (and open an issue if no update exists yet).
  • Empty items or recipes: check the country and the Cookidoo language.
  • More details: set LOG_LEVEL=debug on the integration and read its logs.

Limits​

  • Unofficial API: Cookidoo can change it at any time, and the sign-in may then fail until an update.
  • Read every few minutes: a change made in the Cookidoo app shows after the next refresh.
  • Only free items can be added; an ingredient is removed with its recipe.
  • No control of the Thermomix itself, no recipe search, no planning from Gladys.
  • One account per integration.

Configuration settings​

These are the settings Cookidoo asks for in its configuration screen in Gladys.

SettingTypeRequiredDescription
Cookidoo accountsectionNoThe account you use in the Cookidoo app or on the Thermomix. The password stays in Gladys; the sign-in tokens are kept in the integration's data. Not affiliated with Vorwerk.
E-mailstringYesE-mail address of the Cookidoo account.
PasswordsecretYes
Country of the accountselectYesThe country chosen when the account was created: it sets the Cookidoo site (cookidoo.fr, cookidoo.de...).
Cookidoo languageselectNoLanguage of the recipes and items. Automatic: the one of the country closest to the language below.
Language of names and statesselectNoLanguage of the feature names (set when the device is added) and of the texts the device shows.
Refresh intervalselectNoHow often the shopping list and the week plan are read. Your own changes show at once.

How to install Cookidoo in Gladys​

  1. In Gladys, open Integrations: Cookidoo appears in the catalog, next to the native integrations, with a community badge.
  2. Click Install. Gladys pulls the Docker image (ghcr.io/guim31/gladys-cookidoo:1.0.1), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration).
  3. Open the Configuration screen of the integration, fill in the settings, and save.
  4. You can also install it directly from its repository URL: https://github.com/guim31/gladys-cookidoo.

Cookidoo requires Gladys >=5.2.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.

Not running Gladys yet? It is free and open source: follow the installation guide to get started.

About external integrations​

Cookidoo is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by guim31, not by the Gladys core team.

Subscribe to the Gladys Assistant newsletter

A few emails per month about new releases and project news. Sent by Pierre-Gilles Leymarie, founder of the project. Unsubscribe anytime 🙂