Wednesday, December 07, 2016

Anova Precision Cooker (Wi-Fi)


I was one of the backers of Anova’s Bluetooth precision cooker when it was on Kickstarter. It was useful and reliable. I started doing a lot of sous vide after I got it (because I really like meat and seafood). When their Wi-Fi version came out, I really want one. And finally, it’s on discount so I bought one.

The box looks nicer and bigger than the tube that came with the Bluetooth version. There are more friendly informations in it to help you get started. Overall, those are useful for new customers but are meaningless to me. I would just install the app and start cooking.

IMG_0744 IMG_0745

The first problem I ran into is it couldn’t connect to my Wi-Fi. I read through their troubleshooting for a few times and wondered what was wrong. I thought maybe because I had 5GHz network sharing the same SSID as 2.4GHz network, but I couldn’t turn it off because it’s Eero. What else could be wrong? Anova said Wi-Fi password should be between 8 and 18 characters. Mine is definitely much longer than that. I changed the password and it worked.

Changing Wi-Fi password isn’t free though. I have other smart things connected to my Wi-Fi, for example my Amazon Echo. After changing the Wi-Fi password, I have to update all these devices. None of them have password length limit. Anova is the first one that has such weird restriction.

Naturally my next step was to compare it with the Bluetooth version. They look almost exactly the same. You can only tell the difference by looking at the max/min water level marker. Their temperature readings were also different, so I got to run calibration.


When I received my Bluetooth version from Kickstarter, Anova said the first batch was not correctly calibrated. They said we could ship it back for calibration or we could go through ice bath to calibrate by ourselves. I was too lazy to do either one, so I expected it to be slightly off.

Now they were different, and they were both different from my thermometer, I wanted to calibrate. I didn’t know which one to trust, so I chose to use my thermometer as standard. (I’m still too lazy to do ice bath, because I don’t keep ice in my freezer.) I used their apps to adjust the offsets. In the end they were within 0.1 degree difference and I was happy with that.

Overall I like the Wi-Fi version, even though I haven’t had a chance to use it through Wi-Fi yet. The reason is I don’t cook at workdays, so it’s not common for me to start cooking while away. For food safety reason, I should keep the food in ice bath before starting cooking from remote. That’s another hard to satisfy requirement.

Monday, July 18, 2016

Alexa, tell me a joke.

I bought Amazon Echo during the Prime Day. I wanted to know how useful this is and it was $50 off, so I placed the order. On the same day I bought 2 sets of Philips Hue starter kit from Best Buy. Each was $50 off, so it’s a great deal.

When I received the Amazon Echo, I thought the set up would be easy like Siri. I was wrong. First it needed to connect to Wi-Fi. There’s no way to use Bluetooth to control Echo and set up Wi-Fi. The way it works is it broadcasts an ad-hoc Wi-Fi and you connect to it to set up. After spending 20 minutes on setting it up, the only thing that’s useful and works for me is “Alexa, tell me a joke”.


What I really want Alexa to work with is Philips Hue and Logitech Harmony. It can scan Hue lightblubs by itself. It’s smart enough to get all of them. However when I said “Alexa, turn on lights in the bedroom” it told me there’s no “bedroom”. It took me some time to understand that the bedroom concept set within the Hue app isn’t shared. I needed to create a group named “bedroom” in Alexa. That is not very smart.

The next one to set up is Harmony. The official page says it’s compatible with Alex, but in reality it needs to go through IFTTT. After setting up IFTTT recipe, I found out I need to use the magic word “trigger” when proxying command through IFTTT. Instead of “Alexa, watch AppleTV”, I need to say “Alexa, trigger watch AppleTV”. If I forget the magic word, Alexa will complain about there’s no “AppleTV”. This is really annoying, because now I need to consciously think about the whether I’m talking to Harmony before issuing a command.

I set up Hue two days before Alexa. After setting up Alexa, it seems to create some kind of wireless interference around it. That made some of my Hue light bulbs unreachable from the bridge. I had to move the bridge around and switch channel. That’s extra inconvenience.

Sometimes I forget that I should control lights through Alexa or my phone. I just flip the switch and then realize I shouldn’t. I’m going to order light switch cover and Hue wireless dimmer. These two things are two separate patches. They don’t work together, which is a little bit disappointing. I don’t want to modify my light switch. I want to cover it and put the wireless dimmer on top of the cover. Since old style light switch cover doesn’t have a flat surface, I will have to put the wireless dimmer on the side.

Overall Alex does what I want it to do but doesn’t meet my expectation of intelligence. I think the problem is the lack of domain knowledge of each device it connects. Unlike Siri, which knows every type of query Apple can handle, Alexa doesn’t know how I group light bulbs into rooms or what kind of devices Harmony controls. I have to set up all kinds of routines to handle the domain knowledge while Alexa is just a voice interface to execute command. In some sense, Alexa isn’t much better than CLI or Alfred. I still need to do the scripting by myself. At best it can accept some parameters when triggering the script.

This reminds me of Firefox Ubuiquity, an ambitious project that wanted to process command like “book a flight to Chicago next Monday to Thursday, no red-eyes, the cheapest”. After 8 years, the ability to process this kind of command still seems so far away. Domain knowledge discovery is not solved.

Actually, it’s solved in theory but nobody cares. Look at the landscape of public APIs. All these so-called RESTful APIs are not RESTful. They are only CRUD APIs. Nobody cares about the real RESTful API that supports discovery and uses hypermedia transition. (If you don’t know the difference, read REST in Practice.) If devices have truly RESTful APIs, it’s possible for client to discover and negotiate parameters. With a hypertext document describing the APIs, Alexa or any voice interface should be able to describe parameters to me. If I ask Alexa to book a flight, it should be able to learn from the API that it requires date time and destination. If I’ve given these parameters, Alexa should pass them through; otherwise it can ask me and keep the conversation going.