Emerson Sensi Thermostat

Amazon indicates:

Wink app ready - easily control and customize your Sensi thermostat from Wink app (Wink hub not required)

If it is Wink app ready, can one assume that it follows a protocol and possibly controllable through openHAB?

Has anyone had success integrating the Emerson Sensi with OH? My Google search did not answer the question.

I would like to be able to control the thermostat from within the LAN (not going out to the WAN and hitting a server).

http://www.amazon.com/Sensi-Wi-Fi-Programmable-Thermostat-UP500W/dp/B00HHE6CW2

2 Likes

I have Sensi thermostats and I’ve done some experimentation with controlling and monitoring them using custom software (Javascript). However, I haven’t tried integrating them into openHAB yet.

There is an unpublished protocol, but it operates through the WAN. I’m guessing that’s how the WInk hub is interfacing to the Sensi.

I haven’t verified this, but I’m assuming the device communicates to the cloud using an encrypted channel (at least, I’d certainly hope so).

It is a cloud thermostat. I hate the WiFi label on these devices since most are cloud based and require manufacturer servers to be operational for any changes to be made.
I purchased two and returned them because I prefer things to stay on my LAN and not to depend on the manufacturer.
Went with Remotec z-wave devices instead controlled trough openHAB. Cheaper and work well but not as good looking.

1 Like

Do the Remotec thermostats require a “C” wire?

they can run without it but definitely better with it since the response is instant and they act as z-wave repeaters and improve the network.

@steve1: Thanks for the reply. Do you think disconnecting the WAN (modem) from the network and attempting to control the Sensi through the LAN would verify that the device is ultimately controlled by the Sensi server?

You could try it. My guess is that the Sensi thermostat creates an outbound connection to the sensicomfort.com cloud server since there’s no way for the server to create an incoming connection to the thermostats through my LAN’s firewall. I also assume this is a encrypted channel to the servers. These assumptions could be verified with a wifi packet sniffer.

If you could change the cloud server address in the device you might be able to convince it to connect to a server on the LAN instead. I don’t know if that’s possible or not.

You don’t need to trick the device at all, you just need to change how it would find its master and tell it something else. You could do that using a local DNS server where you would create a DNS zone and A records to point to a LAN IP instead of where it would eventually find the server on the Internet.

If you have a more advanced router or WiFi access point, you could also do a packet capture there and then replay/analyze the traffic on your PC afterwards.

The likely bet however is that a) it is going back to a cloud server somewhere, and b) it will be encrypted so your efforts will likely be in vain.

1 Like

I agree that DNS spoofing is another trick that could work (assuming that SSL certificate issues don’t prevent the client/device connection to the local server, which is likely).

Any encryption anywhere would make it a big challenge (likely not worth the effort).

Agreed. I now have written Python code that can monitor and control the Sensi thermostats and that code should be compatible with JSR223/Jython but I haven’t tried it yet. Currently, it’s just injecting item updates into openHAB using the ReST API. My primarily issue at this point is that my installation doesn’t support a “C” wire so I’m concerned about depleting the thermostat batteries too quickly with active monitoring. Sensi support says that monitoring will not deplete the batteries but I’m wondering how that could work When I have some spare time,.I plan to do some packet sniffing, even with the encryption, just to monitor when the device is actually communicating with the cloud.

This is an excellent dialog: exactly what I had hoped for. That being said I am under a time crunch and went with Radio Thermostat CT-80 because of its ability to be controlled from the LAN. I don’t expect a cloud service to work indefinitely for free.

Steve, Any chance you would be willing to share your python code? I have a sensi thermo and would love to look into some monitoring.

Hello Ben. Sorry for the late reply. I’ve put the code in a GitHub repository at https://github.com/steve-bate/python-sensi.

I’m not currently using this code because I run my Sensi thermostats without a C wire (battery power only) and I didn’t want to drain the battery with periodic queries to the device. Initially, I wanted to run this code in Jython but there was an issue with one of the standard libraries (I don’t remember the exact details now). The code in the repository includes an external CPython program that queries the Sensi and publishes data to OH using the ReST API.

Thanks Steve! I am also running without c-wire but have considered getting a 48V DC adapter for it since my furnace is old and does not have an easy way to tap into 48V.

Following this. Is there any interest in a 2.X binding?

1 Like

I also want to connect to a thermostat on the LAN.

@gatorback Do you know what communication protocols the “Radio Thermostat CT-80” uses? Does it have a public API?

I am interested and would be willing to help test / possibly contribute some code and UI work.

I am working on adding support to the wink binding for thermostats. I have the Emerson Sensi Thermostat. I have the code debugged but not thoroughly tested. I have not done a pull request yet either.

It does work with my Sensi. I can set the mode through openHab; heat, cool, or auto, and I can set the temperature set point.

I have not contributed before and the guide said to communicate my intentions before doing a pull request.

Is there any interest in this besides my own?

1 Like

Hello,

Is there any update / progress on this integration between Emerson Sensi and OH 2 ?

Thank you,