Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

All scripts must reside in the scripts folder in the HomeSeer application directory.  Scripts commonly have the extension ".txt" or ".vbs" or ".vb" (for vb.net scripts) or .cs for C# scripts, and are simple text files. You can edit your scripts in this directory. Here are the steps to create a simple script that turns a light off if it's on:

...

  • In the Events View, expand a group, then click the + button to create a new event, the event opens.

  • A box will display to name the event, give the event a name like "light on test".

  • Under the "IF" drop list, select "manually triggered" so the event is only triggered when we run it manually.

  • Click the drop list next to the "THEN" to select an action and select "Run a script or script command".

  • Click the red airplane icon to go into advanced mode so we can input a script. Click the Edit button to select a script. In the window that pops up, add "light_test.txt" to end of the path, then click "Submit" to close the dialog.

  • Now expand the actions again to view the script edit box. Paste in the code below and click "Save Script Edits" to save the script.

  • The script already has the main subroutine defined for you. Modify the script so it looks like this:

    Code Block
    languagevb
    Sub Main()
        Dim DevRef
        DevRef = hs.GetDeviceRefByName("Living Room Light")
        if hs.ison(DevRef) then
            hs.Speak "The living room light is currently on."
        end if
    End Sub


  • To run the script, click the blue run button, check the event log for errors.

  • VB.NET scripts use a slightly different format. The script is always passed a "parms" object which will be an array of objects that are the parameters. The object will be nothing if no parameters are supplied. The above script would be formatted as follows, and the name of the script needs to have a .vb extension.

    Code Block
    languagevb
    Sub Main(parms As Object)
        Dim DevRef As Integer
        DevRef = hs.GetDeviceRefByName("Living Room Light")
        If hs.IsOn(DevRef) then
            hs.Speak("The living room light is currently on.")
        End If
    End Sub


  • You can test script statements using the Control screen. Select the Control Panel link from the Tools menu. In the "Immediate Script Command" box, enter your script command. For example, to speak a phrase enter:

    Code Block
    languagevb
    hs.speak "hello"


  • The system should speak. If you want to get the value of a HomeSeer device (for example, the current light value from a HSM100 sensor), first get the name of the device. If your light device was named "Family Room Light", then enter this command in the Script Command box:

    Code Block
    languagevb
    hs.writelog "msg",hs.devicevaluebyname("Family Room Light")


  • Check your event log, you should see an entry like:

    9/19/2009 12:45:18

    PM  

    PM  - msg - 98

...

languagevb

...