Close
Control Sinope Thermostats with Python

Control Sinope Thermostats with Python

4 years ago when we moved in our new house, the electricity bill was pretty high. So one of the first things we changed to reduce this was the thermostats. One of my requirements was to be able to control Sinope thermostats with Python (then Alexa, Google Assistant, Home Assistant). Regarding price and functionalities, I had to make some choices.

Why Sinope ?

I started to look at what was available on the market. Of course there was the NEST, but at more than 250$ each, it wasn’t really smart to buy 7 of them to pay a bit less on the electricity bill. Same thing with other brands like Ecobee and Z-wave compatible ones.

Control sinope thermostats with python
Sinope’s Starter Kit

Then I found the ones made by Sinope. So I bought the starter kit, which include the Hub and 2 thermostats for around 200 bucks and 5 other thermostats for like 70$ each. Plus, there was a 20% off on all electrical stuff at the local store. Total investment was around 500$ for the whole house.

So, hardware is great, easy to install, looks standard. There no shinning UI like NEST, but well, it does what it has to. The only default is with the software. Well, at least, the missing one. The web interface, called NeviWeb is easy to use and has the basic function like Away mode, Schedule for each thermostats, etc.

The issue is regarding the integrations, there is almost nothing available. No integration with Google Home, Amazon Alexa, IFTTT, etc. The only one I found was with Smartthings and didn’t support away mode.

Make It Smarter

Using Chrome’s dev tools, I started to look at the packages exchanged between the web page and the server. Turns out it was pretty simple to understand and replicate.

I built a Python package ( https://github.com/reid418/pysinope ) over this unofficial API to easily control Sinope Thermostats with Python. I didn’t update this since a while but it’s still working without problem. It’s also published on the PyPi, so you can just install it with pip.

pip install pysinope

With this, we’re able to pull data from the thermostats and set mode, setpoint, etc. With the Home Assistant plugin layer over this package, I can now have something smarter.

Here are some examples of the automation you can build :

  • Enable away mode when you arm your alarm system;
  • Disable away mode when you leave work or you’re at less than X Km from your house;
  • Use temperature sensors from the thermostats to control other things (like fireplace, HVAC, etc)
  • Send notification when X condition is reached (like an alert if the Kid’s room is lower than 17 degrees in night)

Did It Worth It ?

Yes. It’s hard to define the portion the thermostats had on the bill since we improved other things, but when we bought the house, the first year we payed 220$ monthly for the electricity without kids. We now have two kids and we’re paying 155$ monthly, so in less than one year we gained back our initial investment for the thermostats.

Alexa and Google Home

To control it with the smart assistants, I use Home Assistant which has a great integration with both assistants. Feel free to use the pysinope lib and create your integration. Regarding mine, I’ll post the Home Assistant layer within the next weeks, so stay tuned !

Do you have a different experience on your side ? Or other thermostats to recommend ? Please comment below 🙂

1 thought on “Control Sinope Thermostats with Python

Comments are closed.