Further to my post here about updating labels, I have another question if I may.
The issue below occurs when the Blynk iOS app has been backgrounded for a period of time. It shows an old timer value (e.g. 13hrs 57mins). Then when Big Timer send it’s update every on the minute, the timer values suddenly show the latest value (e.g. 4hrs 45mins).
I guess that there are lots of ways to achieve this, but my approach would be to save the current remaining time to a flow-level variable then retrieve it every second and write that result out to Blynk.
You can do this without writing any functions, just using the Change node…
@PeteKnight thanks for that info, I’m sure it will come in handy. Also I did not notice the context data, I’m also on 0.20.5, I really should read the release notes!
@gab.lau actually same here - another point to Android
It seems that whenever Android app is opened I get the “juggling balls” and it syncs. iOS app does not appear to sync and just updates at the next minute mark.
So, it would appear that Blynk server is receiving the updated time, but the iOS does not read the latest time, it just waits for the next value to be ‘pushed’. (I have background app refresh turned on, location access is “while using app”, I will try “Always”).
Maybe I could use Pete’s solution to send the payload to a sync node (set to syncVirtual pin xxx)? I don’t fully understand the sync nodes tbh.
The Sync node is like calling Blynk.syncVirtual(VPin) in code. It causes the corresponding BLYNK_WRITE function to fire.
In Node-Red the node is used to force the Blynk server to send its latest values to the corresponding Write Event node, so it won’t really help in this situation.
You could use the App Event node, which outputs “acon” when the app is connected. This could be used instead of the time stamp inject node, to cause the current stored time to be outputted when the app connects, instead of once every second. More elegant than my sledgehammer approach