I just installed the openweathermap integration. I get a lot of values, but I am only interested in 3 values: temperature, humidity and Dew Point.
(I want to compare Dew Point outside against inside to start a fan for ventilating our basement.)
Where as temperature and humidity seem to be correct, the Dew Point seems to be a constant at 2.9°C.
This has been annoying me too, so I did some poking at the UI and the code. Seems the dewpoint math for °F is broken in the integration. The API call returns all temperatures in °K. If you select Metric units in the General Settings area, the number for dewpoint presented in °C is correct. If you select Imperial units in General Settngs, then the number for dewpoint is double-converted to °F. (20°C → 71°F → 154°F, approximately).
The module that fetches the data from the OWM API uses a different function to convert temperature from Kelvin to Celsius than is uses to convert other temperatures, which is odd but the math checks out. I am still looking through the codebase to see where the double conversion happens, since somethine either drops the units or fails to verify the units before the second conversion.
So any news on how this went? I’m seeing the same issue as you with obscenely high dew points and before I dig into the component code myself I figured I’d ask!
I created my own dewpoint sensor for indoors, using the formula (degC) - (100-humidity)/5.
To see how “good” that formula was, I also applied it to the outside temperature and humidity. When I went to chart everything I noted that the formula followed the outdoor dewpoint pretty well, with some offset. But then yeah, dewpoint was above temp, which is … odd, for both values. I looked at the values and decided if I was getting the outside temp as F instead of C and doing the above formula, I get the incorrect values I was getting. I don’t know if something similar is happening in the openweathermap service, but it seems possible if the dewpoint is being calculated from the temp, and the temp was taken as C when the value was the F value, it could do the same thing.