Hi friends!
I have a rule setup to compare the temperature from an outside source, to an inside source and activate a fan, easy enough! but I've hit a snag... the outside temperature only shows ? in the rule...
to poll my personal weather station, and that works fine, in the device, I can see temperature reported just fine, on a dashboard tile, again, temperature reported just fine... so I'm at a loss as to what to look at next.
I've tried both a v3 and v4 rule machine rule, they both seem to do the same thing.
Can you post a screenshot of the rule? And maybe the device page for the device you are getting outside temperature from. That will help people help you.
The problem is not in RM if the temp is being displayed as ?. The problem is in the device. Please post a picture of the edit device page for the device you are trying to get the outside temperature from.
Have you tried reversing the comparison, so that the outside temperature is on the right instead of on the left. It's a strange problem, and not immediately obvious what is wrong.
Also, could you post the events from the device (button at top of device page).
@bravenel, it seems I'm unable to reverse the condition... any time I try, even creating a brand new rule, I get
app:392019-08-19 14:22:24.905 errorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#plus. Cannot resolve which method to invoke for [null] due to overlapping prototypes between: [class java.lang.Character] [class java.lang.String] [class java.lang.Number] on line 4540 (mainPage)
and the rule-app blows up... have to delete it, won't open or anything...
So let me get this straight: You were trying to edit the condition you had, to be this
Temperature of Garage Thermostat > Rooftop Weather
Is that right? Were you doing it in the Manage or Create Conditions section?
Can you just create an empty rule, give it a name, go into Actions, and then into Manage or Create Conditions, and see if you can create that condition above.
The problem is in the driver. It's putting a string value into temperature, and it is supposed to be a number. This is on line 902 of the code you linked above.
You need to contact the driver author and have them fix that. All of these sendEvents with strings for values need to be fixed to send numbers, not strings.
it seems I'm not going to be able to fix this that easily... the data, including the degrees F is coming from the far end... no idea how to strip that off. sooo, gotta figure that out!
No, it's coming from the driver, in the code I pointed out. The driver has the temperature value as a number internally, it's just messing it up in that one place (messing up several values, including temperature).
If you turn off display units, it should work. The code I showed above is the fix for the bad code around line 902.
Not sure the best way to clean all those up, but that's the only one I really wanted to work right now.
Hopefully if you have a few minutes or hours to poke at it, you might be better suited to a proper fix.