HSM and Envisalink


#1

Quick question. I have Envisalink for DSC integration installed, and linked to HSM.

When I click arm home from the HSM tile on the dashboard it arms the alarm like it should.

If I click from the dashboard to disarm, everything disams as it should.

However if someone disarms the alarm from hey keypad to let the dog out, the alarm disarms, but the HSM still monitors the doors and then flags an intrusion and responds accordingly. DO I need a seperate triggered rule to disarm HSM when the envisalink is disarmed, or is something not working correctly?


#2

Assuming you are using my Envisalink Integration app and Connection Driver?
What version of the app and driver are you currently running?
In 0.15.0 I extended HSM integration to two way. When my keypad is used to disarm, HSM now disarms.


#3

Yeah, using yours.

public static String version() { return "v0.16.0" }

However not getting 2 way. Disarm from keypad not showing up in HSM. Still showing HSM armed.


#4

Turn on the debug variable and see if you can see anything in the logs.
What version of Envisalink do you have? What keypad and what controller board on your DSC?


#5

Enabled debug and see nothing for disarming the keypad. The device for keypad shows the event from armed to disarmed to ready, but nothing in the logs for HSM or Envisalink integration show anything.

As for the DSC im running PC1616 and an Eyez-On Envisalink EVL-4CG IP Security Interface Module


#6

If the HSM subscription is active, each time you use the keypad you should get HSM Alert: [event] in the logs.
If debugging is enabled (via the variable in the code, not the switch in the app which doesn't work presently) you will get more detail after the logged event above. If you do not see these logs, then the app is not subscribed to the HSM events. If that is the case, click the Initialize button in the Device properties for your envisalink connection device, see if that does the trick.

This is the block of code that handles the events from HSM

def statusHandler(evt) {
    log.info "HSM Alert: $evt.value"
    

    if (getChildDevice(state.EnvisalinkDNI).currentValue("Status") != "Exit Delay in Progress" 
        && getChildDevice(state.EnvisalinkDNI).currentValue("Status") != "Entry Delay in Progress")
    {
        if (evt.value && state.enableHSM)
        {
            ifDebug("HSM is enabled")
            switch(evt.value){
                case "armedAway":
                ifDebug("Sending Arm Away")
                    if (getChildDevice(state.EnvisalinkDNI).currentValue("Status") != "Armed")
                    {
                        getChildDevice(state.EnvisalinkDNI).ArmAway()
                    }
                    break
                case "armedHome":
                ifDebug("Sending Arm Home")
                    if (getChildDevice(state.EnvisalinkDNI).currentValue("Status") != "Armed")
                    {
                        getChildDevice(state.EnvisalinkDNI).ArmHome()
                    }
                    break
                case "armedNight":
                ifDebug("Sending Arm Home")
                    if (getChildDevice(state.EnvisalinkDNI).currentValue("Status") != "Armed")
                    {
                        getChildDevice(state.EnvisalinkDNI).ArmHome()
                    }
                    break
                case "disarmed":
                ifDebug("Sending Disarm")
                    if (getChildDevice(state.EnvisalinkDNI).currentValue("Status") != "Ready")
                    {
                        getChildDevice(state.EnvisalinkDNI).Disarm()
                    }
                    break
            }
        }
    }
}

#7

Ahh i was using the debug switch in the app. Let me change the code.