From 99b7683fd8c747a5b0fa74fd6246b3c59a910d79 Mon Sep 17 00:00:00 2001 From: Shina System Co Ltd Date: Tue, 21 Jul 2026 17:14:13 +0900 Subject: [PATCH 1/2] Add shinasystem's SiHAS Smoke Detector for wwst --- .../zigbee-smoke-detector/fingerprints.yml | 5 +++ .../src/shinasystem/can_handle.lua | 11 ++++++ .../src/shinasystem/init.lua | 35 +++++++++++++++++++ .../zigbee-smoke-detector/src/sub_drivers.lua | 1 + 4 files changed, 52 insertions(+) create mode 100644 drivers/SmartThings/zigbee-smoke-detector/src/shinasystem/can_handle.lua create mode 100644 drivers/SmartThings/zigbee-smoke-detector/src/shinasystem/init.lua diff --git a/drivers/SmartThings/zigbee-smoke-detector/fingerprints.yml b/drivers/SmartThings/zigbee-smoke-detector/fingerprints.yml index c1f859037b..6fce8d0d3a 100644 --- a/drivers/SmartThings/zigbee-smoke-detector/fingerprints.yml +++ b/drivers/SmartThings/zigbee-smoke-detector/fingerprints.yml @@ -59,3 +59,8 @@ zigbeeManufacturer: manufacturer: MultIR model: MIR-SM200 deviceProfileName: smoke-battery-tamper-no-fw-update + - id: ShinaSystem/FAM-300Z + deviceLabel: SiHAS Smoke Detector + manufacturer: ShinaSystem + model: FAM-300Z + deviceProfileName: smoke-battery diff --git a/drivers/SmartThings/zigbee-smoke-detector/src/shinasystem/can_handle.lua b/drivers/SmartThings/zigbee-smoke-detector/src/shinasystem/can_handle.lua new file mode 100644 index 0000000000..50807c8600 --- /dev/null +++ b/drivers/SmartThings/zigbee-smoke-detector/src/shinasystem/can_handle.lua @@ -0,0 +1,11 @@ +-- Copyright 2025 SmartThings, Inc. +-- Licensed under the Apache License, Version 2.0 + +local function shinasystem_can_handle(opts, driver, device, ...) + if device:get_manufacturer() == "ShinaSystem" and (device:get_model() == "FAM-300Z") then + return true, require("shinasystem") + end + return false +end + +return shinasystem_can_handle diff --git a/drivers/SmartThings/zigbee-smoke-detector/src/shinasystem/init.lua b/drivers/SmartThings/zigbee-smoke-detector/src/shinasystem/init.lua new file mode 100644 index 0000000000..d8bb4285c5 --- /dev/null +++ b/drivers/SmartThings/zigbee-smoke-detector/src/shinasystem/init.lua @@ -0,0 +1,35 @@ +-- Copyright 2022 SmartThings, Inc. +-- Licensed under the Apache License, Version 2.0 + + +local zcl_clusters = require "st.zigbee.zcl.clusters" +local IASZone = zcl_clusters.IASZone +local capabilities = require "st.capabilities" + +local CONFIGURATIONS = { + { + cluster = IASZone.ID, + attribute = IASZone.attributes.ZoneStatus.ID, + minimum_interval = 1, + maximum_interval = 1200, -- Zigbee poll interval is 600s. Added because the default reporting maximum_interval (180s) must be greater than 600s. + data_type = IASZone.attributes.ZoneStatus.base_type, + reportable_change = 1 + } +} + +local function device_init(driver, device) + if CONFIGURATIONS ~= nil then + for _, attribute in ipairs(CONFIGURATIONS) do + device:add_configured_attribute(attribute) + end + end +end + +local shinasystem_smoke_sensor = { + NAME = "shinasystem smoke sensor", + lifecycle_handlers = { + init = device_init + }, + can_handle = require("shinasystem.can_handle"), +} +return shinasystem_smoke_sensor diff --git a/drivers/SmartThings/zigbee-smoke-detector/src/sub_drivers.lua b/drivers/SmartThings/zigbee-smoke-detector/src/sub_drivers.lua index 2b917b85dc..2f7a4b29ff 100644 --- a/drivers/SmartThings/zigbee-smoke-detector/src/sub_drivers.lua +++ b/drivers/SmartThings/zigbee-smoke-detector/src/sub_drivers.lua @@ -7,5 +7,6 @@ local sub_drivers = { lazy_load_if_possible("aqara-gas"), lazy_load_if_possible("aqara"), lazy_load_if_possible("MultiIR"), + lazy_load_if_possible("shinasystem"), } return sub_drivers From 113b912dc4fccb2ca8963edc6ec79417899e994c Mon Sep 17 00:00:00 2001 From: Shina System Co Ltd Date: Tue, 21 Jul 2026 17:29:37 +0900 Subject: [PATCH 2/2] Remove unused variable capabilities --- .../SmartThings/zigbee-smoke-detector/src/shinasystem/init.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/SmartThings/zigbee-smoke-detector/src/shinasystem/init.lua b/drivers/SmartThings/zigbee-smoke-detector/src/shinasystem/init.lua index d8bb4285c5..e1fa9c6748 100644 --- a/drivers/SmartThings/zigbee-smoke-detector/src/shinasystem/init.lua +++ b/drivers/SmartThings/zigbee-smoke-detector/src/shinasystem/init.lua @@ -4,7 +4,6 @@ local zcl_clusters = require "st.zigbee.zcl.clusters" local IASZone = zcl_clusters.IASZone -local capabilities = require "st.capabilities" local CONFIGURATIONS = { {