I wanted to do something very simple: if the temperature in my kids' rooms got too cold, turn on a smart outlet that powers a space heater.
It turns out that ecobee and alexa do not have this capability built in - this makes sense. The thermostat does this natively with my central heater. My issue is that my house is old and has vastly different temperatures from upstairs to downstairs.
To solve this, I am getting my temperature from the ecobee API, checking to see if it is too hot/cold, then taking appropriate action with my VeSync outlets.
I have an Ecobee 3 lite with two Smart Sensors. I am also using Etekcity Voltson Smart WiFi Outlets.
That's the "smart" bit. To heat the rooms, I am just using your run-of-the-mill space heaters I got at Home Depot or something...
To start, you need to create an app and authenticate with Ecobee.
VeSync is a bit easier to authenticate. Download the app and create a login. You'll use that login for the script.
You'll just need a few packages installed to run the R bit:
- lubridate
- httr
- jsonlite
You can run this line of code:
install.packages(c("lubridate", "httr", "jsonlite"))
There are 4 packages called, but 2 should be installed with your system already.
- datetime
- sys
The other 2, you'll need to install:
- pandas
- pyvesync
You can do that with this code:
pip3 install pandas
pip3 install pyvesync