Announcement

Collapse
No announcement yet.

Anyone using the script Bandwith

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Anyone using the script Bandwith

    I am running this script and it updates the status to this:

    0 KB/Sec - Average: 0 KB/Sec (0/0)[0/0]

    then I get this in the log file:

    5/2/2006 8:15:52 PM Info Event Trigger "Bandwith Monitor"
    5/2/2006 8:15:52 PM Info Running script in background: Bandwidth.vbs
    5/2/2006 8:16:52 PM Info Running script in background: Bandwidth.vbs
    5/2/2006 8:17:03 PM Bandwidth.vbs 0 bytes downloaded in 11.17188 seconds (0 KB/sec)
    5/2/2006 8:18:12 PM Bandwidth.vbs 0 bytes downloaded in 136.9375 seconds (0 KB/sec)
    5/2/2006 8:18:12 PM Bandwidth.vbs 0 bytes downloaded in 140.7969 seconds (0 KB/sec)



    Here is the script it is running with the file extension .VBS

    PHP Code:
     ' filename : custom_bandwidth.txt
    version 0.9
    ' description : measures maximum bandwidth available
    author Dan (xplosiv)
    ' email : dannydude at cyberdude dot com
    instructions 1copy this script to the homeseer\scripts directory
    ' : 2) create a new virtual device (description and house/unit code don't matter)
    ' : 3) assign that house & unit code to the virtualdevice variable in this script
    4create a new eventrecurring every 3 minutes (or whatever time interval you like)
    ' : 5) select custom_cnn.txt to run in the "Scripts/Speech" tab
    6) if you wish to enable debuggingadd custom_bandwidth.txt("main","debug"instead of just custom_cnn.txt
    '
    '
    ' things to do:
    * [0% ] add average (storing values in txt file)
    ' * [95% ] add INI support
    '
    '
    Changelog
    '
    version 0.9 beta (10262002): created script
    ' 08.29.03 TBK Changed timestart and timeend to use Timer Function
    '     
    instead of Now(). Timer gives us a decimal value wseven
    '     places of accuracy (from midnight) so we can calc a more
    '     
    accurate bandwidth speed.
    '     Added code to disable internet events while test is
    '     
    running.
    '     Added section to store transfer rates to ini key so
    '     
    an average can be determinedAdded code to calculate
    '     average.
    09.05.03 TBK Added code to record high and low transfer rateAlso changed
    '     to read 'KB/sec' throughout the script to conserve space.
    12.12.03 JWT Added code to keep track of Windowed High Low and absoluet High and low
    Public scriptmode,filesize,fso,ftpserver,ftpuser,ftppass,ftpfile,localfile,s,ftppath,tmp,tmp2,timestart,timeend,btime,bspeed,virtualdevice,mode,treshhold,treshholdmargin,templatelow,templatefast,templatenormal
    Public High,Low
    Public AbsoluteHigh,AbsoluteLow
    Sub Main
    ()
    Dim AvgString
    Dim Average
    Dim Total
    Dim KBytes
    Dim First
    Dim Limit
    Dim i
    Dim hs
    Dim bFinished
    Dim 
    Array
    On Error Resume Next
    Set hs 
    CreateObject("HomeSeer.Application")
    ' scriptmode = "debug"
    INIprocessor
    '
    If mode "ftp" Then
    localfile 
    "bandwidth.test"
    dbg "file will be saved as " localfile
    hs
    .TriggerEvent "Disable Internet Events"
    timestart Timer
    hs.ftp(ftpserver,ftpuser,ftppass,"get",ftppath,localfile,ftpfile)
    timeend Timer
    If <> "" Then
    dbg 
    "[ftp:error] " s
    End 
    If
    Set fso Createobject("scripting.filesystemobject")
    If 
    FSO.FileExists(localfileThen
    filesize 
    fso.GetFile(localfile).Size 
    Call fso
    .DeleteFile(localfile,True)
    btime timeend timestart
    If btime 0 then btime .1
    bspeed 
    Round(filesize 1024 btime)
    If 
    bspeed <= (treshhold treshholdmarginThen
        tmp 
    replace(templatelow,"%%data%%",bspeed " KB/Sec")
    End If
    If 
    bspeed > (treshhold treshholdmargin) And bspeed < (treshhold treshholdmarginThen
        tmp 
    replace(templatenormal,"%%data%%",bspeed " KB/Sec")
    End If
    if 
    bspeed >= (treshhold treshholdmarginThen
        tmp 
    replace(templatefast,"%%data%%",bspeed " KB/Sec")
    End If
    hs.writelog "Bandwidth.vbs"filesize " bytes downloaded in " btime " seconds (" bspeed " KB/sec)"
    dbg filesize " bytes downloaded in " btime " seconds (" bspeed " KB/sec)"
    hs.TriggerEvent "Enable Internet Events"
    AvgString Trim(hs.GetINISetting("settings""Average""""bandwidthmonitor.ini"))
    AbsoluteHigh Trim(hs.GetINISetting("settings""AbsoluteHigh""""bandwidthmonitor.ini"))
    AbsoluteLow Trim(hs.GetINISetting("settings""AbsoluteLow""""bandwidthmonitor.ini"))
    High 0
    Low 
    100000000
    Limit 
    Trim(hs.GetINISetting("settings" "Limit""20""bandwidthmonitor.ini"))
    ' Calculate Average
    If AvgString <> "" Then
    '    
    MsgBox AvgString
        
    Array = Split(AvgString,",")
        
    AvgString ""
         
    0
        
    Do Until bFinished Or (CLng(i) = CLng(Limit))
         
    KBytes Trim(Array(i))
         If 
    0 Then
         First 
    KBytes
         
    Else
         If 
    KBytes <> "" Then
         Total 
    Total CLng(KBytes)
         
    AvgString AvgString KBytes ","
         
    Else
         
    bFinished True
         End 
    If
         
    End If
    '      MsgBox AvgString
    '      
    MsgBox Total
    '      MsgBox i & " " & Limit
         i = i + 1
        ' 
    See if we should update High or Low values
         
    If CLng(KBytes) > CLng(HighThen
         High 
    CLng(KBytes)
         
    End If
         If 
    CLng(KBytes) < CLng(LowThen
         Low 
    CLng(KBytes)
         
    End If
        
    Loop 
    '    MsgBox i & " " & Limit
        If CLng(i) < CLng(Limit) Then
         AvgString = First & "," & AvgString
         Total = Total + CLng(First)
        End If
        Total = Total + CLng(bspeed)
    '     
    MsgBox "Average = " Round(Total i)
    '     MsgBox "Total = " & Total
    '     
    MsgBox "i = " i
        Average 
    Round(Total i
        If 
    Average <= (treshhold treshholdmarginThen
         tmp2 
    replace(templatelow,"%%data%%",Average " KB/Sec")
        
    End If
        If 
    Average > (treshhold treshholdmargin) And Average < (treshhold treshholdmarginThen
         tmp2 
    replace(templatenormal,"%%data%%",Average " KB/sec")
        
    End If
        if 
    Average >= (treshhold treshholdmarginThen
         tmp2 
    replace(templatefast,"%%data%%",Average " KB/sec")
        
    End If
        
    Average tmp2
    ' See if we should update High or Low values
        If CLng(bspeed) > CLng(High) Then
         High = bspeed
        End If
        If CLng(bspeed) < CLng(Low) Then
         Low = bspeed
        End If
    See if we should update AbsoluteHigh or AbsoluteLow values
        
    If CLng(bspeed) > CLng(AbsoluteHighThen
         AbsoluteHigh 
    bspeed
        End 
    If
        If 
    CLng(bspeed) < CLng(AbsoluteLowThen
         AbsoluteLow 
    bspeed
        End 
    If
    Else
        
    Average tmp
        High 
    bspeed
        Low 
    bspeed
        AbsoluteHigh 
    bspeed
        AbsoluteLow 
    bspeed
    End 
    If
     
    hs.SetDeviceString virtualdevice"[img]http://board.homeseer.com/images/DooNetwork/alive.gif[/img]" " " tmp " - Average: " Average " (" Low "/" High ")[" AbsoluteLow "/" AbsoluteHigh "]"True
    hs
    .SaveINISetting "settings""Average"AvgString bspeed ",""bandwidthmonitor.ini"
    hs.SaveINISetting "settings""High"High"bandwidthmonitor.ini" 
    hs.SaveINISetting "settings""Low"Low"bandwidthmonitor.ini" 
    hs.SaveINISetting "settings""AbsoluteHigh"AbsoluteHigh"bandwidthmonitor.ini" 
    hs.SaveINISetting "settings""AbsoluteLow"AbsoluteLow"bandwidthmonitor.ini" 
     
    Else
    call hs.WriteLog("Bandwidth.vbs","FTP:" hs.FTPLastError() )
    hs.TriggerEvent "Enable Internet Events"
    End If
    End If
    End Sub
    Sub INIprocessor
    ()
    Dim items
    Dim SettingName
    Dim inifile
    Dim section
    Dim audio
    SettingName 
    "settings"
    inifile "bandwidthmonitor.ini"
    section hs.GetINISection(SettingNameinifile)
    If 
    section "" Then
    dbg 
    "New installation detected, creating " inifile
    hs
    .SaveINISetting SettingName,"virtualdevice","v8",inifile 
    hs
    .SaveINISetting SettingName,"mode","ftp",inifile 
    hs
    .SaveINISetting SettingName,"treshhold","150",inifile 
    hs
    .SaveINISetting SettingName,"treshholdmargin","25",inifile 
    hs
    .SaveINISetting SettingName,"ftpserver","ibiblio.org",inifile 
    hs
    .SaveINISetting SettingName,"ftpfile","Game2.1.0.1B.tar.gz",inifile 
    hs
    .SaveINISetting SettingName,"ftppath","/pub/Linux/games",inifile 
    hs
    .SaveINISetting SettingName,"ftpuser","anonymous",inifile 
    hs
    .SaveINISetting SettingName,"ftppass","guest@",inifile 
    hs
    .SaveINISetting SettingName,"templateLow","%%data%%",inifile 
    hs
    .SaveINISetting SettingName,"templateNormal","%%data%%",inifile 
    hs
    .SaveINISetting SettingName,"templateFast","%%data%%",inifile 
    hs
    .SaveINISetting SettingName,"Average","",inifile 
    hs
    .SaveINISetting SettingName,"High","",inifile 
    hs
    .SaveINISetting SettingName,"Low","",inifile 
    hs
    .SaveINISetting SettingName,"AbsoluteHigh","",inifile 
    hs
    .SaveINISetting SettingName,"AbsoluteLow","",inifile 
    hs
    .SaveINISetting SettingName,"Limit","20",inifile 
    dbg 
    "Installation Complete"
    Else
    virtualdevice=hs.GetINISetting(SettingName,"virtualdevice","",inifile)
    mode=hs.GetINISetting(SettingName,"mode","",inifile)
    treshhold=CLng(hs.GetINISetting(SettingName,"treshhold","1",inifile))
    treshholdmargin=CLng(hs.GetINISetting(SettingName,"treshholdmargin","1",inifile))
    ftpserver=hs.GetINISetting(SettingName,"ftpserver","",inifile)
    ftpfile=hs.GetINISetting(SettingName,"ftpfile","",inifile)
    ftppath=hs.GetINISetting(SettingName,"ftppath","",inifile)
    ftpuser=hs.GetINISetting(SettingName,"ftpuser","",inifile)
    ftppass=hs.GetINISetting(SettingName,"ftppass","",inifile)
    templateLow=hs.GetINISetting(SettingName,"templateLow","",inifile)
    templateNormal=hs.GetINISetting(SettingName,"templateNormal","",inifile)
    templateFast=hs.GetINISetting(SettingName,"templateFast","",inifile)
     
    dbg "[variable:virtualdevice] " virtualdevice
    dbg 
    "[variable:mode] " mode
    dbg 
    "[variable:treshhold] " treshhold
    dbg 
    "[variable:treshholdmargin] " treshholdmargin
    dbg 
    "[variable:ftpserver] " ftpserver
    dbg 
    "[variable:ftppath] " ftppath
    dbg 
    "[variable:ftpuser] " ftpuser
    dbg 
    "[variable:ftppass] " ftppass
    dbg 
    "[variable:templateLow] " templateLow
    dbg 
    "[variable:templateNormal] " templateNormal
    dbg 
    "[variable:templateFast] " templateFast
    End 
    If
    End Sub
    Sub dbg
    (data)
    If 
    scriptmode "debug" Then
    hs
    .writelog "BandwidthMonitor""[debug] " data
    End 
    If
    End Sub 
Working...
X