No announcement yet.

Simple Scripting Help

  • Filter
  • Time
  • Show
Clear All
new posts

  • Simple Scripting Help

    Hi All,

    Can I get someone to help me figure out why my temperature variables are not showing as 1 decimal place.

    Not a scripter - just a copy, change, hunt and peck person trying to scrape by.

    I wanted to create a temperature rate change per hour. I use UltraWeatherWU3 but WU does not provide a rate per hour variable. S1 refers to the Station 1 temperature (which does show to 1 decimal). I created two variables by copying that device. They immediately show 1 decimal just like the original. But then when I run the script these variables come back as integer values.

    Sub Main(ByVal Parms As Object)
    ' Set the value of S1 Rate to 4x the change between the just changed S1 Temp and the stored prior S1 Temp
    ' Delta is the Difference between S1 (431) and prior S1 (635)
    ' Multiply by 4 since I am using 15 minute refresh in UltraWeatherWU
    ' After Rate is calculated then store the new S1 into Prior S1
    Dim Delta
    Dim Rate
    Delta = hs.Devicevalue(431) - hs.Devicevalue(635)
    Rate = 4 * Delta
    hs.SetDeviceValueByRef(636, Rate, True)
    hs.SetDeviceValueByRef(635, hs.devicevalue(431), True)
    hs.WriteLog("WHF", "S1 Rate" & hs.devicevalue(636))
    hs.WriteLog("WHF", "New S1 Prior " & hs.devicevalue(635))
    end sub

    Thanks in advance for any help. No laughing


  • #2

    Note: This return is an INTEGER value and values are DOUBLE INTEGER, which means that decimal values are truncated. See DeviceValueEx for Double Integer returns.

    Try changing all 'Devicevalue' to 'DevicevalueEx'.


    • #3
      Thank you!

      That does it. I guess I need to spend more time in the "hunting" part in the help file.