Thermostat controller, missing piece of the puzzle

Hi,
I have been re-implimenting the code for a device that never was fully functional, But I am stuck. I wonder how do I find out the internal logic of a Hubitat provided device?

Right now I am trying to determine what happens, when I see this from the controller logs.
[Pod lounge] set to idle

I am implementing the code in Pod lounge, and I can't figure out what's being called so I might actually implement the code to support that requirement.

I just setup Thermostat Controller to override my Nest occasionally on really cold nights. Nest has NO hold feature which is very odd, so I use the controller to act as hold for me. Otherwise I would have to edit the schedule and then put it back the next day (very tedious). Anyway... the Nest driver I use has this attribute which is probably what you are looking for:

  • thermostatOperatingState : idle

I believe that means the thermostat is not calling for any action from the HVAC system (heat/cool), it is idle waiting for it to be needed.

1 Like

do you have a command to set that? might it be setThermostatOperatingState?

https://docs.hubitat.com/index.php?title=Driver_Capability_List#Thermostat

I assume you already have the Thermostat capability.
Looks like the driver I have also includes capability 'ThermostatOperatingState'

Here is the driver: google-sdm-api/sdm-api-thermostat.groovy at develop ยท dkilgore90/google-sdm-api ยท GitHub

I do not see where it is being set anywhere in that driver.
Looks like the parent app just sets the state itself with this line:
operState ? sendEvent(device, [name: 'thermostatOperatingState', value: operState]) : null

I think if the Thermostat Controller app was trying to call a command and it did not exist you would get an error. So it might just be sending an event, and you need the capabilities enabled to see it.

thermostatOperatingState is usually an attribute, that is sent in an event by the driver. The values 'heating', 'idle', etc.. are determined based on the physical thermostat reported state (relay activated or valve opened). In other thermostats drivers the thermostatOperatingState is simply simulated based on the difference between the thermostatSetpoint and the measured temperature.

Hi jtp10181 kkossev

Thanks for your responses, I am new to Hubitat but not to software (20 years+). I have the thermostat controller app, and then I have the thermostat driver for the air conditioner I have (kind of its really a sensibo https://sensibo.com)

I understand the driver and the capabilities now and have it largely working. When the controller detects the temp is out of range it will switch on the device and heat and cool correctly. But when it should be shutting down the unit it instead sets it to be a low hear or high cool. For example.

Its cold here in the morning (I am in the desert and maybe it wouldn't be cool for you) and I like to heat up here to >24. Once it hits 24, the aircon is switched down to 18 in heating mode. The device stays on but doesn't do much. The controller goes to idle state but the device is still active. I have added a RM rule to detect Idle on the controller and switch off the device. I was hoping the controller would switch off the device, but it doesn't appear to work like that.

It would be great if when the controller went idle there was a way to switch off the thermostat.

Normally most people keep their thermostat in the same mode (heat/cool/etc..) and adjust the temp to be where you want it to keep the area at, so it runs automatically. This is why it leaves it in the same mode and then adjusts the target such that the heater stops. The thermostat controller since it can temp inputs from other sources it will force the thermostat to heat or cool by setting the target to be 2 deg above or below the temp reported from the thermostat.

The thermostat controller is really only useful if you want to use multiple temperature sensors to set the thermostat, or in my case I am using it to override a schedule.

Without the thermostat controller would you normally turn the heat on and then when it hits your target temp you manually turn it back off? That sort of defeats the purpose of a thermostat.

Or maybe I am not understanding what you mean by "the device is still active"

1 Like

Hey, jtp10181

I guess my location and the air conditioning hardware and the remote control combine together to make a different use case.

My problems

  1. I live in a desert, the night is cold, the day is very hot. nights can be 1 C days can be up to 50C
  2. The air-conditioning we have has a HEAT, or a COLD mode, it doesn't come with an Auto that will switch between heat and cool.
  3. the air-conditioning hardware is provided by my accommodation, which is provided by my work, I didn't get to pick it, its all I have.

I purchased sensibo controllers, that will allow me to network control the aircon and when combined with the thermostat controller switch on the sensibo and then the aircon when the temperature goes out of the required range. My problem is with how it deals with the system when I want it to go idle, rather than just leaving it on and turning it down I really want it to switch off the thermostat.

The thermostat I have isn't really a thermostat its an air conditioner, which is why it doesn't act like one at all.