Morris Hansen Posted February 17, 2014 Posted February 17, 2014 I am trying to troubleshoot some issues I am having with the ISY controlling my Aprilaire thermostat that is connected to my Elk. I would like to be able to read what the thermostat is currently set to. I have read the Elk protocol manual and it appears there is a command to read all the thermostat settings. I see in the ISY, you can do a query of a thermostat but not clear what happens to the data. I looked at the log and it doesn't appear that anything comes back. Something is sent but it doesn't seem like it is correct. It basically shows the time in the log. I am running the latest code on the Elk and the ISY. I have 3 thermostats connected to my Elk. I have had this issue for a long time and just now trying to troubleshoot. Here are the commands in the Elk manual: Request Thermostat Data (tr) 08 – Length as ASCII hex tr – Get thermostat data NN – Thermostat 01 to 16 00 – future use CC – Checksum Example: 08tr0100F1 Thermostat 01, request data Reply Thermostat Data (TR) 13 – Length as ASCII hex TR – Reply with Thermostat Data NN – Thermostat Number 01 to 16, 0 = invalid M - ThermostatMode 0=Off,1=Heat,2=Cool,3=Auto, 4=Emergency Heat H - ThermostatHold Hold current temperature. 0=False, 1=True F - ThermostatFan 0=Fan Auto, 1=Fan turned on TT – CurrentTemperature Current temperature, deg.F 0=invalid, 70=70 HH – HeatSetPoint Heat setpoint if in heat/auto mode, decimal SS – CoolSetPoint Cool setpoint if in Cool/auto mode, decimal UU – CurrentHumidity Current humidity, 01 to 99%, 0 = invalid 00 – future use CC – Checksum Example: 13TR012007
Chris Jahn Posted February 19, 2014 Posted February 19, 2014 Hi mohansen, You can see all the thermostats configured by Elk in the table shown under the Elk / Thermostats tab in the ISY Admin Console. We query the thermostats and store the mode, hold, fan, temperature, cool/heat setpoints and humidity. You can also change the settings of the thermostats from that page.
Morris Hansen Posted February 19, 2014 Author Posted February 19, 2014 Thanks, I am aware of the various UI screens. I have various programs that change the thermostat settings during the day based on time, whether I am working from home, status of security system, day of week, etc. For example, I turn down the thermostats at 9:45pm each night. On many occasions, I get up in the morning and noticed the thermostats did not get turned down properly. I recently added some email notifications so I know when the programs are triggered and what triggered them. I have the emails configured to send me what I changed the temperature to. I can tell that my programs are executing at the correct time though when I walk up and look at the thermostats or query them remotely, they are not always changed. So the next step in troubleshooting, I thought if I could wait a period of time after making any changes, query each of the thermostats and email me the current settings I could try and narrow down where the problem is. When I create a program to do a thermostat query, the log doesn't show anything other than the time. It would appear to me that the query is broken. So my original post was how can I programmatically query the thermostat and do something (change a variable) with the response data. If I manually request the data (via telnet) from the Elk, I am able to get the data back. I figured the ISY thermostat query would parse out this data. Here is what I get from my Elk. 13TR011007169780000FE 13TR021006965790000F9 13TR03100605981000005 It shows 3 different thermostats, 01 set to 69, 02 set to 65 and 03 set to 59, all set to Heat. Thanks
Chris Jahn Posted February 19, 2014 Posted February 19, 2014 So the next step in troubleshooting, I thought if I could wait a period of time after making any changes, query each of the thermostats and email me the current settings I could try and narrow down where the problem is. When I create a program to do a thermostat query, the log doesn't show anything other than the time. It would appear to me that the query is broken. So my original post was how can I programmatically query the thermostat and do something (change a variable) with the response data. If I manually request the data (via telnet) from the Elk, I am able to get the data back. I figured the ISY thermostat query would parse out this data. Here is what I get from my Elk. 13TR011007169780000FE 13TR021006965790000F9 13TR03100605981000005 It shows 3 different thermostats, 01 set to 69, 02 set to 65 and 03 set to 59, all set to Heat. Thanks I guess I'm not quite sure what you are asking for, but here's a little clarification ... ISY uses a 'tr' request to query an Elk thermostat, it then parses the returning 'TR' record and updates its internal values based on that record (for use by programs, e-mail etc.). You can see these values by using the ${elk.tstat.1.CLISPH} etc. variables in an e-mail. (http://wiki.universal-devices.com/index ... _Variables) There is no way to programmatically do this somehow and have it update the ISY other than to use the existing thermostat query command in either programs, REST or SOAP. (e.g. /rest/elk/tstat/1/query)
Morris Hansen Posted February 19, 2014 Author Posted February 19, 2014 That helps alot. I did not know about all the elk variables plus I was not aware I could use a variable that was not listed in the email customization variable list. This works now to be able to send an email with the current thermostat settings. In my HVAC programs, I set a variable per thermostat each time I make a temperature change. It would be helpful if I could add a program step where I compare what I sent to the Elk to what the Elk currently is set to. I know I can compare variables in a program but do not see where I can use the elk email customization variables in a program. Am I missing something that allows me to do the above? Appreciate your help.
Morris Hansen Posted February 19, 2014 Author Posted February 19, 2014 I just tried the REST query using Firefox. It responds with a success but does not show any data. Should this actually show the results of the query?
Chris Jahn Posted February 19, 2014 Posted February 19, 2014 Query just does the actual query without returning results (in case you have a lot of thermstats and want to query them all without it returning a large payload). Use rest/elk/tstat/1/get/status to return the current values for the thermostat 1. You can return the values for all the thermostats by using '0' for the thermostat id.
Chris Jahn Posted February 19, 2014 Posted February 19, 2014 I know I can compare variables in a program but do not see where I can use the elk email customization variables in a program. Unfortunately email variables and program variables are totally separate types and cannot be compared/assigned to one another. Currently, there is no way to use the email variables directly in programs.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.