eclectic-tech wrote: ↑July 23rd, 2019, 2:20 am
Here is a modified "Modernized.ini" You can copy and paste this code, save it as a variant in your ClockTown folder, refresh Rainmeter and load it to see the differences
eclectic-tech, unfortunately I believe that's not so simple.
The most important inadvertence in your code is in the Formula options of the [MeasureToSunrise] and [MeasureToSunset] measures. For instance in case of [MeasureToSunrise], extracting the current time (returned
in minutes by the [MeasureCurrent] measure) from the Sunrise hour (returned by [MeasureAstronomySunriseHour]) doesn't look alright. Instead I'd use a little bit more complicated formula to calculate the differences:
Code: Select all
[MeasureToSunrise]
...
Formula=(( 60 * ( (( MeasureAstronomySunriseHour = 12 ) ? 0 : MeasureAstronomySunriseHour ) + 12 * [MeasureAstronomySunriseAMPM] ) + MeasureAstronomySunriseMin ) - MeasureCurrent )
...
DynamicVariables=1
Group=SunriseSunset
Disabled=1
[MeasureToSunset]
...
Formula=(( 60 * ( (( MeasureAstronomySunsetHour = 12 ) ? 0 : MeasureAstronomySunsetHour ) + 12 * [MeasureAstronomySunsetAMPM] ) + MeasureAstronomySunsetMin ) - MeasureCurrent )
...
DynamicVariables=1
Group=SunriseSunset
Disabled=1
When modifying the formulas as described here, I had to disable the measures, to avoid the error messages in the log, then enable them when the WebParser measures get their values. Setting the dynamic variables were also needed to be done. That's why I added the
DynamicVariables=1, the
Group=SunriseSunset and finally the
Disabled=1 options to both measures (with the Group option I included those measures into a group, to can easier enable them when needed). Finally I added a
FinishAction=[!EnableMeasureGroup "SunriseSunset"][!UpdateMeasureGroup "SunriseSunset"] option to the parent WebParser measure ([MeasureParent]). With these updates now you get the appropriate differences, which can be used. But because the [MeasureDayNight] measure uses as well the #SunsetTime# and #SunriseTime# variables in its IfConditions, I had to define an initial value for these variables, adding a [Variables] section:
Code: Select all
[Variables]
SunsetTime=0
SunriseTime=0
Further issues:
- You forgot to remove the equal signs from the IfTrueAction options of the [MeasureDayNight] measure, removing them just from the IfFalsActions (as described by yourself).
- The substitutions are not made correctly in the [MeasureAstronomySunriseAMPM] and [MeasureAstronomySunsetAMPM] measures, because the substitution is case sensitive. So replace the original Substitute="am":"0","pm":"1" option with Substitute="AM":"0","PM":"1".
- I don't see a reason to use a such small Update value (within the [Rainmeter] section). I'd use the default Update=1000. With the original Update=75, the WebParser measures are updated each 135 seconds (135 s = 75 milliseconds x 1800 - the UpdateRate value of the parent WebParser measure), which is too much and there isn't even needed a such frequent update.
- There are some uncompleted IfCondition options in the [MeasureShifter] measure. Not sure what was the intention with them, I leaved them as they were.
Making all these modifications, here is my proposal of code:
Code: Select all
[Rainmeter]
Update=1000
[Variables]
SunsetTime=0
SunriseTime=0
[MeasureParent]
Measure=Plugin
Plugin=WebParser
UpdateRate=1800
URL=http://wxdata.weather.com/wxdata/weather/local/USNH0102?cc=*&unit=f&dayf=6
RegExp=(?siU)<sunr>(.*):(.*) (.*)</sunr>.*<suns>(.*):(.*) (.*)</suns>
FinishAction=[!EnableMeasureGroup "SunriseSunset"][!UpdateMeasureGroup "SunriseSunset"]
Debug=1
[MeasureAstronomySunriseHour]
Measure=Plugin
Plugin=WebParser
URL=[MeasureParent]
StringIndex=1
[MeasureAstronomySunriseMin]
Measure=Plugin
Plugin=WebParser
URL=[MeasureParent]
StringIndex=2
[MeasureAstronomySunriseAMPM]
Measure=Plugin
Plugin=WebParser
URL=[MeasureParent]
StringIndex=3
Substitute="AM":"0","PM":"1"
[MeasureAstronomySunsetHour]
Measure=Plugin
Plugin=WebParser
URL=[MeasureParent]
StringIndex=4
[MeasureAstronomySunsetMin]
Measure=Plugin
Plugin=WebParser
URL=[MeasureParent]
StringIndex=5
[MeasureAstronomySunsetAMPM]
Measure=Plugin
Plugin=WebParser
URL=[MeasureParent]
StringIndex=6
Substitute="AM":"0","PM":"1"
[MeasureTimeAdjustSunset]
Measure=Calc
Formula=( MeasureAstronomySunsetHour + (12 * MeasureAstronomySunsetAMPM ) + MeasureAstronomySunsetMin )
[MeasureTimeAdjustSunset]
Measure=Calc
Formula=( MeasureAstronomySunriseHour + (12 * MeasureAstronomySunriseAMPM ) + MeasureAstronomySunriseMin )
[MeasureCurrentHour]
Measure=Calc
Formula=MeasureTime/3600%12
[MeasureCurrentMin]
Measure=Calc
Formula=MeasureCurrentHour/60%12
[MeasureCurrent]
Measure=Calc
Formula=( 60 * MeasureCurrentHour + MeasureCurrentMin )
[MeasureToSunrise]
Measure=Calc
Formula=(( 60 * ((( MeasureAstronomySunriseHour = 12 ) ? 0 : MeasureAstronomySunriseHour ) + 12 * [MeasureAstronomySunriseAMPM] ) + MeasureAstronomySunriseMin ) - MeasureCurrent )
IfCondition=(#CURRENTSECTION#<=5*60) && (#CURRENTSECTION#>4*60)
IfTrueAction=[!SetVariable SunriseTime 5]
IfFalseAction=[!SetVariable SunriseTime 12]
IfCondition2=(#CURRENTSECTION#<=4*60) && (#CURRENTSECTION#>3*60)
IfTrueAction2=[!SetVariable SunriseTime 4]
IfFalseAction2=[!SetVariable SunriseTime 12]
IfCondition3=(#CURRENTSECTION#<=3*60) && (#CURRENTSECTION#>2*60)
IfTrueAction3=[!SetVariable SunriseTime 3]
IfFalseAction3=[!SetVariable SunriseTime 12]
IfCondition4=(#CURRENTSECTION#<=2*60) && (#CURRENTSECTION#>1*60)
IfTrueAction4=[!SetVariable SunriseTime 2]
IfFalseAction4=[!SetVariable SunriseTime 12]
IfCondition5=(#CURRENTSECTION#<=1*60) && (#CURRENTSECTION#>0*60)
IfTrueAction5=[!SetVariable SunriseTime 1]
IfFalseAction5=[!SetVariable SunriseTime 12]
DynamicVariables=1
Group=SunriseSunset
Disabled=1
[MeasureToSunset]
Measure=Calc
Formula=(( 60 * ((( MeasureAstronomySunsetHour = 12 ) ? 0 : MeasureAstronomySunsetHour ) + 12 * [MeasureAstronomySunsetAMPM] ) + MeasureAstronomySunsetMin ) - MeasureCurrent )
IfCondition=(#CURRENTSECTION#<=5*60) && (#CURRENTSECTION#>4*60)
IfTrueAction=[!SetVariable SunsetTime 5]
IfFalseAction=[!SetVariable SunsetTime 24]
IfCondition2=(#CURRENTSECTION#<=4*60) && (#CURRENTSECTION#>3*60)
IfTrueAction2=[!SetVariable SunsetTime 4]
IfFalseAction2=[!SetVariable SunsetTime 24]
IfCondition3=(#CURRENTSECTION#<=3*60) && (#CURRENTSECTION#>2*60)
IfTrueAction3=[!SetVariable SunsetTime 3]
IfFalseAction3=[!SetVariable SunsetTime 24]
IfCondition4=(#CURRENTSECTION#<=2*60) && (#CURRENTSECTION#>1*60)
IfTrueAction4=[!SetVariable SunsetTime 2]
IfFalseAction4=[!SetVariable SunsetTime 24]
IfCondition5=(#CURRENTSECTION#<=1*60) && (#CURRENTSECTION#>0*60)
IfTrueAction5=[!SetVariable SunsetTime 1]
IfFalseAction5=[!SetVariable SunsetTime 24]
DynamicVariables=1
Group=SunriseSunset
Disabled=1
[Refresher]
Measure=Time
Format=%S
IfEqualValue=0
IfEqualAction=!Redraw
[MeasureTime]
Measure=Time
AverageSize=20
[MeasureSeconds]
Measure=Calc
Formula=MeasureTime%60
[MeasureSecondsSpringing]
Measure=Calc
Formula=Trunc(MeasureSeconds) + Frac(MeasureSeconds) ** 5
MinValue=0
MaxValue=60
[MeasureDayNight]
Measure=Calc
Formula=Abs(Trunc(MeasureTime/3600%24) - 11.5) <= 6? 12: 24
IfCondition=(#SunsetTime# = 5) || (#SunriseTime# = 1)
IfTrueAction=[!SetOption MeasureDayNight Formula "5"]
IfFalseAction=[!SetOption MeasureDayNight Formula "Abs(Trunc(MeasureTime/3600%24) - 11.5) <= 6? 12: 24"]
IfCondition2=(#SunsetTime# = 4) || (#SunriseTime# = 2)
IfTrueAction2=[!SetOption MeasureDayNight Formula "4"]
IfFalseAction2=[!SetOption MeasureDayNight Formula "Abs(Trunc(MeasureTime/3600%24) - 11.5) <= 6? 12: 24"]
IfCondition3=(#SunsetTime# = 3) || (#SunriseTime# = 3)
IfTrueAction3=[!SetOption MeasureDayNight Formula "3"]
IfFalseAction3=[!SetOption MeasureDayNight Formula "Abs(Trunc(MeasureTime/3600%24) - 11.5) <= 6? 12: 24"]
IfCondition4=(#SunsetTime# = 2) || (#SunriseTime# = 4)
IfTrueAction4=[!SetOption MeasureDayNight Formula "2"]
IfFalseAction4=[!SetOption MeasureDayNight Formula "Abs(Trunc(MeasureTime/3600%24) - 11.5) <= 6? 12: 24"]
IfCondition5=(#SunsetTime# = 1) || (#SunriseTime# = 5)
IfTrueAction5=[!SetOption MeasureDayNight Formula "1"]
IfFalseAction5=[!SetOption MeasureDayNight Formula "Abs(Trunc(MeasureTime/3600%24) - 11.5) <= 6? 12: 24"]
DynamicVariables=1
[MeasureHourFileName]
Measure=String
String=hours[MeasureDayNight].png
DynamicVariables=1
[MeasureShifter]
Measure=Time
Format=%H.%M
IfCondition=MeasureTime = 00.00
IfTrueAction=
IfCondition2=MeasureTime =
IfTrueAction2=
[MeterHours]
MeasureName=MeasureTime
Meter=Rotator
ImageName=[MeasureHourFileName]
ValueRemainder=43200
X=130
Y=130
StartAngle=0
RotationAngle=6.2832
OffsetX=96
OffsetY=96
DynamicVariables=1
[MeterMinutes]
MeasureName=MeasureTime
Meter=Rotator
ImageName=minutes.png
ValueRemainder=3600
StartAngle=0
RotationAngle=6.2832
OffsetX=125
OffsetY=125
W=260
H=260
;Padding=25,25,25,25
[MeterSeconds]
MeasureName=MeasureSecondsSpringing
Meter=Rotator
ImageName=seconds.png
X=130
Y=130
StartAngle=0
RotationAngle=6.2832
OffsetX=10
OffsetY=130
[Time]
Meter=String
MeasureName=MeasureTime
FontFace=Century Gothic
FontSize=10
FontColor=20,100,255,255
StringAlign=Center
X=130
Y=260
AntiAlias=1