Venstar thermostat

Ok found the issue. It was indeed a difference between residential and commercial models.

I’ll work on a fix for the upstream library to support this, but in the meantime can you make the following 2 changes to:
/srv/homeassistant/lib/python3.5/site-packages/venstarcolortouch/venstarcolortouch.py

  • line 77: Add- self.hum_active = None
  • line 140: Delete- self.away = self.get_info(“away”)

Just get rid of line 140 altogether- we’re not using it in HASS right now anyway, and add line 77. That should get you going!

For clarification, commercial models don’t have an “away” mode like the residential models do. They have a “holiday” mode instead. Right now we’re not really doing anything with that info in hass anyway.

Thanks a lot, made the changes and it is loading and recognizing the thermostat without errors now.

Great! Feel free to report back on anything else you run into!

i realize this has been quiet for a while, but this seems better that a new request…

The Venstar T7900 operates in half degrees when set to celcius.

Can venstar.py [def precision(self):] be updated to check the units and return precision_halves if in celcius mode?

Thanks

Mark

I bought the Venstar Mini T2000 and it can only report in Celsius. I pinged the Venstar developers and they said that all future models will be Celsius only.

I’m looking at throwing a quick hack into the module but it would be nice if this was a configurable option.

e.g. in hass config “tempunits = C” or “tempunits = F”

Then the code would check the tempunits reported by the API. If 0 and hass wants F, do the math. If 0, hass = C, do nothing. If 1 and hass wants C, do the math…and so on.

I apologize if this is off topic - is there any way to get rid of the AWAY mode? I have T6800 commercial one and have the error - Venstar T6800 thermostat not seen by HA

I will create a custom component if anyone would be kind enough to assist on what to modify.
Thank you in advance.

Solved the problem. I created a custom_component that does the job

A note for developers

I have a Venstar commercial thermostat ColorTouch T8900, the VenstarColorTouch set_control() method doesn’t work with it, I get the following error:

curl -d ‘mode=2&fan=0&heattemp=55.0&cooltemp=77.0’ http://hvac-upstairs/control
{“error”:true,“reason”:“Fan change is not allowed when running schedule”}

Removing ‘fan=0&’ from the URL addresses the issue:

curl -d ‘mode=2&heattemp=55.0&cooltemp=77.0’ http://hvac-upstairs/control
{“success”:true}

A simple fix in my case was just changing the following line in VenstarColorTouch method set_control(self):

    data = urllib.parse.urlencode({'mode':self.mode, 'fan':self.fan, 'heattemp':self.heattemp, 'cooltemp':self.cooltemp})

to

    data = urllib.parse.urlencode({'mode':self.mode, 'heattemp':self.heattemp, 'cooltemp':self.cooltemp})

This is also the case for Explorer Mini T2000. RESTful API and python module works as expected, i.e., reports halves in Celcius, but the HA component rounds-up the values.

I simply took alekseyn’s custom component and changed the return code to HALVES.
Works flawlessly.
I proposed the specific change ages ago and no one picked it up other than to claim it was a limitation of the API .
Actually contributing to the component is beyond my comfort zone and skill level so this will suffice for now.

Mark

Thanks, just in case, I submitted issue some time ago. TBH we should probably do PR, but it takes time…

Link to the issue: https://github.com/home-assistant/home-assistant/issues/28051

So I’ve just installed a T7900.

I’m trying to understand the “Preset” choice when clicking on the three dots in the thermostat card.

I see None, Away and temperature. What do these mean?

The ‘Away’ corresponds to the “away/vacation” setpoints. ‘Temperature’ should be the standard daily schedule and ‘none’ would be a fixed temperature (no schedule). I will try to confirm in the next couple of days.

@Mjoh, no need.

You’re spot on.

I, like you, changed @alekseyn custom code to fit my needs.

I changed the presets listed to the following to suit my needs.

None = Schedule Off
temperature = Schedule On

Thanks for the reply…

I have confirmed I was wrong…

Correct answer is:
The ‘none’ mode is running the schedule
The ‘temperature’ mode is running whatever the setpoint was when the preset changed
The ‘away’ mode runs the setpoints from the vacatio/away tab

Was wondering if anyone else is has overcome the issue with the API reporting in C while trying to control in F. For instance, if I try to set to 70 in HASS the thermostat will bump to 71, setting to 71 will bump to 72, etc…I assume this is due to rounding in the conversion from F (in lovelace) to C (via the API) and back to F at the thermostat.

Thanks for any suggestions!

@nholben I wanted to see if you or anyone else has solved the issue with C/F conversion - I have been working on it and it seems that despite having the units set to F on the thermostat it is reporting and receiving units in C which messes up the control

I haven’t figured it out yet…so far just enabling the Skyport access keeps the Wife-Approval-Factor in the black.

I’m convinced it would be as simple as subtracting half a degree from the input (F) so the converted value (almost) always rounds the correct way. But I’m not smart enough with templates and stuff to figure it out on my own.

I am VERY new to HA, and am trying to incorporate (2) Venstar T5900’s. How can I trigger an Automation when the thermostat goes into Cooling Mode. When I look at the State trigger, i can only trigger off of attributes, not the main state. I must be doing something wrong. I was going to use hvac_mode but it only changes when the thermostat is actively heating or cooling, which seems like a bug to me.

Thoughts?