Hi guys! This is a cross post from my post on Reddit, but I thought it might be of interest here too.
So, first thing you guys will need is a Raspberry Pi (or similar that can run Node Red, perhaps just a permanently on Linux computer with a wifi/Bluetooth LE adaptor?). Once you have this, that’s all your hardware sorted, apart from the Anova of course. I use the Wifi model, but this should apply just fine to the Bluetooth version as this is only using Bluetooth Low Energy to control.
So, to get it working, just follow these steps:
-
Install Node-Red
-
Install Node-Red-Contrib-Homekit (you’ll need to replace one of the files in this with some I’ve uploaded into the zip file later on - change this file after you’ve installed it). Set this to run at boot - there are instructions online for this.
-
Install Pycirculate
-
Open Terminal on the Raspberry Pi/Linux box and run the command
sudo hcitool lescan
and note the MAC address of the Anova. You’ll need to change the MAC address in the rest.py file that is included in the zip file. -
Set this rest.py file to run at boot. You do this by entering Terminal on the Raspberry Pi/Linux box and running the command
crontab -e
and then placing something like@reboot /usr/bin/python /home/pi/rest.py
at the end of the file and saving/exiting crontab. Make sure you use the correct path to your python installation and the correct path to wherever your rest.py is placed. -
Finally, run Node Red in your browser, either 127.0.0.1 on the Raspberry Pi/Linux box direct, or 192.x.x.x from a computer on the same network and import the flow contained in the zip file.
-
Deploy the Node Red!
That’s it! I think this thing is pretty dang well built, logic-wise. When you turn on the Anova and open HomeKit, as soon as you select a temperature it turns the Anova on. It understands the units that you have set on the Anova and sets the correct temperatures within HomeKit. It knows if the temperature you set is higher than the current water temperature, and so displays ‘heating’, or if it’s lower it sets ‘cooling’ and if reached displays ‘set’. It even works perfectly with Siri!
So go ahead, HomeKit-ify your Anova, and let me know how you get on in the comments. If you have any improvements, I’d love to hear about them!