I’m including %time% in a message that repeats, but the time in the message stays constant throughout the repeated message, as if it’s initialized once when the rule first runs, but does not update within the repeat.
Is this the intended behavior?
How can I get the time to update?
Yes, that is the intended behavior. The
time variable refers to the last trigger event time. For the current time, you want
now instead. See the Rule 5.1 documentation for more.
I solved the issue by using current time.
What’s the difference between current time and now?
Not sure what you mean, as
now is an option while "current time" is not, unless you're looking at something else.
Current time returns, well, the current time, and not the time of the trigger, at least in my rule.
Now I did assign current time to a variable, and then used that variable surrounded by % in the notification. MAYBE the difference is one can use %now% directly in a notification message.
My question is really where "current time" is coming from, since it's not a built-in variable like we were talking about with
now. It now sounds like you're using variable operations to assign current time to a variable you created yourself. In that case, yes, that would effectively be equivalent to
now at the time the assignment action is executed (though note that
now will always be the current time, and your variable might be different if there were any delays, waits, etc. between your assignment and use).
By definition, one can use the "built-in" local variables for this kind of thing without needing to create them. So, yes, if this is your only use, it will save you a step or two.