Keypad code as trigger

Well, darn. What is the point of them? I wish they were useable, because I wanted to use the key fob that had the A & B also. When I press down on A & B on my keypad it lights up, but I don't see anything on the logs. I think you mentioned that on another post.

Anyway, thanks for the response, I will be trying the app out shortly.

The fob A and B are working, because it's seen as a button with 4 buttons (source: I have it)

Thanks. I was hoping that the keypad's A & B worked too, so that I would be able to to use either the fob or keypad for the same effect, of triggering a panic siren.

Did anyone ever figure this out? I also have a 3400, and it most definitely sends codes when you type them, even if you do not arm or disarm, explicitly. Just pound in the code and you're good.

I wanted to build in a couple of codes, like a panic, door lock, etc.

dev:4812020-10-20 06:19:29.235 pm debugdescMap: [raw:catchall: 0104 0501 01 01 0040 00 D8DC 01 00 0000 07 00 , profileId:0104, clusterId:0501, clusterInt:1281, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:D8DC, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:07, direction:00, data:[]]
dev:4812020-10-20 06:19:28.218 pm infoskipped: [raw:catchall: 0000 0013 00 00 0040 00 D8DC 00 00 0000 00 00 EADCD800E5FC0C006F0D0080, profileId:0000, clusterId:0013, clusterInt:19, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:D8DC, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[EA, DC, D8, 00, E5, FC, 0C, 00, 6F, 0D, 00, 80]], description:catchall: 0000 0013 00 00 0040 00 D8DC 00 00 0000 00 00 EADCD800E5FC0C006F0D0080
dev:4812020-10-20 06:19:28.215 pm debugdescMap: [raw:catchall: 0000 0013 00 00 0040 00 D8DC 00 00 0000 00 00 EADCD800E5FC0C006F0D0080, profileId:0000, clusterId:0013, clusterInt:19, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:D8DC, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[EA, DC, D8, 00, E5, FC, 0C, 00, 6F, 0D, 00, 80]]
dev:4812020-10-20 06:19:25.964 pm infoFront Door Keypad was disarmed [physical]
dev:4812020-10-20 06:19:24.972 pm tracesendArmResponse- sucess, bin:-1, armMode:00 -> armRequest:00, exitDelay:0, isInitiator:true, lcData:[isValid:true, isInitiator:true, code:6969, name:Lock only, codeNumber:3]
dev:4812020-10-20 06:19:24.959 pm debugdescMap: [raw:catchall: 0104 0501 01 01 0040 00 D8DC 01 00 0000 00 00 00043639363900, profileId:0104, clusterId:0501, clusterInt:1281, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:D8DC, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[00, 04, 36, 39, 36, 39, 00]]
dev:4812020-10-20 06:19:17.340 pm infoFront Door Keypad was disarmed [physical]

Is there a way to use RM or WebCore to parse this raw data, or would I need to modify the driver instead?

I have not.

@bravenel can you take another look at this. I am unable to get my rule to Trigger when I disarm using a Ring Gen 1 Keypad. (Also tried with an Iris V2 Keypad and recreated the rule, but it also would not Trigger upon Disarm.)

As a secondary part to this, could you add the ability for Keypad Code event subscriptions to subscribe to both the arm event and disarm event. The Ring Gen 1 Keypad sends the code used on arm and disarm.

Summary


After arming and disarming still no event showing for the rule:


The rule machine app instance for the rule is 1006 however it does not trigger upon disarm as seen in log below:

Please show the Events from the device page for that keypad, where it was disarmed.

Do you have event logging turned on in that rule?

Yes, I have all logging enabled for the rule:

What's the appId for that rule? That's the number in the url.

1006

So it's not logging anything at all, right?

Correct, I do not see app id 1006 log anything at all:

It's a little difficult to tell what is going on. It has the right subscription, so it should be seeing the disarm event. I am not familiar with these keypads, and need to check with an associate about what they are sending in the event.

Please install this small test app. First put the code in Apps Code, then install it from Add User App. Select the keypad, and hit Done. Then disarm the keypad and post the logs from the app.

definition(
	name: "Test Keypad",
	namespace: "hubitat",
	author: "Bruce Ravenel",
	description: "Rule",
	category: "Convenience",
	iconUrl: "",
	iconX2Url: ""
)

preferences {
    section {
		input "keypad", "capability.securityKeypad", title: "Security Keypad"
    }
}

def updated() {
	unsubscribe()
	initialize()
}

def installed() {
	initialize()
}

def initialize() {
	subscribe(keypad, "securityKeypad.disarmed", handler)
}

def handler(evt) {
	log.debug "Keypad $keypad disarmed: data=$evt.data"
}

The driver is not sending the code. It should be in the event data, but you can see that it is null.

I'll get someone to look into this.

Thank you for your help, would it also be possible to have the rule machine trigger subscribe to the arm event as well as the disarm event. I can see in the debug logs that the keypad sends the code on both.

Well, right now the driver is not sending any code. But, as to allowing triggering on arm, I will look into it.

1 Like