It seems that every 9th and 10th data point produces the same temperature value. It is based on the data that I did replicate on my trip meter (green highlight) and I manually filled in the rest after seeing the pattern. I can't explain why this is the case, but I'm 99% sure the pattern is correct.

It would be nice to have a simple formula to replicate this in our code, but have to think on it a little to come up with one.

Edit1=============
This pattern lines up with every 5th and 6th decimal value of the input data (i.e. 25,26,35,36). If we create an xy plot we see the steps generated and we can divide this up into linear segments; so 20-25 is linear, 26-35 is linear, 36-45 is linear.