Skip to content

Add the ThingsOne Presence Sensor (IC60001-PSC01) Matter Edge driver - #3274

Open
samjin-sw wants to merge 1 commit into
SmartThingsCommunity:mainfrom
samjin-sw:ic60001-psc01-pr
Open

samjin-sw wants to merge 1 commit into
SmartThingsCommunity:mainfrom
samjin-sw:ic60001-psc01-pr

Conversation

@samjin-sw

@samjin-sw samjin-sw commented Oct 8, 2026 •

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 driver for the ThingsOne Presence Sensor, model IC60001-PSC01 (VID 0x1241, PID 0x8010), a battery-powered (ICD) Matter-over-Thread device: Occupancy Sensor on EP1 (mmWave radar and PIR), Temperature Sensor on EP2, Light Sensor on EP3, Humidity Sensor on EP4 and a battery Power Source on EP5. It uses standard clusters only, with no custom cluster or capability.

Profile ic60001-psc01: presenceSensor, temperatureMeasurement, relativeHumidityMeasurement, illuminanceMeasurement, battery, firmwareUpdate and refresh, category PresenceSensor.

The stock matter-sensor driver covers the measurements but not the two settings this product needs:

  • Sensitivity: the standard motionSensitivity preference is written to OccupancySensing.PIRUnoccupiedToOccupiedThreshold on EP1 (1 low, 2 medium, 3 high; "disabled" maps to 1), read back, and rewritten up to three times if the device reports a different value.
  • Off delay: the driver keeps "present" for a configurable time after Occupancy drops to 0, and cancels the delay when Occupancy returns to 1.
    The standard tempOffset and humidityOffset preferences are included; a changed offset triggers a re-read of that measurement only.

Open item: the off-delay preference is currently publicguide63260.offDelay, in our developer namespace (10/15/20/25/30 s, 1/2/3/4/5 min, default 10 s; en "Off delay", ko "해제 지연"). We know preferences outside the SmartThings namespace cannot be merged and have asked SmartThings for a stse or certifiedpreferences definition; the driver will switch to that id before merge.

Summary of Completed Tests

  • Integration tests (src/test/test_ic60001_psc01.lua): 18/18 - occupancy and off delay (including cancel and a repeated 0), unit conversions, refresh, offset re-reads, sensitivity write, read-back, retry limit and default.
  • luacheck with .github/workflows/.luacheckrc: 0 warnings / 0 errors. validate_fingerprints.py, check_profile_categories.py and check_duplicates.py: pass.
  • On a device through a development channel: a factory-reset unit onboarded by QR was matched by the manufacturer fingerprint 4673/32784 to this driver and reached PROVISIONED; the subscription delivered all five values; refresh returned values equal to raw attribute reads; occupancy changes were reported over four days; after an external write of mode 1 the driver restored the configured 2.

@CLAassistant

CLAassistant commented Oct 8, 2026 •

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@tpmanley
tpmanley requested review from ctowns and hcarter-775 October 8, 2026 16:41
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.

2 participants