The problem is that I still get the NaN from the last Function node (Hourcons). There are two messages, consisting of numbers, going in to that node for subtraction. Why does it reply Not a Number!?
Without seeing the actual code in that function it's impossible to say.
The usual cause will be some maths operation using undefined rather than a number value.
You could add some node.warn(value) statements in the function to check your values are what you expect and to see where the NaN value is being generated.
The debug shows you have thishourread and lasthourread in separate messages.
If you want to perform a calculation using both values you need to get them into the same message. Otherwise, when the function node receives the messages it only has one or the other value.
You can use the Join node to combine the messages into one.