Let me offer an additional change (you may call this FlowThermostat1.2.py):
Change
......
#print feedCurrent
if getValue(line, 'E', 0) > 0 and feedCurrent != lastFeedCurrent : # ......
to
......
#print feedCurrent
if getValue(line, 'E', 0) > 0 and feedCurrent != lastFeedCurrent and feedCurrent <= feedFull :
......
Why do you need this change? Cause last versions of Cura sometimes add feedrates which exceed the "full" feedrate as calculated by FlowThermostat. These could be twice or even more "the top feedrate" as calculated. So they can confuse FlowThermostat and make him give bogus temperatures. My solution is simply to ignore any feedrate which exceed the maximal feedrate as given by the user (print speed X 60). If you have a better solution, be my guest.. But so far this solved the problem for me :-).