Hello Tukker,
thx for the flow. There are two things I could suggest, having not studied it profoundly:
1) using your method, you could reduce blocks 5,6,7,9 and 12 into one single block, that would get rid of 4.
You could simply have a variable set block for count, and as Value argument use a
conditional operator like this:
speed <= 8 ? count + 20 : speed <= 27 ? count + 5 : count + 3
You could even include the check for >= 100, I guess, and reduce by 2 more blocks (8 & 11):
speed <= 8 ? (count >= 80 ? 0 : count + 20) : speed <= 27 ? (count >= 95 ? 0 : count + 5) : (count >= 97 ? 0 : count + 3)
2) instead of using the get location block to measure the speed (which at least in the flow that you sent checks continually, which sounds pretty wasteful to me, unless you add some delay in between) have you tried using the "Await physical activity" block, having it check for running, bicycling, car driving, and make the time vary on that result? Perhaps a more efficient way altogether...?
Let us know if this helps and if you need any more help.
W.k.r.