Strange temperature readings from OpenWeather
-
(This is most likely an issue with OpenWeather, but I'm posting here to see if anyone else is seeing the same issue in their OpenWeather data)
MSR 22053 on Raspberry Pi 4 in Docker
I have a rule that turns on a heater in my chicken coop when the temperature (is less than 33 degrees F) OR if (the temperature is less than 36 degrees AND the heater is already on). This way the heater turns on at temp < 33 and doesn't turn off until temp >= 36. I also push a notification to my phone when the heater turns on and off so I can keep an eye on what it's doing.
This has been running without issue all winter, but today I saw notifications that the heater had turned on and off several times in the early morning. That is unusual as generally the 3 degree difference between the on temp and the off temp prevents fluttering of the rule state.
I checked another OpenWeather feed that I have on my Node-Red UI dashboard and it was showing 36 degrees at the same time Reactor was showing <32 degrees. I also checked the OpenWeather site for my location and it was showing 36.
I restarted Reactor to try to refresh the reading (I don't know if a restart does that) and it still showed <32 degrees. I checked the time stamp showing in MSR and confirmed that value was only 2 minutes old, which was close to the restart time.
Here is a Grafana chart of the outside temp this morning as seen by Reactor:
Those steps are 3 or 4 degree fluctuations. Looking back at older data I see some ups and downs, but they're generally .1 degree fluctuations.
This is a 24 hour period 1 week ago ("now -7d" to "now -6d"). The curve trends either up or down without swinging.
The "noisy" data seems to start 2 days ago. This is "now -2d" to "now -1d":
I'm probably going to add in a 'sustained for' condition on my rule so that it takes multiple data points to change the state of the heater switch. MSR updates the weather every 15 minutes, and looking at the data a 1-hour sustained condition would filter out most of the noise.
It's just really odd that I'm getting different temp readings in MSR than what I see in my other OpenWeather feed or the OpenWeather website when I update both just a few seconds apart.
-
toggledbitswrote on Feb 28, 2022, 6:59 PM last edited by toggledbits Feb 28, 2022, 3:04 PM
There are different queries that can be made, and different versions of the APIs as well. The OWMWeatherController in Reactor uses the API 2.5 weather query described here. I know that many other subsystems use the newer "One Call" endpoint. The location also matters. Since OWM integrates weather information from multiple sources, it may include or exclude sources based on the proximity to the given location. For example, if you specify a lat-long, you may get weather data that includes information from a near neighbor that has a published weather station, where if you use the city code for location, it will not include that station. This has a big effect; I live about 30km from KATL (Hartsfield-Atlanta Intl Airport) and 5 from KFFC (Falcon Field Executive Airport), and temperatures and humidity vary widely comparing OWM, KATL, KFFC, and my own local station.
Edit: I just peeked at the code for the OWM NR node, and it lets you choose weather you use the
weather
endpoint or theonecall
endpoint by configuration. Any idea which you are using? It would be in the settings for the node, and the choices would beforecast
,current
, oronecall
as seen there. -
@toggledbits I live less that 15 miles from KCHS (NWS at Charleston Intl Airport/Joint Base Charleston) and have a backyard weather station. The temps can vary up to 5ºF and the winds are almost always higher by a couple MPH at KCHS.
Like @alan_f I drive my HVAC, fountain, all kinda things off of my Ambient API backed up by OWM's API. Only difference here, I do not use the MSR config for OWM, I just call the API directly.
-
@toggledbits My Node-red weather is using the onecall URL.
-
2/4