Code: Select all
[MeasureSeconds]
Measure=Time
Format=%#S
IfAboveValue=29
IfAboveAction=!SetOption MeterEclipse ColorMatrix5 """[*MeasureTintEnd*]; 0; 0; 0; 1"""
IfBelowValue=30
IfBelowAction=!SetOption MeterEclipse ColorMatrix5 """[*MeasureTintStart*]; 0; 0; 0; 1"""
One thing I see is that when you use !SetOption with a [MeasureName] as you are, it will set the value of the option to the current value of [MeasureName]. Since this is being done in an IfxxxAction statement, that only "fires" when the value changes from false to true, only one value is being passed to the ColorMatrix5 every 30 seconds. Basically Red on / Red off.
If however you use the "*" char inside the brackets when you pass the measure, it will instead pass the literal string value of "[MeasureName]" to the option, which will change the ColorMatrix5 setting from
[MeasureTintEnd]; 0; 0; 0; 1 to
[MeasureTintStart]; 0; 0; 0; 1 every 30 seconds. Since the meter is "dynamic", this will cause it to transition in the way I suspect you want.
With both #VarName# and [MeasureName], if you want to use them in a !Bang, you have two choices.
If you use !SetOption SomeMeter SomeSetting "[MeasureName]" or !SetOption SomeMeter SomeSetting "#VarName#" it will set the option to the current value of either the measure or variable.
If you use !SetOption SomeMeter SomeSetting "[*MeasureName*]" or !SetOption SomeMeter SomeSetting "#*VarName*#" it will set the option to the literal strings "[MeasureName]" or "#VarName#". The "*" char is used as an "escape" to tell Rainmeter you don't want the item "resolved", but just used as is.
Sorry you are having to go on a "Bring me a rock. No, that's not the right rock, bring me another rock" hunt for these solutions. This business of "magic quotes" and "escaping values" in the context of !Bangs is not well documented. I will see about improving that today.