Thermostat fan and system modes

  • 343 Views
  • Last Post 09 October 2014
Axial-User posted this 07 October 2014

As it turns out, I can't set the fan or system modes using the calls in the Web Service docs either, I get Method Not Allowed. Can someone give examples of working URI's?

Thanks.

Order By: Standard | Newest | Votes
Axial-User posted this 08 October 2014

As it turns out, I can't set the fan or system modes using the calls in the Web Service docs either, I get Method Not Allowed. Can someone give examples of working URI's?

Thanks.

Ryan-Scott posted this 08 October 2014

As it turns out, I can't set the fan or system modes using the calls in the Web Service docs either, I get Method Not Allowed. Can someone give examples of working URI's?

Thanks.


Usually if you get a Method Not Allowed it means you used a "GET" when you should have used a "PUT" (or vice versa).

Here's a reference to the scripting methods that can query the device; this isn't the actual URLs, but it gives you an idea of which properties will come back in a t-stat device. You can get a list of devices back by hitting http://localhost:1178/zwave/devices; your t-stat properties will be in there.

here are some URL's you can use for setting values on your t-stat. You'll see things like {nodeId}, which you'll substitute for the actual value. In the case of nodeId, you'll enter the device id (be sure to remove the {}'s)

PUT /thermoSetPoint?nodeId={nodeId}&setPointName={setPointName}&temperatureValue={temperatureValue}&password={password}
PUT /thermoSetFanMode?nodeId={nodeId}&fanMode={fanMode}&password={password}
PUT /thermoSetSystemMode?nodeId={nodeId}&systemMode={systemMode}&password={password}

Axial-User posted this 08 October 2014

Ah, yes, I was thinking it meant object method instead of request method. Thanks for the quick response!

Axial-User posted this 08 October 2014

I am now using the PUT method (using CURL) with thermoSetPoint. I don't get any errors back, and if I misspell the command, I do get an error so I know the command is correct. I am sending it 'setPointName' => 'Heating1','temperatureValue' => '65' and 'password' => ''. No errors in the response, but the Heating1 setpoint is not changing. Do you have any suggestions as to what may be wrong?

Thanks!

Axial-User posted this 08 October 2014

I get a server error for thermoSetFanMode :

The server encountered an error processing the request. The exception message is 'Value cannot be null.
Parameter name: value'. See server logs for more details. The exception stack trace is:


at System.Enum.EnumResult.SetFailure(ParseFailureKind failure, String failureParameter)
at System.Enum.TryParseEnum(Type enumType, String value, Boolean ignoreCase, EnumResult& parseResult)
at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase)
at System.ServiceModel.Dispatcher.QueryStringConverter.ConvertStringToValue(String parameter, Type parameterType)
at System.ServiceModel.Dispatcher.UriTemplateDispatchFormatter.DeserializeRequest(Message message, Object[] parameters)
at System.ServiceModel.Dispatcher.CompositeDispatchFormatter.DeserializeRequest(Message message, Object[] parameters)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.DeserializeInputs(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)


Axial-User posted this 08 October 2014

I managed to get them all to work. I had to play around with CURL options, but I can now successfully set levels, and fan mode.

Axial-User posted this 08 October 2014

Everything works perfectly now, except I still can not get the current fan mode or system mode and they are not in the device data as far as I can tell. Any suggestions?

Ryan-Scott posted this 08 October 2014

Everything works perfectly now, except I still can not get the current fan mode or system mode and they are not in the device data as far as I can tell. Any suggestions?


If its set as a thermostat within InControl, your list at http://localhost:1178/zwave/devices should come back with a device that looks like this GIST. In there, you should have a state and mode property for both system and fan. What "type" does InControl show as your t-stat (in my GIST, it shows that mine is "__type": "Thermostat:#MLS.HA.DeviceController.Common.Device.ZWave")?

Axial-User posted this 09 October 2014

Interesting - mine is "ZWaveHaDevice:#MLS.HA.DeviceController.Common.Device.ZWave"

I don't get any of the thermostat attributes that yours shows except the Temperature, Heating1 and Cooling1 setpoints in the sr array. As you would probably expect, these attributes don't show accurately in the standard inControl interface either.

It is a Honeywell TH8320ZW.

Ryan-Scott posted this 09 October 2014

Interesting - mine is "ZWaveHaDevice:#MLS.HA.DeviceController.Common.Device.ZWave"

I don't get any of the thermostat attributes that yours shows except the Temperature, Heating1 and Cooling1 setpoints in the sr array. As you would probably expect, these attributes don't show accurately in the standard inControl interface either.

It is a Honeywell TH8320ZW.


That's indeed interesting... inside your UI, what do you see? Here's a picture of mine - note that it shows up as a Thermostat and has system mode/fan mode, and a temperature:

http://snag.gy/6P6in.jpg

Axial-User posted this 09 October 2014

Different!

http://snag.gy/KiIGG.jpg

Axial-User posted this 09 October 2014

System Mode is Heat right now by the way. It shows as 'Off'.

Axial-User posted this 09 October 2014

Ok, how's this for strange. I added a new device (a BinarySwitch) and noticed that the thermostat was now reading. The type changed to the same as yours, and all the values are there now. Does that make any sense at all?

Close