I need to start replacing my 25 year old room thermostats, couple of them have broken already.
I was looking for solution I could use with my Smartthings and I dont think any thermostats are currently supported on UK version except Evohome and I dont think they make electric underfloor heating thermostats.
Most interesting product I´ve come across so far is Heatit by Thermofloor
I was wondering what are the changes of making a new device type handler for it and getting it to work with Smartthings? I just got my Smartthings starter pack installed last night, so I´m not very familiar of development side of the Smartthings.
Good news is that this thermostat works as a standalone without Zwave so if it cant be integrated into Smartthings by hacking new devices types, at least I have a fancy and expensive non-connected thermostat.
Okay I understand no promises can be made, but I´m interested on gut feeling on someone who does customization/devel work on Smartthings. Can you usually hack (officially) unsupported z-wave devices to work with custom device types etc.? Or is it more like 50-50 or even less likely to get them working?
It depends entirely on the “Z wave command sets” that the device uses. What you’re looking for is a match between the command sets that SmartThings supports and the command sets that the device requires.
You can view these for any certified device by going to the Z-wave alliance products catalog and looking at the official certification documents, in particular the “conformance statement.”
For example, there are a number of devices that simply identify themselves as “thermostats” and can accept basic Zwave commands for that device class. One of these isn’t actually a thermostat at all: it’s a Z wave to IR bridge which takes the Zwave command and then issues an appropriate IR command so it can act like an IR remote for an in-room air conditioner. But it’s using the thermostat command sets, so from a zwave perspective, its device class is “thermostat.”
Where things get tricky is when manufacturers have added a bunch of additional features that then only work with certain Zwave controllers.
For some integrations, we can get around missing commands by making things dead simple and treating a device just as an on/off switch or open/close sensor. For example, one of the Zwave garage door controllers, Tellguard, doesn’t actually identify itself as a “barrier control device”. instead it just identifies itself as an on/off switch. This means it can work with pretty much any Z wave controller, but then it’s offering a limited feature set.
So sometimes even though the manufacturer didn’t intend it to be used that way, we can use the same kind of logic and set up a custom SmartThings device type which will redefine the device as an on/off switch or some other basic device class. Then we just send those basic commands. We may not have access to all the features the manufacturer built into the device, but we can still get some use out of it.
On the other hand, there are other devices that require the missing commands to operate, and in that case there’s just nothing we can do.
I’m a little too tired right now to research this particular device for you (I’m quadriparetic and depend on text to speech), but you can do the research yourself or get other community members to help.
Start here, although devices are not always under the category you might expect. So you may have to look around to find it. Again, you’re looking for the “conformance statement” to find the list of supported commands.
Supported Command Classes (11):
Thermostat Mode Association
Basic Device Reset Local
Version Manufacturer Specific
ZWavePlus Info Association Group Information
Multilevel Sensor Powerlevel
Thermostat Setpoint Controlled Command Classes (1):
I am not sure what to make of this, but I´m guessing long list of command classes is better than short?
Anyway in the end I probably just need to buy one and try.
it’s not a matter of long list or short list: just a matter of matching up what commands it supports with what commands SmartThings can process.
The basic thermostat stuff should be fine, that’s like any other basic Z wave thermostat and SmartThings does pretty well with those.
The Association could be fine, could be a problem, as SmartThings only does very basic association, and if this device requires associating with group one for certain commands and group two for other commands it probably isn’t going to work well with SmartThings, at least not without custom code.
This is the problem people ran into with the Fibaro motion sensor. The SmartThings hub will only include itself in Association group one. So if you need to do anything with other association groups you have to do it through a smartapp or a really complex custom device type. It’s not impossible, but it gets tricky.
I believe “thermostat mode” is just a number that get sent. This is how you change your device from “heat” to “cool” to “auto” to “fan only” etc. different thermostats offer different options, and that’s fine. If it’s just a number that get sent, the fact that “two” means “heat” to one thermostat and “fan only” to another thermostat is no big deal. Zwave is only responsible for delivering the message, then the thermostat itself acts on it. “Thermostat mode” is also how you usually send an off command to thermostat. So I haven’t looked to be sure, but I would guess that thermostat mode is one of the command classes that the smart things hub does support. Again, just look at one of the device types for one of the officially supported Z-wave thermostats and see if it’s there.
I’m not sure about the multilevel sensor and the power level. The best thing would be to look at other supported zwave thermostats and see if they have those command sets. If they do, you’re probably fine. ( I can’t actually read device type code because reading groovy with text to speech software is a total headache. But other people in the community will be able to help you.)
“Manufacturer specific” is always an unknown until you actually try it or you talk to the manufacturer. Usually that’s where they add their advanced features that only work with their own controller. But it may be that you don’t need those.
Thermostat manufacturer does not provide hub of its own, instead they advertise compatibility with “Fibaro, Sensio, VERA, Zipato and others”, so I am guessing it might be adhering to standards pretty well.
I guess one option is to ask manufacturer directly, maybe they can even help make it officiall Smartthings compatible product.
Ive just bought one of these thermostats and they work pretty well on their own.
As an added benefit, they integrate with smartthings and show the current temperature and set temperature.
I will do some more testing and see what else works.
I am using the ‘Better Thermostat’ Device handler that @twack created
The temperature up control works, temperature down seems to reset the temperature to the max though.
The function cycle works by turning the device on and off and it displays the current temperature.
I use a couple of the HeatIt thermostats with a hack I made from the basic thermostat device type. I “fixed” a bug to make it work with degrees Celsius by hardcoding it and it’s now possible to set the target temperature using “Good morning” type routines – I haven’t tried any other apps. Code here, improvements or suggestions welcome.
My main issue is that the thermostats don’t seem to report the correct temperature, so I just use SmartThings as a fancy timer, setting the target temperature high during certain times of the day and low during others.
At least this is an improvement over my previously non-connected thermostats that would just run at a constant temperature all day.
At least miles above said he can get the temperature reading. Isnt the Heatit supposed to give you two readings, room and floor temp? If its off, maybe you can check if it has calibration or similiar ways to change it? Are you using the the temperature probe/sensor that came with the unit or the one from previous thermostat, I assume you have one under your floor?
Thanks, yep I can get readings, but have no good way of getting the new sensor into the floor, and the room sensor seems off. It can’t be calibrated per se, but there is a temperature offset that you can set, but the deviation hasn’t seemed to be linear so I’ve just given up.
I use Heatit with my electric underfloor heating using @mellbratt device handler code. All appears to work seamlessly. Using a thermostat scheduler smart app with it that I found somewhere in the forums as the Heatit doesn’t have the capability to program schedules.
BTW Any idea if the room temp sensor works properly?
I ask because half of my rooms have electric ceiling panels and half electric underfloor heating. The current thermostats are really similar for both, except ofc the ceiling thermostats use room/air sensor inside the unit instead of external temp probe.
Was wondering if I could just replace all of them with these.