Precision Cooker SDK

I was wondering if there is an estimate of when the SDK will be available to those who didn’t order the Hacker Special (or a link to it if it already is available). Just received my unit (thanks!) and would love to play around a bit.

Not the SDK but I reverse engineered the underlying Bluetooth protocol a while back and documented it here

There’s some proof-of-concept code in there for use with the CoreBluetooth iOS APIs. And here’s the Android equivalent of CoreBluetooth which has a pretty similar mapping.

Thanks. That’s fantastic.

@npankey‌’s work is impressive.

To @“Stephen Svajian”: it’s great that you appreciate @npankey‌’s work in reverse engineering. I sure do! It would be even better if you release an official variant of his document. I am about to release to Google Play Store a simple Android controller in next few days. Neil’s guesses for “program” and “date” commands are not exact, and even “timer” commands work in somewhat mysterious ways. I will have to omit some of these functions from my app for now.

@vtemkin‌ We’re going to look at this after we release V1.0 of the app.

@vtemkin‌ Can you let me know what exactly wrong so I can update my readme (or you can submit a PR)

@napnkey, unfortunately I don’t know exactly how to fix date and program, so I’ll submit issues with my findings on github. OK?

@vtemkin‌ Please do

This is really cool. One question: should I expect to get notifications from the Anova when it’s state changes, e.g. so I can display the current temp without having to poll the device from the app? From looking at the code and my very basic knowledge of CoreBluetooth, I’m expecting didUpdateValueForCharacteristic to get called without necessarily having to send a command (which does work). FWIW I’m an experienced iOS programmer but have no particular knowledge of the BT stack.

@uiadam We don’t know the way around constant polling for now. It could be reasonable interface, but it would be kind of inconsistent - the temperature can change (and changes few times a minute); timer changes every minute (if running); the temp history info changes twice a minute; status (running/stopped), set temperature, and units can be changed by user - so there would be plenty of updates; or they could’ve treated the information differently, or have multiple characteristics. They’ve chosen the polling approach. (There might be some other interfaces we can see when they finally publish SDK, or we might guess when they publish the apps - but for now the work of @npankey is the most complete description in public domain.)

@vtemkin and @npankey. Thanks so much for all of your efforts (as well as others). I will be ordering a precision cooker and have this idea of designing a paired web site with local agent (think Fitbit) for recipe sharing. I have no intention of competing with the excellent work all have done beating Anova to the punch on mobile applications.

One question though (as I have not yet ordered my cooker). Which of the protocol commands are durable across power cycles? Does the F/C switch “stick” (I would hope so)? Does it remember the timer and/or temperature settings? The set program? Is there an RTC onboard so if you set the clock (modulo normal drift), it will run when the unit is off?

Thanks for any assistance you might be able to provide…

@adnewman Here are the answers. F/C switch sticks, of course. Set temperature too. Timer doesn’t. Set program does. There is RTC, which runs when unit is off (with noticeable drift, of course).

Why do you need a remote, mobile app, to control your sous vide cooker?
Where are you going?
You have to be home, to set up the cooker, and then it’s “set it and forget it”, isn’t it?

Why do you need a remote, mobile app, to control your sous vide cooker? Where are you going? You have to be home, to set up the cooker, and then it's "set it and forget it", isn't it?

Well… a smart phone (or computer) user experience can be made richer than a couple of buttons on an appliance. You can save your favorite time/temp combinations and associate them with recipes. You can monitor the temperature over time to assure consistent results (although the BLE profile doesn’t appear to have any “notify” characteristics to the service so you would have to poll I suppose).

Remember, this cooker is using Bluetooth so you effectively have to be home to use the remote mobile app anyway.

You don’t need to “monitor the temperature over time to assure consistent results”, since the temperature regulation is rock steady, +/- 0.1 degree C.
I made a refrigerator chart, better than an “app”, showing the times and temperatures, for all the products I cook. I keep adding to it, as I collect new recipes.
Does this “app” produce a loud alarm, to wake me up, when the food is cooked? My microwave has a timer that does that.

I like the fact, that I can set up the cooker in the morning, and go out to work (no Bluetooth needed), and dinner will be ready and waiting when I get home. I have the more powerful ANOVA ONE, not the new device.

@M_HAND glad you are pleased with the Anova product you own. I grant that a computer app isn’t necessary to enjoy a sous vide cooker. For that matter a sous vide cooker isn’t really necessary to enjoy cooking (or eating). I am planning to write a free software product to compliment the Anova bluetooth product (precision cooker). I will do it because I enjoy it. If you ever end up with the bluetooth product you can feel free to use my software and see if you enjoy it. Or not.

@adewman Glad to hear you plan on releasing the software, as I would also prefer to be able to monitor and control the Anova from a web interface “remotely”. What platform do you plan to support? I have a mac server that I would like to use for this.

@Jonas I will likely produce an agent that is cross platform (PC, Mac, Linux) but as I develop on a Mac, it’s a good bet that it will be available there first.

The basic idea is that it will be a recipe sharing site. You include your recipe along with the time/temp (or program if you use a multi-step approach) for the results. When a user finds an appealing recipe they click “start” and the temperature is set. Once the unit reports that the measured temperature is equal (more or less) to the set temperature, a pop up occurs asking you to start the timer. When the food is in the sous vide you click “Yup” (or equivalent). This configures and starts the timer for the recipe producer’s recommended time. Ideally I’d also like to allow users to register their favorite time/temp pairs for their personal use as well.

@adnewman Sounds great. Let us know when you have something for us to test :slight_smile: