I have two Venstar thermostats, T-7900 and a T-2000 both using the custom:simple-thermostat card. They have been functioning correctly for several months. Since it is summer, both thermostats have been placed in the “off” mode. When in the “off” mode the ‘temp setting’ fields of the card indicate “N/A” which is not ideal but not a problem for me. Several days ago I decided to add fan control to the T-7900. It was simple to do and worked, although does not support the ventilation fan program functionality of the thermostat. Again, not a huge issue.
Here is where the problem enters. I happened to switch the T-2000 to the “auto” mode and discovered that the set temperature and the reported sensor temperature was north of 150⁰. I knew it was warm but 150⁰?
I have tried different thermostat cards to see if it was related but the result was the same. To reiterate, the T-7900 is still reporting correctly. Making http inquiries to either thermostat returns the temperature correctly, i.e. it reflects the temperature displayed on the thermostat. I did the calculations and it appears that, while the temperature is being correctly reported in ⁰F, in both cases, the HA thermostat cards are reconverting the reading as though it was ⁰C to ⁰F. Thus 67⁰F becomes 153⁰.
I have posted the card code here, although it seems unlikely to be the problem given multiple thermostat cards have the same result and that only one thermostat has a problem.
The Venstar integration page indicates no open issues and 12 closed issues. Multiple of the ‘closed’ issues are exactly the issue that is the subject of this post. It is quite apparent that this problem still exists and it escapes me why the issues are ‘closed.’ In correcting a long standing firmware error in the T-2000 thermostat, this problem has arisen due to a ‘code fix’ in the Venstar integration to handle the firmware API problem.
This has yet to be fixed in the integration. How is this a ‘closed’ issue?
FWIW, I am encountering a similar issue on my T-2000. Current temperature on the UI is 165 deg F.
I deleted the venstar integration and recreated but still the current temperature is not valid.
This was caused when Venstar updated the T-2000 firmware. Previously, the firmware always reported temperature value as ⁰C from the API. The new firmware reports temperature according to the local thermostat setting, i.e. either ⁰C or ⁰F. Because code was added to the integration to handle the conversion to ⁰F to accommodate the previous firmware, the integration is now treating the reported temperature as ⁰C despite it being ⁰F. You can do the conversion to see that your 150⁰+ reading is the result.
New code has apparently been written but I suppose it has to go through the verification/ approval process before the new version is released.
Thanks for the info. My T-2000 is at firmware version 5.28 which is the problem firmware.
Here is the code that has been changed where they now check the firmware version for T2* and T3* models.
I have upgraded to core-2022.7 and I opened the venstarcolortouch.py and can see the fix is in place.
However, now the venstar component is broken.
I have seen the corrective code but my problem is that none of the files involved are visible on my Docker container version which is currently stuck at ver. 2022.6.5. So far there is no upgrade available to the 2022.7 version for my Asustor NAS.
Probably not much help, but I updated vestarcolortouch.py by using ‘docker exec -it homeassistant bash’ and found the file under /usr/local/lib/python-3.10/site-packages/venstarcolortouch.
I edited the file and restarted homeassistant (warm not cold). I think the change will be lost if you do a cold (power cycle) restart.
Logger: homeassistant.components.venstar.const
Source: components/venstar/__init__.py:88
Integration: Venstar (documentation, issues)
First occurred: 8:26:43 AM (461 occurrences)
Last logged: 6:37:31 PM
Unexpected error fetching venstar data: could not convert string to float: '2.22.19'
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 205, in _async_refresh
self.data = await self._async_update_data()
File "/usr/src/homeassistant/homeassistant/components/venstar/__init__.py", line 88, in _async_update_data
await self.hass.async_add_executor_job(self.client.update_info)
File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/local/lib/python3.10/site-packages/venstarcolortouch/venstarcolortouch.py", line 173, in update_info
if not self.login():
File "/usr/local/lib/python3.10/site-packages/venstarcolortouch/venstarcolortouch.py", line 112, in login
self._firmware_ver = float(j["firmware"])
ValueError: could not convert string to float: '2.22.19'
My Venstar stopped working as well, and I am ashamed to admit I did not notice when.
I would note the issue we have been hi-lighting here has been documented as an issue. The initial symptom was an invalid display of temperature in deg F in the home assistant front end due to a Venstar firmware update that changed the API’s return of current temperature (and other readings?).
The fix that was merged ended up with a 2nd breakage.
Its failure signature is the trace-back :
File “C:\x\py\Lib\site-packages\venstarcolortouch\venstarcolortouch.py”, line 207, in update_info
self.hum_setpoint = self.get_settings(“hum_setpoint”)
File “C:\x\py\Lib\site-packages\venstarcolortouch\venstarcolortouch.py”, line 272, in get_settings
setting = r.json()[attr]
KeyError: ‘hum_setpoint’
At this point, I am on the latest home assistant core release and this latest problem has not been resolved.
I see that it has been addressed in a recent merge in the Venstar python module:
However, this has not been propagated into home assistant.
The Docker installation maintainer for my AsuStor NAS has released the HA update to 2022.7.x which I have now installed. This has cleared the fault initially reported, i.e. double conversion of the local thermostat temperature reading.
This is for me, resolved.