Groovy app broken out of the blue

Has been working for months and months and months. No code changes. Suddenly I get:

app:3852019-11-05 11:27:39.512 am errorgroovy.lang.MissingMethodException: No signature of method: static java.lang.Float.parseFloat() is applicable for argument types: (java.math.BigDecimal) values: [69]

What is app 385?

What app and if you click on the app:385 what app is that ?

No info at all to help you.

Just based on the error:

the method Float.parseFloat has a definition of

public static float parseFloat(String s)

That means it takes a string as a parameter. In your log, the parameter is of the type BigDecimal and that method has no idea on how to convert such type into a float.

Could be several reasons for that and as @Terk and @anon61068208 said, much more information is needed.
Start with what kind of app is it?

It might be that the app hasn't changed but that a device that supplies the value 69 was previously using a string and now is using BigDecimal.

I get the groovy error message on my Go Control Thermostat device. Just started happening.
image

That is a completely different error than what the OP started with. Iā€™d suggest to open an individual topic for that to not mix up two different issues

1 Like

How is this different? other than one shows up under an App and the other is a device.

Your problem is with a built in driver that needs to be looked at. Also your problem indicates an issue with a variable that is null. His problem is with a so far unknown app. Yes, they are both errors but of two different natures

1 Like

That certainly seems to be the case. I'm no groovy expert, it's an app that interfaces with the API for my Rheem EcoNet thermostat that I kind of cobbled together.

To make matters more complicated I target it remotely from Home Assistant with MQTT. In that scenario it is working, I guess because its getting a string from MQTT. It's only when changing temp from the hubitat driver on hubitat that I get the float/bigDecimal error above.

I fixed it by forcing the bigDecimal with .toString() which then gets properly converted to a float.
I swear this used to work and something must have changed, but now I'm not so sure... fixed though.

1 Like