You might try this to see if it is more reliable over the long-haul:
Code: Select all
[Rainmeter]
AccurateText=1
OnRefreshAction=[!CommandMeasure MeasureActionTimer1 "Execute 1"]
[Variables]
ContainerWidth=136
TextWidth=0
Counter=0
CurrentStep=1
SlidingUpdate=24
Text="Wed, 00 May 2020 ● ‒000 °C ● Showers Early / Clearing Late"
---Measures---
[ContainerWidthCalc]
Measure=Calc
Formula=#ContainerWidth#+#TextWidth#
[MeasureActionTimer1]
Measure=Plugin
Group=AT
Plugin=ActionTimer
ActionList1=Repeat Move1,#SlidingUpdate#,[ContainerWidthCalc] | Wait #SlidingUpdate# | DoOver1
Move1=[!SetVariable Counter "((#Counter#<0)?(#ContainerWidth#+#TextWidth#):((#Counter#>(#ContainerWidth#+#TextWidth#))?(0):(#Counter#+#CurrentStep#)))"][!UpdateMeasureGroup "AT"][!SetOption MeterText X "(#ContainerWidth#-#Counter#)"][!UpdateMeter *][!Redraw]
DoOver1=[!CommandMeasure MeasureActionTimer2 "Execute 1"]
DynamicVariables=1
[MeasureActionTimer2]
Measure=Plugin
Group=AT
Plugin=ActionTimer
ActionList1=Repeat Move1,#SlidingUpdate#,[ContainerWidthCalc] | Wait #SlidingUpdate# | DoOver1
Move1=[!SetVariable Counter "((#Counter#<0)?(#ContainerWidth#+#TextWidth#):((#Counter#>(#ContainerWidth#+#TextWidth#))?(0):(#Counter#+#CurrentStep#)))"][!UpdateMeasureGroup "AT"][!SetOption MeterText X "(#ContainerWidth#-#Counter#)"][!UpdateMeter *][!Redraw]
DoOver1=[!CommandMeasure MeasureActionTimer1 "Execute 1"]
DynamicVariables=1
---Meters---
[MeterBackground]
Meter=Shape
Shape=Rectangle 0,0,168,13 | StrokeWidth 0.5 | Stroke Color 255,64,32 | Fill Color 32,32,32,128
UpdateDivider=-1
[MeterTitle]
Meter=String
ClipString=2
FontFace=Tahoma
FontSize=7
AntiAlias=1
FontWeight=700
FontColor=255,255,255,255
StringEffect=Shadow
FontEffectColor=0,0,0,255
X=2
Y=0
Text=WEA
UpdateDivider=-1
[MeterContainer]
Meter=Shape
X=31
Y=0
Shape=Rectangle 0,0,136,13 | Fill Color 0,0,0,255 | StrokeWidth 0
UpdateDivider=-1
[MeterText]
Meter=String
Container=MeterContainer
FontFace=Tahoma
FontSize=7
FontWeight=400
FontColor=160,255,160,255
FontEffectColor=0,0,0,255
StringEffect=Shadow
Antialias=1
ClipString=0
InlineSetting=Color | 128,255,255,255
InlinePattern="^([^●]*) ●"
InlineSetting2=Color | 255,255,255,255
InlinePattern2="( ● )"
InlineSetting3=Color | 255,224,128,255
InlinePattern3="● ([^●]*)$"
X=(#ContainerWidth#/2)
Y=0
Text=#Text#
UpdateDivider=-1
OnUpdateAction=[!SetVariable TextWidth [MeterText:W]]
DynamicVariables=1
Since the two ActionTimer measures are "sharing" and updating the same #Variable#, but they are both always kept updated, I don't think any "Stop" is needed with this. Doesn't really matter which measure is updating the #Variable# in a sense.