Thermostat scheduler: Unexpected error: Lexing failed on line: 1

Hubitat C7, software 2.3.3.140

Since upgrading to 2.3.3.140 two traditional thermostat scheduler apps fail to open (click on app in the Apps list) with a Lexing failed error:

Since this impacts two independent apps this looks like a potential bug.

Please show the Current States from the device page for the thermostat in question. What driver does this use?

They use the built-in Thermostat Controller Legacy. Here are the device states:

Here's the underlying device:

One the of the physical devices uses the Ecobee driver, the other uses the Z-wave Honeywell T6 Pro Thermostat driver.

The problem is that the driver has not been updated to conform to the Thermostat Capability, at least not for Thermostat Mode. What is shown is

Screenshot 2022-11-02 at 10.45.18 AM

But that needs to be

  • supportedThermostatModes: ["off","cool","heat","auto"]

You can fix this by temporarily changing the driver to Virtual Thermostat, and then putting that string just above that is in bold into the command tile 'setSupportedThermostatModes' , and hitting the tile to set it. Then put back the original driver. That should fix this for Thermostat Controller. There may be other areas of the driver that need to be updated, but generally the drivers don't rely on that attribute beyond setting it in the first place (in this case, incorrectly).

3 Likes

That fixed the problem, thanks @bravenel

Interesting, I have same device and firmware and am getting same error. Only uncovered this because I was going to migrate to the new scheduler.

Applied the suggested fix in post #4 but this did not resolve the issue. Only thing that changed was the error changed from

Error: Lexing failed on line: 1, column: 2, while reading 'o',...... to. Error: Lexing failed on line: 1, column: 2, while reading 'a'

Any advice is appreciated

Thermostat is GoControl ZWave


Thanks

EDIT: if nothing else, is there a way to simply view my Thermostat Controller Legacy config so that I can transcribe it to the new Thermostat Controller

You have an outdated driver. It is fairly easy to fix this.

For that themostat device, on its device page, temporarily swap the driver (Type) to Virtual Thermostat (hit Save Device). Once you have that, give it a setSupportedThermostatFanModes command with this string:

["auto","on"]

Then, swap back to the original driver (again, hit Save Device).

That should clear up this problem.

Thanks bravenel, that did it. Very easy once known.

Would it have been expected that I/we would have known and understood what appears to be a driver syntax change?

I don't think we did a very good job communicating about this issue. There were bugs in all of the thermostat drivers, a mismatch between the documentation of Thermostat Capability and the implementations. When those were fixed, the built-in apps were updated accordingly (we missed Basic Rule on the first go round).

User and community thermostat drivers are another issue. We don't have a great way to let those developers or their users know about this sort of thing. We try to do this with the release notes, but many users update without reading those. So, here we are where some of this pops up with a post like yours. Not ideal, for sure.

Just wanted to say that this fixed the issue for my GoControl Z-Wave thermostat as well. Thanks for sharing a quick fix!

It also might be great if someone could go and fix the factory GoControl Z-Wave thermostat driver so that it doesn't have this issue.

I thought they were all updated.. Will check it out.

Are you sure you are using the built-in driver? .. This driver has been updated.. Can you post a screenshot of your current states?