SmartThings Community

Secure SRT323 Thermostat

(Chris Petzny) #30

Can confirm pulling code from github works without errors, as does saving settings.

Not entirely sure I have the correct DH now though. Mine looks like this in the iPhone app:


(Aonghus Mor) #31

Try again. I think the GitHub version reverted at one point in my experiments. It should be OK now.


(Chris Petzny) #32

Yep, that’s got it. This is fantastic!! Thank you again for working on this. Lifesaver :slight_smile:


(Aonghus Mor) #33

I’ve posted an updated version, with the SRT321 specific code removed (commented out).

I’ve also checked the effect of setting and resetting “comfort mode”. All this does is flip the set point between 5 and 21 degrees and nothing else. I don’t see that this serves any useful purpose in the context of Smartthings.

The DH still works with @meavydev’s scheduler.

One suggestion for @meavydev. It would be nice to be able to choose more than one mode in the scheduler, for example Home and Night mode, but not Away. I’m not 100% sure, but this may only require changing “multiple: false” to “multiple: true” in line 125 of the child App.


(Aonghus Mor) #34

I can confirm that a couple of simple changes to @meavydev’s scheduler Child App will enable chosing more than one mode.

Line 125: input “smartThingsMode”, “mode”, title: “Only run when in this Mode(s)”, multiple: true, required: false, submitOnChange: true
Line 224: boolean modeOK = settings.smartThingsMode ? settings.smartThingsMode.contains( : true

This gives an extra bit of flexibility.


(Aonghus Mor) #35

I’ve posted an amended version, which implements the capability in the device to change the frequency with which it reports temperature changes back to the DH. This can vary between 0,1 C and 10 C. A higher value saves battery life.

To summarise the behaviour:

  1. the device will wake up every few minutes, as set in the DH, to check whether any requests are pending.
  2. Any change in the heating setpoint on the device itself is immediately reported back to the DH.
  3. Any change in the operating state, heating or idle, is immediately reported back.
  4. Any change in the measured temperature of more than the threshold set in the DH, is immediately reported back.

Changes set by software, e.g. in the DH itself, by @meavydev’s scheduler, or by WebCore. Are sent to the device at the next WakeUp.



hi can you explain how i can get this dh to work as i have set this up as i do other dh but i cant even turn on or off the switch or change anything in the thermostat
i am only showing 1 item in smartthings should i see switch and thermostat?


(Aonghus Mor) #37

You should only see the thermostat. You should see something similar to what @cpetzny posted a couple of weeks ago. The arrows on the right should raise or lower the setpoint, i.e. the temperature you want. The device saves battery by only contacting the DH every so often as set on the setup page you get to by clicking the wheel on the top right. So there will be a delay of up to that time. I have it set to 600, i.e. 10 minutes.
You should see the setpoint between the arrows and in the message at the bottom, whereas actual measured temperature is in the middle.
If you look at the log files in the IDE what do you get?



Thanks for the reply. I can see something like the above pic and in the logs in the ide it all records whatever i do in the app. but nothing happens in the thermostat. the thermostat works in manual mode but is not changed by the app .even if i change the the delay to 600 the log says it has updated it but 3600 is still showing in the ide any ideas



sorry its checkInterval 3600 other is changed in ide also


(Aonghus Mor) #40

Assuming the delay is 600, I’d expect the logs to say
every 600 seconds, with additional messages every time the thermostat itself is changed and every time it changes from Heating to Idle. There are corresponding messages in the “Recently” page in the smartthings app, with green dots next to the Heating/Idle messages.

Also, what happens if you press the configure and/or refresh buttons in the App? I’d expect a simple instant response in the logs followed by something more complicated at the next WakeUp.

Similarly if you press the up and down arrows in the DH. You will see messages in the IDE. I’m aware of a bug which means that the setpoint displayed in the DH sometimes doesn’t change, but, if you go out of the DH and back in, it will have changed. I need to investigate this. In any case, the change should be transferred to the thermostat at the next WakeUp.

The delay until the next WakeUp can make it appear as through the changes are not being transferred, whereas, in fact, they are only delayed.



got it working thanks for info
this tutorial link below was a great help as its not the same as instructions that come with it.

i know it says vera lite but it worked for smartthings


(Aonghus Mor) #42

Good! I agree that the instructions leave a lot to be desired, especially on pairing the device with a hub.
A couple of things which are still puzzling me and which I haven’t seen mentioned here, or elsewhere:

  1. The SRT323 is advertised as a straight replacement for an old fashioned dumb thermostat, but I found I had to change the wiring of the backplate. I couldn’t just plug the SRT323 into the old backplate. This appears to be related to the fact that it is a battery powerred device rather than drawing power from the backplate.
  2. The SRT323 has a third pin, which doesn’t appear to serve any purpose. There is a dotted line between 1 and 3 on page 14 of the instructions, but nothing else.

(Chris Petzny) #43


I’m struggling with a little logic issue. I’d love to be able to just turn the heating off when everyone leaves the house or when the mode is set to AWAY. Then turn it on again when someone returns or when the mode changes to HOME. Ideally I’d like to achieve this without changing the setpoint. My Heatit thermostats for underfloor heating have a simple on/off capability, so I don’t have to manipulate setpoints to turn the heating on and off, but the SRT323 doesn’t seem to support this.

Is this something the “comfort mode” can be used for? Or does it always switch between 5 and 21 degrees?

BTW, the DH and thermostat have been rock-solid, so thank you!!



(Aonghus Mor) #44

I can see in principle how to do this. The thermostat and zwave distinguish between ‘mode’ and ‘operating state’, a distinction I didn’t initially understand. It’s easier if you think about a more complicated system, such as air conditioning, which can be set for heating, cooling or automatic. That is the ‘mode’. The ‘operating state’ is what the system is actually doing, which could be heating, cooling, idle, etc. At the moment the ‘mode’ is fixed on ‘heat’ in the DH, but it would be possible to enable it to switch between ‘heat’ and ‘off’. However, do you really want to do this. I’m sure the reason the ‘comfort mode’ switches between 5 and 21 is that 5 is seen as the minimum temperature to guarantee frost protection. Maybe not necessary in summer, but important in winter.
At the moment I have my system set to change between 2 temperatures depending on whether the system state is ‘away’ or ‘home, night’ and the time of day. I also reduce the temperature to an even lower level when the house is empty for several days.


(Chris Petzny) #45

For me the main concern is switching from a preset lower setpoint back to the previously set high setpoint. In the recent changeable weather, the thermostat has been manually set to anything between 21 and 24 degrees. So if a routine uses a preset value, say 22 degrees, there’s a good chance it’ll be different to how it was left, meaning within half an hour of returning home I’d have to get manually change the setting.

Actually, thinking about it, the Heatit thermostats use two setpoints. One for heat and one they call “Eco Mode”. So from my routines, I switch to Eco Mode when away and back to normal when home. It’s kind of like comfort mode on the SRT323, but with setpoints I can define…


(Aonghus Mor) #46

I’ll think about that, but at the moment it’s not obvious how to achieve this other than with webcore. I assume your fixed setpoints are set either in @meavydev’s scheduler or in the ‘Goodbye’ or ‘I’m Back’ routines. All of these expect explicit numbers.
In webcore it would be easy to define a piston which is triggered by a change between Home and Away, remembers the setpoint before the last change and resets it on the next change.
An alternative approach to get round the restrictions might be to tweak the DH to do something special if it’s given an absurd setpoint, such as T>100.


(Chris Petzny) #47

For the Heatit thermostats, the two setpoints are chosen in the tiles in the device screen in the app. Then I use CoRE to change the thermostat mode to eco and back again depending on HOME or AWAY. That way there is a single setting for the setpoints for each thermostat and CoRE just has to be a switch…


(Aonghus Mor) #48

The hardware doesn’t recognise any mode other than ‘heat’. However, I have an idea how to achieve something similar. I’ll gat back to you when I’ve had time to try it out.


(Aonghus Mor) #49

The latest version in GitHub has the following additions to the previous version:
If the DH receives a temperature setpoint greater than 99 it interprets it as a code rather than an explicit temperature.
The meanings of these codes are:
100) reset to the previous temperature. e.g. come back to a house at the same temperature as you left it.
101) set to the temperature defined in the DH preferences screen as “home temperature”.
102) ditto, but “away temperature”.
103) ditto, but frost protection temperature.
Typically a user finds that he has to set the same temperatures in multiple places, such as in @meavydev’s scheduler or in the “Goodbye” or “I’m Back” routines, etc. These codes can be used instead of the temperature in multiple places where integers are expected, but the actual temperature concerned need only be defined once in the DH preferences. This makes it easy to change such setpoints.