Skip to content

Add econet bulldog gatelock#2998

Open
Econet-Controls-Inc wants to merge 5 commits into
SmartThingsCommunity:mainfrom
Econet-Controls-Inc:add-econet-bulldog-gatelock
Open

Add econet bulldog gatelock#2998
Econet-Controls-Inc wants to merge 5 commits into
SmartThingsCommunity:mainfrom
Econet-Controls-Inc:add-econet-bulldog-gatelock

Conversation

@Econet-Controls-Inc
Copy link
Copy Markdown

Check all that apply

Type of Change

  • WWST Certification Request
    • If this is your first time contributing code:
      • I have reviewed the README.md file
      • I have reviewed the CODE_OF_CONDUCT.md file
      • I have signed the CLA
    • I plan on entering a WWST Certification Request or have entered a request through the WWST Certification console at developer.smartthings.com
  • Bug fix
  • New feature
  • Refactor

Checklist

  • I have performed a self-review of my code
  • I have commented my code in hard-to-understand areas
  • I have verified my changes by testing with a device or have communicated a plan for testing
  • I am adding new behavior, such as adding a sub-driver, and have added and run new unit tests to cover the new behavior

Description of Change

New Matter Edge driver for the Econet Bulldog GateLock smart door lock
(Vendor ID 0x1568 / Product ID 0x000A, ma_doorlock device type).

Capabilities exposed:

  • lock — DoorLock.LockState
  • contactSensor — DoorLock.DoorState (driven by the lock's reed switch)
  • tamperAlert — GeneralDiagnostics.ActiveHardwareFaults attribute
    (primary, supports both detected and clear states) + DoorLock.DoorLockAlarm
    event (legacy fallback for older firmware builds)
  • battery — PowerSource.BatPercentRemaining
  • firmwareUpdate, refresh

Why a custom driver:
The lock exposes its physical reed switch via the standard DoorLock.DoorState
attribute, which the stock matter-lock driver does not surface as a contact
sensor. Tamper is wired through GeneralDiagnostics so the SmartThings UI
tracks both "tampered" and "clear" states from the attribute lifecycle rather
than just an event edge.

Implemented on st.matter.driver so the Matter secure session attaches per
device.

Summary of Completed Tests

Tested against an Econet Bulldog GateLock running production firmware,
paired to a SmartThings hub (V3) via Matter commissioning over BLE.

  • Pairing: device commissions successfully on first attempt; SmartThings
    app shows "Bulldog GateLock" with correct branding.
  • Lock / Unlock: both commands from the SmartThings app actuate the
    servo and the LockState attribute updates within 1 second; physical lock/
    unlock from the keypad also reflects in the app.
  • Contact sensor: opening and closing the gate (reed switch transition)
    drives the contactSensor tile open/closed in real time.
  • Tamper alert (new GeneralDiagnostics path): entering 3 wrong PINs in
    ~20 s triggers the keypad's 4-strike brute-force lockout; firmware adds
    kTamperDetected (10) to ActiveHardwareFaults; SmartThings tile transitions
    to "tampered". When the lockout expires (~10 s), firmware removes the
    fault and the tile returns to "clear".
  • Tamper alert (legacy event path): confirmed older firmware builds
    that only emit the DoorLockAlarm event still trigger "tampered" via the
    retained event handler.
  • Battery: percentage updates immediately after each lock/unlock.
  • Refresh: pull-to-refresh in the app re-subscribes and re-reads all
    attributes.

No regressions observed in 24 hours of continuous device usage.

Adds a new Matter Edge driver for the Econet Bulldog GateLock
(Vendor ID 0x1568 / Product ID 0x000A). The driver subscribes to:

- DoorLock.LockState  -> lock capability
- DoorLock.DoorState  -> contactSensor capability (reed switch via Matter)
- PowerSource.BatPercentRemaining -> battery capability
- GeneralDiagnostics.ActiveHardwareFaults -> tamperAlert capability
  (fires "tampered" when kTamperDetected is present in the list,
  "clear" when it is removed; firmware sets this on a 4-strike keypad
  brute-force trip and clears it when the lockout expires)
- DoorLock.DoorLockAlarm event (legacy fallback for older firmware
  builds that only emit the event path)

Implemented on st.matter.driver so the Matter secure session is
established per device.
- Revert init.lua to drop GeneralDiagnostics.ActiveHardwareFaults
  subscription that crashed the driver on load
- Use the generic profile filename matter-lock-contact-tamper.yml
  (previous gatelock-matter.yml predated the rename)
- Update fingerprints.yml to reference the renamed profile
- Restore README tamper-alert section to the DoorLockAlarm event path
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant