Announcement

Collapse
No announcement yet.

HS plug-ins for Simple Home Net Insteon devices such as EzSnsRF and EZIO

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    HS plug-ins for Simple Home Net Insteon devices such as EzSnsRF and EZIO

    I just bought EzSnsRF Insteon module to have homeseer trigger on my Dakota alert inductive driveway sensor.

    HS does not see the EzSnsRF at all and wont trigger on the state change of the Switchlink module I linked it to. The switchlink reponds no problem. I tried getting HS to trigger on the state change to "on" of that module but no luck.

    On the SHN forum I heard an EzSnsRF HS plugin is in the works by someone with no confirmed ETA.

    I'm suprised SHN would not want or make HS plugins available for all of thier inteon modules. I would think this would pay dividends in the resulting product sales and product returns. I'm sure like I did... most people order these modules thinking HS will support them right out of the box.

    Ok, off my soapbox now..

    I picked up some scripts and this will motivate me into learning this part of HS. If no luck in the time i can put into this then I will need to return it

    In the meatime.. what are the plans for the EzSnsRF HS plugin? I'm definately interested.

    #2
    Originally posted by ve3bwp View Post
    I just bought EzSnsRF Insteon module to have homeseer trigger on my Dakota alert inductive driveway sensor.

    HS does not see the EzSnsRF at all and wont trigger on the state change of the Switchlink module I linked it to. The switchlink reponds no problem. I tried getting HS to trigger on the state change to "on" of that module but no luck.

    On the SHN forum I heard an EzSnsRF HS plugin is in the works by someone with no confirmed ETA.

    I'm suprised SHN would not want or make HS plugins available for all of thier inteon modules. I would think this would pay dividends in the resulting product sales and product returns. I'm sure like I did... most people order these modules thinking HS will support them right out of the box.

    Ok, off my soapbox now..

    I picked up some scripts and this will motivate me into learning this part of HS. If no luck in the time i can put into this then I will need to return it

    In the meatime.. what are the plans for the EzSnsRF HS plugin? I'm definately interested.
    i think you have a better chance of someone writing an external script for the device so the current hs lighting plugin can control the EzSnsRF.

    I have never seen smarthome write/sell any plugin to work with any third party software; especially homeseer.

    can you refer us to the specific thread on SHN regarding the plugin
    Mark

    HS3 Pro 4.2.19.5
    Hardware: Insteon Serial PLM | AD2USB for Vista Alarm | HAI Omnistat2 | 1-Wire HA7E | RFXrec433 | Dahua Cameras | LiftMaster Internet Gateway | Tuya Smart Plugs
    Plugins: Insteon (mine) | Vista Alarm (mine) | Omnistat 3 | Ultra1Wire3 | RFXCOM | HS MyQ | BLRadar | BLDenon | Tuya | Jon00 Charting | Jon00 Links
    Platform: Windows Server 2022 Standard, i5-12600K/3.7GHz/10 core, 16GB RAM, 500GB SSD

    Comment


      #3
      Hi Mark
      The external script has already been developed, see:
      http://board.homeseer.com/showthread.php?t=121595

      Question is whether it could be incorporated and recognized just like other insteon devices. EzSnsRf is a really useful device for home automation as it allows triggering of any HA event when someone enters your driveway.

      Comment


        #4
        It would sure make sense to have plug-ins that support the simple home net devices. At some point or another a serious Homeseer user is going to need HS supported I/O. Scripts are better then nothing but the functionality is very limited and not that friendly for the HS newbie. Hopefully the objective is to make HS as close to turnkey as possible.

        Comment


          #5
          SimpleHome Device Support

          Attached is an updated ExtDeviceSupport script that supports the EZIO2X8 and EZRain SimpleHomeNet products. It supports multiple units of each type.

          I don't know about EZRF device support as I don't have one to use/test with.

          This has to be placed in the "Scripts" folder with the ".vb" extention and HomeSeer needs to be restarted. Edit the file and change the "RegisterDevices" sub to have you devices and Insteon device address. You will also need to take care that you utilize unused device codes. I suggest you set the Debug flag to True during the first use in case things don't work out. You'll get a ton of information in the Homeseer log.

          I use the EZIO devices for garage door control and have them built in to the openers. Most openers have internal sensors for open/closed which you can hijack. Just be careful since there is line voltage potential in there!

          Good luck.
          Attached Files

          Comment


            #6
            does this script support PLM?
            HomeSeer Version: HS3 Pro Edition
            Operating System: Microsoft Windows 10 Pro
            Processor Type and Speed: i7 - 3.26 GHz
            Total Physical Memory: 16Gig

            Plugins: BlBackup | EasyTrigger | FitbitSeer | HSTouchServer | Insteon | WeatherXML

            Comment


              #7
              Originally posted by codemonkey View Post
              does this script support PLM?
              Yes, and you will need the Msandler Insteon plugin from the updater for it to work. Its actually the Msandler Insteon plugin that supports the script's insteon calls.

              I modified a version of this script to support ezflora's
              Paul

              Comment


                #8
                thanks!
                HomeSeer Version: HS3 Pro Edition
                Operating System: Microsoft Windows 10 Pro
                Processor Type and Speed: i7 - 3.26 GHz
                Total Physical Memory: 16Gig

                Plugins: BlBackup | EasyTrigger | FitbitSeer | HSTouchServer | Insteon | WeatherXML

                Comment


                  #9
                  If anyone can help me, I would be grateful. I have a script that says it supports EzSnsRF and EZIO both of which i need.

                  The EzSnsRF works great, but for the life of me, i can not get my EZIO2x4 to work at all. Back in the past when I used HAL, I could program the device like a kepadlinc and at least the inputs would work. (the inputs are my priority right now) I cant do that with homeseer. HS does see the device but the script doesnt read them correctly.

                  Hopefully this will help:

                  8/24/2011 2:51:40 AM - Insteon_ExtDevSupp - Received Insteon Data 01 01 70 82 00 00 02 C7 11 00
                  8/24/2011 2:51:40 AM - Insteon_ExtDevSupp - Received Insteon Data 01 01 70 82 14 83 0C 41 11 02
                  8/24/2011 2:51:42 AM - Insteon_ExtDevSupp - Received Insteon Data 01 01 70 82 00 00 02 C7 13 00
                  8/24/2011 2:51:42 AM - Insteon_ExtDevSupp - Received Insteon Data 01 01 70 82 14 83 0C 41 13 02

                  EZIO2X4- 2 Relay/ 4 Input Controller - 01.70.82

                  Here is my script:

                  Code:
                  ' This file adds support for the SimpleHomeNet EZRain Irrigation controller and/or EZIO I/O controller to the stock HomeSeer Insteon plug-in.
                  '  Created 2/2/2007 by Jonathan Ort.
                  '  Version 1.02
                  '  Modified 6/11/2007 by Tom Pepper for EZSnsRF support (version 0.91)
                  '  Last update 8/31/2007 Tom Pepper
                  
                  ' Set one or more of these to TRUE to support an EZRain, EZIO, or EZSnsRF device.  It is possible to have only the RegisterDevices method in the
                  '  Insteon_ExtDevSupport.vb script and then have that method call other scripts with specific device support.  For now we will put it all
                  '  together into one script for purposes of this demonstration.
                  
                  Const EnableEZRain As Boolean = False
                  Const EnableEZIO As Boolean = True
                  Const EnableEZSnsRF As Boolean = True
                  
                  ' Just a name to use when reporting information and errors through the HomeSeer log
                  Const ScriptName = "Insteon_ExtDevSupport.vb"
                  
                  ' This is where you set the parameters for your EZRain device
                  Const EZRainDevName As String = "EZRain1"           ' A unique name for the EZRain device.  Will be used in the device name as well as the callback ID
                  Const EZRainAddress As String = "00.49.18"          ' The Insteon address of the EZRain controller
                  Const EZRainDevLocation As String = "Front Yard"    ' The location information for the EZRain HomeSeer device info
                  Const EZRainDeviceCodeStart As Integer = 1          ' The Device Code (DC) that will hold the first zone device for the EZRain
                  
                  ' This is where you set your parameters for your EZIO device
                  Const EZIOAddress As String = "01.70.82"            ' The Insteon address of the EZIO controller
                  Const EZIODevName As String = "EZIO2x4"               ' A unique name for the EZIO device.
                  Const EZIODevLocation As String = "Garage"          ' The location for the EZIO HomeSeer device info
                  Const EZIODeviceCodeStart As Integer = 10           ' The Device Code (DC) that will hold the first EZIO device
                  
                  ' This is where you set your parameters for your EZSnsRF device
                  Const EZSnsRFAddress As String = "08.9D.27"         ' The Insteon address of the EZSnsRF controller
                  Const EZSnsRFDevName As String = "EZSnsRF1"         ' A unique name for the EZSnsRF device.
                  Const EZSnsRFDevLocation As String = "Kitchen"      ' The location for the EZSnsRF HomeSeer device info
                  Const EZSnsRFDeviceCodeStart As Integer = 40        ' The Device Code (DC) that will hold the first EZSnsRF device
                  Const EZSnsRFNumSensorsToWatch As Integer = 10       ' Each EZsnsRF can monitor up to 20 separate dakota RF channels.  I only have 8 sensors so I use 8 here
                  
                  ' Both devices will share a House Code
                  Const HouseCode As String = "E"                     ' We are going to use House Code "E"
                  
                  ' Global data for the script
                  Dim PLCAddress As String                            ' We need to know the PLC Insteon address
                  Dim gProcessingEZRainStates As Boolean = False      ' We need to know if EZRain device change messages are caused by our own functions
                  Dim gProcessingEZIOStates As Boolean = False        ' We need to know if EZIO device change messages are caused by our own functions
                  Dim gProcessingEZSnsRFStates As Boolean = False     ' We need to know if EZSnsRF device change messages are caused by our own functions
                  
                  
                  ' The Insteon plug-in calls this method to let us know that it is ready to accept external device registrations
                  Sub RegisterDevices(ByVal parm As Object)
                  
                      Dim Lp As Integer
                  
                      Try
                  
                          ' We will need the PLC address to help us decode incoming messages
                          PLCAddress = hs.plugin("Insteon").ExtDev_GetPLCAddress("")
                          ' Setup some initial states
                          gProcessingEZRainStates = False
                          gProcessingEZIOStates = False
                          gProcessingEZSnsRFStates = False
                  
                          ' This block of code enables the EZRain support
                          If EnableEZRain = True Then
                  
                              ' Register the device.  All zones in the EZRain are controlled via one Insteon device
                              hs.plugin("Insteon").ExtDev_RegisterExternalDeviceSupport(EZRainDevName, EZRainAddress, "Insteon_ExtDevSupport.vb", "EZRainRcv")
                  
                              ' Call a function to make sure we have our HomeSeer devices ready to go
                              CreateEZRainDevices()
                  
                              ' Send out an Insteon command that will cause the EZRain to transmit a status changed message so we can get the current valve and program states
                              hs.plugin("Insteon").ExtDev_TransmitToExternalDevice(EZRainDevName, &H0, &H44, &H2) ' Flags = No extra hops and direct command, Cmd1 = Control, Cmd2 = Transmit status
                  
                          End If
                  
                          ' This block of code enables the EZIO support 
                          If EnableEZIO = True Then
                  
                              ' Register the device.  
                              hs.plugin("Insteon").ExtDev_RegisterExternalDeviceSupport(EZIODevName, EZIOAddress, "Insteon_ExtDevSupport.vb", "EZIORcv")
                  
                              ' Call a function to make sure we have our HomeSeer devices ready to go
                              CreateEZIODevices()
                  
                              ' Send out an Insteon command that will cause the EZIO to transmit a sensor value message
                              For Lp = 0 To 3
                                  hs.plugin("Insteon").ExtDev_TransmitToExternalDevice(EZIODevName, &H0, &H4A, Lp) ' Flags = No extra hops and direct command, Cmd1 = Get Sensor Value, Cmd2 = Sensor x
                              Next Lp
                  
                          End If
                  
                          ' This block of code enables the EZSnsRF support 
                          If EnableEZSnsRF = True Then
                  
                              ' Register the device.  
                              hs.plugin("Insteon").ExtDev_RegisterExternalDeviceSupport(EZSnsRFDevName, EZSnsRFAddress, "Insteon_ExtDevSupport.vb", "EZSnsRFRcv")
                  
                              ' Call a function to make sure we have our HomeSeer devices ready to go
                              CreateEZSnsRFDevices()
                  
                          End If
                  
                  
                          ' Have HomeSeer call us whenever a device changes state so we can track our own device states
                          hs.RegisterStatusChangeCB("Insteon_ExtDevSupport.vb", "StatusChangeCallBack")
                  
                      Catch ex As Exception
                          hs.WriteLog(ScriptName, "Error in Insteon_ExtDevSupport:RegisterDevices " & ex.ToString)
                      End Try
                  End Sub
                  
                  ' The Insteon plug-in will call this method any time it receives any traffic from the registered device address
                  Sub EZRainRcv(ByVal InsteonData As String)
                  
                      Dim Data() As String
                  
                      Try
                          hs.WriteLog(ScriptName, "Received Insteon Data " & InsteonData)
                          Data = Split(InsteonData, " ")
                  
                          If Data(0) = "ACK" Then ' This was an ACK response to a prior command.  There is extra data here.  The standard ACK will also be sent
                  
                          Else ' This is a standard Inston message
                  
                              Select Case Val(Data(7)) And 224
                                  Case 128    ' Broadcast transmissions from our device
                                      If Val(Data(8)) = &H27 Then    ' Valve status report
                                          ProcessValveStatus(Val(Data(9)))
                                      End If
                                  Case 0      ' Direct commands from our device to any other device
                                  Case 32     ' Ack replies from our device to any other device
                                  Case 160    ' Nak replies from our device to any other device
                                  Case 192    ' Group control broadcast commands from our device
                                  Case 64     ' Group control clean-up commands from our device
                                  Case 96     ' Ack replies from our device to group clean-up commands from any device
                                  Case 224    ' Nak replies from our device to group clean-up commands from any device
                  
                              End Select
                          End If
                  
                      Catch ex As Exception
                          hs.WriteLog(ScriptName, "Error in EzRainRcv " & ex.ToString)
                      End Try
                  End Sub
                  
                  ' The Insteon plug-in will call this method any time it receives any traffic from the registered device address
                  Sub EZSnsRFRcv(ByVal InsteonData As String)
                  
                      Dim Data() As String
                      Dim GroupNum As Integer
                      
                      Try
                          'hs.WriteLog(ScriptName, "Received Insteon Data " & InsteonData)
                          Data = Split(InsteonData, " ") ' Chunk the data into byte pairs
                  
                          ' Debug dumps of packets during beta
                          hs.WriteLog(ScriptName, "SNSRFDebug: 0:" & Data(0) & ", 1:" & Data(1) & ", 2:" & Data(2) & ", 3:" & Data(3) & ", 4:" & Data(4) & ", 5:" & Data(5) & ", 6:" & Data(6) & ", 7:" & Data(7) & ", 8:" & Data(8) & ", 9:" & Data(9))
                  
                          ' Figure out what to do with the packet
                          ' TODO: After we get documentation from SimpleHomeNet, validate that the ack structure is the same as the EZIO
                          If Data(0) = "ACK" Then ' This was an ACK response to a prior command.  There is extra data here.  The standard ACK will also be sent
                              Select Case Int("&H" & Data(1))
                                  Case &H4A ' Ack was to a Sensor Report command
                                      EZSnsRFSensorReport(Val(Data(2)), Val(Data(12)))
                              End Select
                          Else ' This is a standard Insteon message
                  
                              Select Case Int("&H" & Data(7)) And 224 ' Act on appropriate messages only...
                                  Case 128    ' Broadcast transmissions from our device
                                      ' I have never seen the sns send this cmd.  If you do, please find me (bobwondernut) on the forums.
                     If Val(Data(8)) = &H27 Then    ' Output change status report
                     ProcessEZIOStatus(Val(Data(9)))
                     End If
                                      hs.WriteLog(Scriptname, "Type: Broadcast transmission")
                                  Case 0      ' Direct commands from our device to any other device
                                      hs.WriteLog(Scriptname, "Type: Direct Command")
                                  Case 32     ' Ack replies from our device to any other device
                                      hs.WriteLog(Scriptname, "Type: Ack to direct device")
                                  Case 160    ' Nak replies from our device to any other device
                                      hs.WriteLog(Scriptname, "Type: Nak to direct device")
                                  Case 192    ' Group control broadcast commands from our device
                                      ' If the EZsnsRF transmits a group broadcast command then it is telling us that a sensor changed states
                                      hs.WriteLog(Scriptname, "Type: Sensor status change (Group:" & Val(Data(6)) & " Cmd:" & Val(Data(8)) & ")")
                                      ProcessEZSnsRFGroupCmd(Val(Data(6)), Val(Data(8)))
                                  Case 64     ' Group control clean-up commands from our device
                                      hs.WriteLog(Scriptname, "Type: Control clean-up")
                                  Case 96     ' Ack replies from our device to group clean-up commands from any device
                                      hs.WriteLog(Scriptname, "Type: Group clean-up ack")
                                  Case 224    ' Nak replies from our device to group clean-up commands from any device
                                      hs.WriteLog(Scriptname, "Type: Group clean-up nak")
                  
                              End Select
                  
                               
                          End If
                  
                      Catch ex As Exception
                          hs.WriteLog(ScriptName, "Error in EzSnsRfRcv " & ex.ToString)
                      End Try
                  End Sub
                  
                  
                  ' The Insteon plug-in will call this method any time it receives any traffic from the registered device address
                  Sub EZIORcv(ByVal InsteonData As String)
                  
                      Dim Data() As String
                  
                      Try
                          hs.WriteLog(ScriptName, "Received Insteon Data " & InsteonData)
                          Data = Split(InsteonData, " ")
                          If Data(0) = "ACK" Then ' This was an ACK response to a prior command.  There is extra data here.  The standard ACK will also be sent
                              Select Case Val(Data(1))
                                  Case &H4A ' Ack was to a Sensor Report command
                                      EZIOSensorReport(Val(Data(2)), Val(Data(12)))
                              End Select
                          Else ' This is a standard Insteon message
                  
                              Select Case Val(Data(7)) And 224
                                  Case 128    ' Broadcast transmissions from our device
                                      If Val(Data(8)) = &H27 Then    ' Output change status report
                                          ProcessEZIOStatus(Val(Data(9)))
                                      End If
                                  Case 0      ' Direct commands from our device to any other device
                                  Case 32     ' Ack replies from our device to any other device
                                  Case 160    ' Nak replies from our device to any other device
                                  Case 192    ' Group control broadcast commands from our device
                                      ' If the EZIO transmits a group broadcast command then it is telling us that an input changed states
                                      ProcessEZIOGroupCmd(Val(Data(5)), Val(Data(7)))
                                  Case 64     ' Group control clean-up commands from our device
                                  Case 96     ' Ack replies from our device to group clean-up commands from any device
                                  Case 224    ' Nak replies from our device to group clean-up commands from any device
                  
                              End Select
                          End If
                  
                      Catch ex As Exception
                          hs.WriteLog(ScriptName, "Error in EzIORcv " & ex.ToString)
                      End Try
                  End Sub
                  
                  
                  ' HomeSeer will call us any time a device changes state.  We use this to track when the user wants to control a zone
                  Sub StatusChangeCallBack(ByVal parms)
                  
                      Dim hc As String
                      Dim dc As Integer
                      Dim status As Integer
                  
                      Try
                          ' If the status changes are because of our own script processing then we can ignore it
                          If gProcessingEZRainStates = True Then Return
                          If gProcessingEZSnsRFStates = True Then Return
                  
                          ' Get the info on the device that changed
                          hc = parms(0)
                          dc = parms(1)
                          status = parms(2)
                  
                          ' Eliminate all devices that are not ours
                          If hc <> HouseCode Then Return
                  
                          ' Handle any changes to the EZRain zones
                          If dc >= EZRainDeviceCodeStart And dc <= EZRainDeviceCodeStart + 7 Then
                  
                              ' Send the command to control the zone
                              If status = 2 Then ' Turn On 
                                  ControlEZRainZone(dc - EZRainDeviceCodeStart, True)
                              ElseIf status = 3 Then ' Turn Off
                                  ControlEZRainZone(dc - EZRainDeviceCodeStart, False)
                              End If
                  
                          ' Handle any changes to the EZSnsRF sensors
                          ElseIf dc >= EZSnsRFDeviceCodeStart And dc <= EZSnsRFDeviceCodeStart + 7 Then
                  
                              ' Send the command to control the zone
                              If status = 2 Then ' Turn On 
                                  ControlEZSnsRFSensor(dc - EZSnsRFDeviceCodeStart, True)
                              ElseIf status = 3 Then ' Turn Off
                                  ControlEZSnsRFSensor(dc - EZSnsRFDeviceCodeStart, False)
                              End If
                  
                  
                          ' Handle any changes to the EZIO outputs
                          ElseIf dc >= EZIODeviceCodeStart And dc <= EZIODeviceCodeStart + 10 Then
                  
                              If status = 2 Then ' Turn On 
                                  ControlEZIOOutput(dc - EZIODeviceCodeStart, True)
                              ElseIf status = 3 Then ' Turn Off
                                  ControlEZIOOutput(dc - EZIODeviceCodeStart, False)
                              End If
                  
                          End If
                  
                      Catch ex As Exception
                          hs.WriteLog("ScriptName", "Error in StatusChangeCallback" & ex.ToString)
                      End Try
                  
                  End Sub
                  
                  
                  ' Utility functions
                  
                  
                  Sub CreateEZRainDevices()
                  
                      Dim Lp As Integer
                      Dim Ref As Long
                      Dim dv As Object
                      Dim dc As String
                  
                      Try
                          gProcessingEZRainStates = True
                          ' Create the 8 devices that will reflect the 8 zones on the controller
                          For Lp = 0 To 7
                              dc = (EZRainDeviceCodeStart + Lp).ToString
                              If hs.DeviceExists(HouseCode & dc) = -1 Then
                                  Ref = hs.NewDeviceRef(EZRainDevName & " Zone " & (Lp + 1).ToString)
                                  dv = hs.GetDeviceByRef(Ref)
                                  dv.dc = dc
                                  dv.hc = HouseCode
                                  dv.can_dim = False
                                  dv.location = EZRainDevLocation
                              End If
                          Next
                  
                      Catch ex As Exception
                          hs.WriteLog(ScriptName, "Error in CreateEZRainDevices " & ex.ToString)
                      End Try
                  
                      gProcessingEZRainStates = False
                  
                  End Sub
                  
                  Sub CreateEZSnsRFDevices()
                  
                      Dim Lp As Integer
                      Dim Ref As Long
                      Dim dv As Object
                      Dim dc As String
                  
                      Try
                          gProcessingEZSnsRFStates = True
                          ' Create the devices that will reflect the RF sensors
                          For Lp = 0 To (EZSnsRFNumSensorsToWatch - 1)
                              dc = (EZSnsRFDeviceCodeStart + Lp).ToString
                              If hs.DeviceExists(HouseCode & dc) = -1 Then
                                  Ref = hs.NewDeviceRef(EZSnsRFDevName & " Input " & (Lp + 1).ToString)
                                  dv = hs.GetDeviceByRef(Ref)
                                  dv.dc = dc
                                  dv.hc = HouseCode
                                  dv.can_dim = False
                                  dv.location = EZSnsRFDevLocation
                              End If
                          Next
                  
                      Catch ex As Exception
                          hs.WriteLog(ScriptName, "Error in CreateEZSnsRFDevices " & ex.ToString)
                      End Try
                  
                      gProcessingEZSnsRFStates = False
                  
                  End Sub
                  
                  
                  
                  Sub CreateEZIODevices()
                  
                      Dim Lp As Integer
                      Dim Ref As Long
                      Dim dv As Object
                      Dim dc As String
                  
                      Try
                          gProcessingEZRainStates = True
                          ' Create the 11 devices that will reflect the 8 outputs and 3 inputs
                          For Lp = 0 To 10
                              dc = (EZIODeviceCodeStart + Lp).ToString
                              If hs.DeviceExists(HouseCode & dc) = -1 Then
                                  If Lp < 8 Then ' Output control
                                      Ref = hs.NewDeviceRef(EZIODevName & " Output " & (Lp + 1).ToString)
                                      dv = hs.GetDeviceByRef(Ref)
                                  Else ' Inputs
                                      Ref = hs.NewDeviceRef(EZIODevName & " Input " & (Lp - 7).ToString)
                                      dv = hs.GetDeviceByRef(Ref)
                                  End If
                                  dv.dc = dc
                                  dv.hc = HouseCode
                                  dv.can_dim = False
                                  dv.location = EZIODevLocation
                              End If
                          Next
                  
                      Catch ex As Exception
                          hs.WriteLog(ScriptName, "Error in CreateEZIODevices " & ex.ToString)
                      End Try
                  
                      gProcessingEZSnsRFStates = False
                  
                  End Sub
                  
                  
                  Sub ProcessValveStatus(ByVal Status As Byte)
                  
                      Dim ValveNum As Integer = (Status And 7)
                      Dim dc As String
                      Dim Lp As Integer
                  
                      Try
                          gProcessingEZRainStates = True
                  
                          ' Run the 8 zones and set them according to the valve status report
                          For Lp = 0 To 7
                              dc = (EZRainDeviceCodeStart + Lp).ToString
                              If ValveNum = Lp And (Status And 128) = 128 Then
                                  hs.SetDeviceStatus(HouseCode & dc, 2) ' Set to on
                              Else
                                  hs.SetDeviceStatus(HouseCode & dc, 3) ' Set to off
                              End If
                          Next
                      Catch ex As Exception
                          hs.WriteLog(ScriptName, "Error in ProcessValveStatus " & ex.ToString)
                      End Try
                  
                      gProcessingEZRainStates = False
                  
                  End Sub
                  
                  Sub ProcessEZIOStatus(ByVal Status As Byte)
                  
                      Dim dc As String
                      Dim Lp As Integer
                  
                      Try
                          gProcessingEZIOStates = True
                  
                          ' Run the 8 outputs and set them according to the value
                          For Lp = 0 To 7
                              dc = (EZIODeviceCodeStart + Lp).ToString
                              If Status And (1 << Lp) > 0 Then
                                  hs.SetDeviceStatus(HouseCode & dc, 2) ' Set to on
                              Else
                                  hs.SetDeviceStatus(HouseCode & dc, 3) ' Set to off
                              End If
                          Next
                      Catch ex As Exception
                          hs.WriteLog(ScriptName, "Error in ProcessEZIOStatus " & ex.ToString)
                      End Try
                  
                      gProcessingEZIOStates = False
                  
                  End Sub
                  
                  Sub ProcessEZSnsRFStatus(ByVal Status As Byte)
                  
                      Dim dc As String
                      Dim Lp As Integer
                  
                      Try
                          gProcessingEZSnsRFStates = True
                  
                          ' Run the 8 outputs and set them according to the value
                          For Lp = 0 To (EZSnsRFNumSensorsToWatch - 1)
                              dc = (EZSnsRFDeviceCodeStart + Lp).ToString
                              If Status And (1 << Lp) > 0 Then
                                   hs.SetDeviceStatus(HouseCode & dc, 2) ' Set to on
                               Else
                                   hs.SetDeviceStatus(HouseCode & dc, 3) ' Set to off
                               End If
                           Next
                      Catch ex As Exception
                          hs.WriteLog(ScriptName, "Error in ProcessEZSnsRFStatus " & ex.ToString)
                      End Try
                  
                      gProcessingEZSnsRFStates = False
                  
                  End Sub
                  
                  Sub EZIOSensorReport(ByVal Sensor As Byte, ByVal Value As Byte)
                      hs.WriteLog(ScriptName, "EZIOSensorReport: " & Sensor.ToString & ", " & Value.ToString)
                  End Sub
                  
                  Sub EZSnsRFSensorReport(ByVal Sensor As Byte, ByVal Value As Byte)
                      hs.WriteLog(ScriptName, "EZSnsRFSensorReport: " & Sensor.ToString & ", " & Value.ToString)
                  End Sub
                  
                  
                  Sub ProcessEZIOGroupCmd(ByVal GroupNum As Byte, ByVal CmdNum As Byte)
                  
                      Dim dc As String
                  
                      Try
                          hs.WriteLog(ScriptName, "ProcessEZIOGroupCmd: " & GroupNum.ToString & ", " & CmdNum.ToString)
                          If GroupNum < 1 Or GroupNum > 3 Then
                              Return
                          End If
                          dc = (EZIODeviceCodeStart + 8 + GroupNum).ToString
                          Select Case CmdNum
                              Case &H11
                                  hs.SetDeviceStatus(HouseCode & dc, 2) ' Set to on
                              Case &H13
                                  hs.SetDeviceStatus(HouseCode & dc, 3) ' Set to off
                          End Select
                  
                      Catch ex As Exception
                          hs.WriteLog(ScriptName, "Error in ProcessEZIOGroupCmd " & ex.ToString)
                      End Try
                  
                  
                  End Sub
                  
                  Sub ProcessEZSnsRFGroupCmd(ByVal GroupNum As Byte, ByVal CmdNum As Byte)
                  
                      Dim dc As String
                  
                      Try
                          'hs.WriteLog(ScriptName, "ProcessEZSnsRFGroupCmd: " & GroupNum.ToString & ", " & CmdNum.ToString)
                          If GroupNum < 1 Or GroupNum > EZSnsRFNumSensorsToWatch Then
                              hs.WriteLog(ScriptName, "ProcessEZSnsRFGroupCmd has GroupNum outside bounds -- returning")
                              Return
                          End If
                  
                          dc = (EZSnsRFDeviceCodeStart + GroupNum - 1).ToString
                  
                          Select Case CmdNum
                              Case 11
                  		hs.WriteLog(ScriptName, "Turning device " & HouseCode & dc & " on")
                                  hs.SetDeviceStatus(HouseCode & dc, 2) ' Set to on
                              Case 13
                  		hs.WriteLog(ScriptName, "Turning device " & HouseCode & dc & " off")
                                  hs.SetDeviceStatus(HouseCode & dc, 3) ' Set to off
                          End Select
                  
                      Catch ex As Exception
                          hs.WriteLog(ScriptName, "Error in ProcessEZSnsRFGroupCmd " & ex.ToString)
                      End Try
                  
                  
                  End Sub
                  
                  
                  Sub ControlEZRainZone(ByVal Zone As Integer, ByVal TurnOn As Boolean)
                      Try
                          hs.WriteLog(ScriptName, "ControlEZRainZone: " & Zone.ToString & ", " & TurnOn.ToString)
                  
                          If TurnOn = True Then
                              hs.plugin("Insteon").ExtDev_TransmitToExternalDevice(EZRainDevName, &H0, &H40, Zone) ' Flags = No extra hops and direct command, Cmd1 = Zone On, Cmd2 = Zone number
                          Else
                              hs.plugin("Insteon").ExtDev_TransmitToExternalDevice(EZRainDevName, &H0, &H41, Zone) ' Flags = No extra hops and direct command, Cmd1 = Zone Off, Cmd2 = Zone number
                          End If
                  
                      Catch ex As Exception
                          hs.WriteLog(ScriptName, "Error in ControlEZRainZone " & ex.ToString)
                      End Try
                  
                  End Sub
                  
                  Sub ControlEZIOOutput(ByVal Dev As Integer, ByVal TurnOn As Boolean)
                      Try
                          hs.WriteLog(ScriptName, "ControlEZIOOutput: " & Dev.ToString & ", " & TurnOn.ToString)
                  
                          If TurnOn = True Then
                              hs.plugin("Insteon").ExtDev_TransmitToExternalDevice(EZIODevName, &H0, &H45, Dev) ' Flags = No extra hops and direct command, Cmd1 = Output On, Cmd2 = Output number
                          Else
                              hs.plugin("Insteon").ExtDev_TransmitToExternalDevice(EZIODevName, &H0, &H46, Dev) ' Flags = No extra hops and direct command, Cmd1 = Output Off, Cmd2 = Output number
                          End If
                  
                      Catch ex As Exception
                          hs.WriteLog(ScriptName, "Error in ControlEZIOOutput " & ex.ToString)
                      End Try
                  
                  End Sub
                  
                  Sub ControlEZSnsRFSensor(ByVal Dev As Integer, ByVal TurnOn As Boolean)
                      Try
                          hs.WriteLog(ScriptName, "ControlEZSnsRFSensor: " & Dev.ToString & ", " & TurnOn.ToString)
                  
                          If TurnOn = True Then
                              hs.plugin("Insteon").ExtDev_TransmitToExternalDevice(EZSnsRFDevName, &H0, &H45, Dev) ' Flags = No extra hops and direct command, Cmd1 = Output On, Cmd2 = Output number
                          Else
                              hs.plugin("Insteon").ExtDev_TransmitToExternalDevice(EZSnsRFDevName, &H0, &H46, Dev) ' Flags = No extra hops and direct command, Cmd1 = Output Off, Cmd2 = Output number
                          End If
                  
                      Catch ex As Exception
                          hs.WriteLog(ScriptName, "Error in ControlEZSnsRFSensor " & ex.ToString)
                      End Try
                  
                  End Sub
                  HomeSeer Version: HS3 Pro Edition
                  Operating System: Microsoft Windows 10 Pro
                  Processor Type and Speed: i7 - 3.26 GHz
                  Total Physical Memory: 16Gig

                  Plugins: BlBackup | EasyTrigger | FitbitSeer | HSTouchServer | Insteon | WeatherXML

                  Comment


                    #10
                    anybody... please...
                    HomeSeer Version: HS3 Pro Edition
                    Operating System: Microsoft Windows 10 Pro
                    Processor Type and Speed: i7 - 3.26 GHz
                    Total Physical Memory: 16Gig

                    Plugins: BlBackup | EasyTrigger | FitbitSeer | HSTouchServer | Insteon | WeatherXML

                    Comment


                      #11
                      well I found a way around the problem.
                      anyone searching can find it here: http://board.homeseer.com/showthread.php?t=127333
                      I had to monkey with the script to get input status updates, but it works now.

                      CM
                      HomeSeer Version: HS3 Pro Edition
                      Operating System: Microsoft Windows 10 Pro
                      Processor Type and Speed: i7 - 3.26 GHz
                      Total Physical Memory: 16Gig

                      Plugins: BlBackup | EasyTrigger | FitbitSeer | HSTouchServer | Insteon | WeatherXML

                      Comment


                        #12
                        glad you got it working
                        Mark

                        HS3 Pro 4.2.19.5
                        Hardware: Insteon Serial PLM | AD2USB for Vista Alarm | HAI Omnistat2 | 1-Wire HA7E | RFXrec433 | Dahua Cameras | LiftMaster Internet Gateway | Tuya Smart Plugs
                        Plugins: Insteon (mine) | Vista Alarm (mine) | Omnistat 3 | Ultra1Wire3 | RFXCOM | HS MyQ | BLRadar | BLDenon | Tuya | Jon00 Charting | Jon00 Links
                        Platform: Windows Server 2022 Standard, i5-12600K/3.7GHz/10 core, 16GB RAM, 500GB SSD

                        Comment

                        Working...
                        X