This was provided by another member. I got the ok to share this so here it is:
In HomeSeer setup a reoccurring event. Make it recur every 1 minute.
as part of that even have it run a script. Mine is called serialport.txt.
This is what's in that file.
***************************************************
sub main()
dim e
dim str
dim Folder
dim TextStream
Set Folder = CreateObject("Scripting.FileSystemObject")
hs.CloseComPort(1)
e=hs.OpenComPort(1,"1200,n,8,1",1,"callback.txt","")
exit sub
Str=hs.GetComPortData(1)
if str <> "" then
hs.writelog "logdata", Str
end if
hs.writelog "endsub",e
end sub
sub callback(str)
hs.writelog "callback=", mid(str,40,2)
end sub
******************************************************
This file will reside in your scripts folder in your Homseer directory.
That bottom few lines refers to another file.
it's called callback.txt also in the same directory.
This is where the zones and notification are set up.
here's the text of that file.it ends up greating sort of loop that acts instantly on any incoming data to the port.
make sure you're use the right comport mine is 1.
************************************************************ **********
sub main(str)
dim Folder
dim TextStream, Strpos
Set Folder = CreateObject("Scripting.FileSystemObject")
Set TextStream=Folder.OpenTextFile("c:\program files\homeseer\logs\Alarm_log.txt",8,True)
TextStream.Writeline(str)
TextStream.Close
If (formatdatetime(Now,4) < formatdatetime(DateAdd("n",-15,hs.Sunrise),4) Or formatdatetime(Now,
4) > formatdatetime(DateAdd("n",15,hs.Sunset),4)) Then
NightTime=True
Else
NightTime = False
End If
Select Case mid(str,1,4)
Case "F Xm"
hs.SendEmail "your to email address here, from email address here"," Low Battery"," " & str ,""
Case "Peri"
hs.SendEmail "your to email address here, from email address here"," House Alarm "," " & str ,""
Case "Zone"
if Mid(str,6,4)="OPEN" Then
'hs.writelog "type", mid(str,6,4)
if Mid(Str,40,2) = "01" then
hs.setdeviceString "z01", "Door Open"
hs.setdevicelastchange "z01", now()
elseif Mid(Str,40,2) = "02" then
hs.setdevicestring "z02","Door Open"
hs.setdevicelastchange "z02", now()
elseif Mid(Str,40,2) = "03" then
hs.setdevicestring "z03","Window Open"
hs.setdevicelastchange "z03", now()
elseif Mid(Str,40,2) = "04" then
hs.setdevicestring "z04","Window Open"
hs.setdevicelastchange "z04", now()
elseif Mid(Str,40,2) = "05" then
hs.setdevicestring "z05","Window Open"
hs.setdevicelastchange "z05", now()
elseif Mid(Str,40,2) = "06" then
hs.setdevicestring "z06","Window Open"
hs.setdevicelastchange "z06", now()
elseif Mid(Str,40,2) = "07" then
hs.setdevicestring "z07","Window Open"
hs.setdevicelastchange "z07", now()
elseif Mid(Str,40,2) = "08" then
hs.setdevicestring "z08","Door Open"
hs.setdevicelastchange "z08", now()
elseif Mid(Str,40,2) = "09" then
hs.setdeviceString "z09", "Door Open"
hs.setdevicelastchange "z09", now()
if NightTime = true then
hs.triggerEvent "Light event here"
end if
elseif Mid(Str,40,2) = "10" then
hs.setdevicestring "z10","Window Open"
hs.setdevicelastchange "z10", now()
elseif Mid(Str,40,2) = "11" then
hs.setdevicestring "z11","Window Open"
hs.setdevicelastchange "z11", now()
elseif Mid(Str,40,2) = "12" then
hs.setdevicestring "z12","Window Open"
hs.setdevicelastchange "z12", now()
elseif Mid(Str,40,2) = "13" then
hs.setdevicestring "z13","Button Pushed"
hs.setdevicelastchange "z13", now()
hs.TriggerEvent "GuestAtDoor"
hs.SetVolume 20,20
hs.speak "Guest at Front Gate"
hs.speak "Please Check front Gate"
hs.SetVolume 5,5
hs.ExecX10 "B1","on"
hs.ExecX10 "B1","off"
elseif Mid(Str,40,2) = "14" then
hs.setdevicestring "z14","Window Open"
hs.setdevicelastchange "z14", now()
elseif Mid(Str,40,2) = "15" then
hs.setdevicestring "z15","Window Open"
hs.setdevicelastchange "z15", now()
elseif Mid(Str,40,2) = "16" then
hs.setdevicestring "z16","Door Open"
hs.setdevicelastchange "z16", now()
elseif Mid(Str,40,2) = "17" then
hs.setdevicestring "z17","Door Open"
hs.setdevicelastchange "z17", now()
elseif Mid(Str,40,2) = "33" then
hs.setdevicestring "z33","ON"
hs.setdevicelastchange "z33", now()
elseif Mid(Str,40,2) = "34" then
hs.setdevicestring "z34","Motion Detected"
hs.setdevicelastchange "z35", now()
elseif Mid(Str,40,2) = "35" then
hs.setdevicestring "z35","Motion Detected"
hs.setdevicelastchange "z35", now()
elseif Mid(Str,40,2) = "36" then
hs.setdeviceString "z36", "Door Open"
hs.setdevicelastchange "z36", now()
elseif Mid(Str,40,2) = "38" then
hs.setdevicestring "z38","Detected"
hs.setdevicelastchange "z38", now()
elseif Mid(Str,40,2) = "39" then
hs.setdevicestring "z39","Detected"
hs.setdevicelastchange "z39", now()
elseif Mid(Str,40,2) = "40" then
hs.setdevicestring "z40","Door Open"
hs.TriggerEvent "GarageLightOn"
hs.setdevicestring "A13", "OFF"
hs.setdevicelastchange "z40", now()
elseif Mid(Str,40,2) = "41" then
hs.setdevicestring "z41","Door Open"
hs.setdevicestring "A7", "OFF"
hs.speak "Right Garage Door Open"
hs.setdevicelastchange "z41", now()
elseif Mid(Str,40,2) = "42" then
hs.setdevicestring "z42","Motion Open"
hs.setdevicelastchange "z42", now()
end if
Elseif Mid(str,6,4)= "REST" then
if Mid(Str,40,2) = "01" then
hs.setdeviceString "z01", "Door Closed"
hs.setdevicelastchange "z01", now()
elseif Mid(Str,40,2) = "02" then
hs.setdevicestring "z02","Door Closed"
hs.setdevicelastchange "z02", now()
elseif Mid(Str,40,2) = "03" then
hs.setdevicestring "z03","Window Closed"
hs.setdevicelastchange "z03", now()
elseif Mid(Str,40,2) = "04" then
hs.setdevicestring "z04","Window Closed"
hs.setdevicelastchange "z04", now()
elseif Mid(Str,40,2) = "05" then
hs.setdevicestring "z05","Window Closed"
hs.setdevicelastchange "z05", now()
elseif Mid(Str,40,2) = "06" then
hs.setdevicestring "z06","Window Closed"
hs.setdevicelastchange "z06", now()
elseif Mid(Str,40,2) = "07" then
hs.setdevicestring "z07","Window Closed"
hs.setdevicelastchange "z07", now()
elseif Mid(Str,40,2) = "08" then
hs.setdevicestring "z08","Door Closed"
hs.setdevicelastchange "z08", now()
elseif Mid(Str,40,2) = "09" then
hs.setdeviceString "z09", "Door Closed"
hs.setdevicelastchange "z09", now()
hs.TriggerEvent "BackPorchClosed"
elseif Mid(Str,40,2) = "10" then
hs.setdevicestring "z10","Window Closed"
hs.setdevicelastchange "z10", now()
elseif Mid(Str,40,2) = "11" then
hs.setdevicestring "z11","Window Closed"
hs.setdevicelastchange "z11", now()
elseif Mid(Str,40,2) = "12" then
hs.setdevicestring "z12","Window Closed"
hs.setdevicelastchange "z12", now()
elseif Mid(Str,40,2) = "13" then
hs.setdevicestring "z13","Door Closed"
hs.setdevicelastchange "z13", now()
hs.setdevicestring "A13", "OFF"
hs.TriggerEvent "GuestAtDoor"
elseif Mid(Str,40,2) = "14" then
hs.setdevicestring "z14","Window Closed"
hs.setdevicelastchange "z14", now()
elseif Mid(Str,40,2) = "15" then
hs.setdevicestring "z15","Window Closed"
hs.setdevicelastchange "z15", now()
elseif Mid(Str,40,2) = "16" then
hs.setdevicestring "z16","Door Closed"
hs.setdevicelastchange "z16", now()
elseif Mid(Str,40,2) = "17" then
hs.setdevicestring "z17","Door Closed"
hs.setdevicelastchange "z17", now()
hs.speak "Front Gate Closed"
elseif Mid(Str,40,2) = "33" then
hs.setdevicestring "z33","ON"
hs.setdevicelastchange "z33", now()
elseif Mid(Str,40,2) = "34" then
hs.setdevicestring "z34","Motion Detected"
hs.setdevicelastchange "z34", now()
elseif Mid(Str,40,2) = "35" then
hs.setdevicestring "z35","Motion Detected"
hs.setdevicelastchange "z35", now()
elseif Mid(Str,40,2) = "36" then
hs.setdeviceString "z36", "Door Closed"
hs.setdevicelastchange "z36", now()
elseif Mid(Str,40,2) = "38" then
hs.setdevicestring "z38","Detected"
hs.setdevicelastchange "z38", now()
elseif Mid(Str,40,2) = "39" then
hs.setdevicestring "z39","Detected"
hs.setdevicelastchange "z39", now()
elseif Mid(Str,40,2) = "40" then
hs.setdevicestring "z40","Door Closed"
hs.TriggerEvent "GarageLightOff"
hs.setdevicelastchange "z40", now()
elseif Mid(Str,40,2) = "41" then
hs.setdevicestring "z41","Door Closed"
hs.setdevicestring "A7", "OFF"
hs.speak "Right Garage Door Closed"
hs.setdevicelastchange "z41", now()
elseif Mid(Str,40,2) = "42" then
hs.setdevicestring "z42","Motion Detected"
hs.setdevicelastchange "z42", now()
hs.TriggerEvent "GarageLightOn"
end if
end if
Case "Syst"
if mid(str,8,5) = "ARMED" then
hs.setdevicestring "A50","ARMED"
hs.setdevicelastchange "A50", now()
hs.TriggerEvent "ArmedLightsOff"
elseif Mid(str,8,8) = "DISARMED" then
hs.setdevicestring "A50","DISARMED"
hs.setdevicelastchange "A50", now()
end if
case "Fire"
hs.SendEmail "your to email address here, from email address here"," Fire"," " & str ,""
hs.TriggerEvent "Fire event action here"
end Select
end sub
************************************************************ *****************
This is my example:
You'll need to change yours accordingly.
You'll also need to create zones in HS. Mine all start with a z as in zone.
_____________________________________________
Please post any updates that you develop so the rest of us that have the Apex panel can get the most out of it. Thanks and HAVE FUN
In HomeSeer setup a reoccurring event. Make it recur every 1 minute.
as part of that even have it run a script. Mine is called serialport.txt.
This is what's in that file.
***************************************************
sub main()
dim e
dim str
dim Folder
dim TextStream
Set Folder = CreateObject("Scripting.FileSystemObject")
hs.CloseComPort(1)
e=hs.OpenComPort(1,"1200,n,8,1",1,"callback.txt","")
exit sub
Str=hs.GetComPortData(1)
if str <> "" then
hs.writelog "logdata", Str
end if
hs.writelog "endsub",e
end sub
sub callback(str)
hs.writelog "callback=", mid(str,40,2)
end sub
******************************************************
This file will reside in your scripts folder in your Homseer directory.
That bottom few lines refers to another file.
it's called callback.txt also in the same directory.
This is where the zones and notification are set up.
here's the text of that file.it ends up greating sort of loop that acts instantly on any incoming data to the port.
make sure you're use the right comport mine is 1.
************************************************************ **********
sub main(str)
dim Folder
dim TextStream, Strpos
Set Folder = CreateObject("Scripting.FileSystemObject")
Set TextStream=Folder.OpenTextFile("c:\program files\homeseer\logs\Alarm_log.txt",8,True)
TextStream.Writeline(str)
TextStream.Close
If (formatdatetime(Now,4) < formatdatetime(DateAdd("n",-15,hs.Sunrise),4) Or formatdatetime(Now,
4) > formatdatetime(DateAdd("n",15,hs.Sunset),4)) Then
NightTime=True
Else
NightTime = False
End If
Select Case mid(str,1,4)
Case "F Xm"
hs.SendEmail "your to email address here, from email address here"," Low Battery"," " & str ,""
Case "Peri"
hs.SendEmail "your to email address here, from email address here"," House Alarm "," " & str ,""
Case "Zone"
if Mid(str,6,4)="OPEN" Then
'hs.writelog "type", mid(str,6,4)
if Mid(Str,40,2) = "01" then
hs.setdeviceString "z01", "Door Open"
hs.setdevicelastchange "z01", now()
elseif Mid(Str,40,2) = "02" then
hs.setdevicestring "z02","Door Open"
hs.setdevicelastchange "z02", now()
elseif Mid(Str,40,2) = "03" then
hs.setdevicestring "z03","Window Open"
hs.setdevicelastchange "z03", now()
elseif Mid(Str,40,2) = "04" then
hs.setdevicestring "z04","Window Open"
hs.setdevicelastchange "z04", now()
elseif Mid(Str,40,2) = "05" then
hs.setdevicestring "z05","Window Open"
hs.setdevicelastchange "z05", now()
elseif Mid(Str,40,2) = "06" then
hs.setdevicestring "z06","Window Open"
hs.setdevicelastchange "z06", now()
elseif Mid(Str,40,2) = "07" then
hs.setdevicestring "z07","Window Open"
hs.setdevicelastchange "z07", now()
elseif Mid(Str,40,2) = "08" then
hs.setdevicestring "z08","Door Open"
hs.setdevicelastchange "z08", now()
elseif Mid(Str,40,2) = "09" then
hs.setdeviceString "z09", "Door Open"
hs.setdevicelastchange "z09", now()
if NightTime = true then
hs.triggerEvent "Light event here"
end if
elseif Mid(Str,40,2) = "10" then
hs.setdevicestring "z10","Window Open"
hs.setdevicelastchange "z10", now()
elseif Mid(Str,40,2) = "11" then
hs.setdevicestring "z11","Window Open"
hs.setdevicelastchange "z11", now()
elseif Mid(Str,40,2) = "12" then
hs.setdevicestring "z12","Window Open"
hs.setdevicelastchange "z12", now()
elseif Mid(Str,40,2) = "13" then
hs.setdevicestring "z13","Button Pushed"
hs.setdevicelastchange "z13", now()
hs.TriggerEvent "GuestAtDoor"
hs.SetVolume 20,20
hs.speak "Guest at Front Gate"
hs.speak "Please Check front Gate"
hs.SetVolume 5,5
hs.ExecX10 "B1","on"
hs.ExecX10 "B1","off"
elseif Mid(Str,40,2) = "14" then
hs.setdevicestring "z14","Window Open"
hs.setdevicelastchange "z14", now()
elseif Mid(Str,40,2) = "15" then
hs.setdevicestring "z15","Window Open"
hs.setdevicelastchange "z15", now()
elseif Mid(Str,40,2) = "16" then
hs.setdevicestring "z16","Door Open"
hs.setdevicelastchange "z16", now()
elseif Mid(Str,40,2) = "17" then
hs.setdevicestring "z17","Door Open"
hs.setdevicelastchange "z17", now()
elseif Mid(Str,40,2) = "33" then
hs.setdevicestring "z33","ON"
hs.setdevicelastchange "z33", now()
elseif Mid(Str,40,2) = "34" then
hs.setdevicestring "z34","Motion Detected"
hs.setdevicelastchange "z35", now()
elseif Mid(Str,40,2) = "35" then
hs.setdevicestring "z35","Motion Detected"
hs.setdevicelastchange "z35", now()
elseif Mid(Str,40,2) = "36" then
hs.setdeviceString "z36", "Door Open"
hs.setdevicelastchange "z36", now()
elseif Mid(Str,40,2) = "38" then
hs.setdevicestring "z38","Detected"
hs.setdevicelastchange "z38", now()
elseif Mid(Str,40,2) = "39" then
hs.setdevicestring "z39","Detected"
hs.setdevicelastchange "z39", now()
elseif Mid(Str,40,2) = "40" then
hs.setdevicestring "z40","Door Open"
hs.TriggerEvent "GarageLightOn"
hs.setdevicestring "A13", "OFF"
hs.setdevicelastchange "z40", now()
elseif Mid(Str,40,2) = "41" then
hs.setdevicestring "z41","Door Open"
hs.setdevicestring "A7", "OFF"
hs.speak "Right Garage Door Open"
hs.setdevicelastchange "z41", now()
elseif Mid(Str,40,2) = "42" then
hs.setdevicestring "z42","Motion Open"
hs.setdevicelastchange "z42", now()
end if
Elseif Mid(str,6,4)= "REST" then
if Mid(Str,40,2) = "01" then
hs.setdeviceString "z01", "Door Closed"
hs.setdevicelastchange "z01", now()
elseif Mid(Str,40,2) = "02" then
hs.setdevicestring "z02","Door Closed"
hs.setdevicelastchange "z02", now()
elseif Mid(Str,40,2) = "03" then
hs.setdevicestring "z03","Window Closed"
hs.setdevicelastchange "z03", now()
elseif Mid(Str,40,2) = "04" then
hs.setdevicestring "z04","Window Closed"
hs.setdevicelastchange "z04", now()
elseif Mid(Str,40,2) = "05" then
hs.setdevicestring "z05","Window Closed"
hs.setdevicelastchange "z05", now()
elseif Mid(Str,40,2) = "06" then
hs.setdevicestring "z06","Window Closed"
hs.setdevicelastchange "z06", now()
elseif Mid(Str,40,2) = "07" then
hs.setdevicestring "z07","Window Closed"
hs.setdevicelastchange "z07", now()
elseif Mid(Str,40,2) = "08" then
hs.setdevicestring "z08","Door Closed"
hs.setdevicelastchange "z08", now()
elseif Mid(Str,40,2) = "09" then
hs.setdeviceString "z09", "Door Closed"
hs.setdevicelastchange "z09", now()
hs.TriggerEvent "BackPorchClosed"
elseif Mid(Str,40,2) = "10" then
hs.setdevicestring "z10","Window Closed"
hs.setdevicelastchange "z10", now()
elseif Mid(Str,40,2) = "11" then
hs.setdevicestring "z11","Window Closed"
hs.setdevicelastchange "z11", now()
elseif Mid(Str,40,2) = "12" then
hs.setdevicestring "z12","Window Closed"
hs.setdevicelastchange "z12", now()
elseif Mid(Str,40,2) = "13" then
hs.setdevicestring "z13","Door Closed"
hs.setdevicelastchange "z13", now()
hs.setdevicestring "A13", "OFF"
hs.TriggerEvent "GuestAtDoor"
elseif Mid(Str,40,2) = "14" then
hs.setdevicestring "z14","Window Closed"
hs.setdevicelastchange "z14", now()
elseif Mid(Str,40,2) = "15" then
hs.setdevicestring "z15","Window Closed"
hs.setdevicelastchange "z15", now()
elseif Mid(Str,40,2) = "16" then
hs.setdevicestring "z16","Door Closed"
hs.setdevicelastchange "z16", now()
elseif Mid(Str,40,2) = "17" then
hs.setdevicestring "z17","Door Closed"
hs.setdevicelastchange "z17", now()
hs.speak "Front Gate Closed"
elseif Mid(Str,40,2) = "33" then
hs.setdevicestring "z33","ON"
hs.setdevicelastchange "z33", now()
elseif Mid(Str,40,2) = "34" then
hs.setdevicestring "z34","Motion Detected"
hs.setdevicelastchange "z34", now()
elseif Mid(Str,40,2) = "35" then
hs.setdevicestring "z35","Motion Detected"
hs.setdevicelastchange "z35", now()
elseif Mid(Str,40,2) = "36" then
hs.setdeviceString "z36", "Door Closed"
hs.setdevicelastchange "z36", now()
elseif Mid(Str,40,2) = "38" then
hs.setdevicestring "z38","Detected"
hs.setdevicelastchange "z38", now()
elseif Mid(Str,40,2) = "39" then
hs.setdevicestring "z39","Detected"
hs.setdevicelastchange "z39", now()
elseif Mid(Str,40,2) = "40" then
hs.setdevicestring "z40","Door Closed"
hs.TriggerEvent "GarageLightOff"
hs.setdevicelastchange "z40", now()
elseif Mid(Str,40,2) = "41" then
hs.setdevicestring "z41","Door Closed"
hs.setdevicestring "A7", "OFF"
hs.speak "Right Garage Door Closed"
hs.setdevicelastchange "z41", now()
elseif Mid(Str,40,2) = "42" then
hs.setdevicestring "z42","Motion Detected"
hs.setdevicelastchange "z42", now()
hs.TriggerEvent "GarageLightOn"
end if
end if
Case "Syst"
if mid(str,8,5) = "ARMED" then
hs.setdevicestring "A50","ARMED"
hs.setdevicelastchange "A50", now()
hs.TriggerEvent "ArmedLightsOff"
elseif Mid(str,8,8) = "DISARMED" then
hs.setdevicestring "A50","DISARMED"
hs.setdevicelastchange "A50", now()
end if
case "Fire"
hs.SendEmail "your to email address here, from email address here"," Fire"," " & str ,""
hs.TriggerEvent "Fire event action here"
end Select
end sub
************************************************************ *****************
This is my example:
You'll need to change yours accordingly.
You'll also need to create zones in HS. Mine all start with a z as in zone.
_____________________________________________
Please post any updates that you develop so the rest of us that have the Apex panel can get the most out of it. Thanks and HAVE FUN