From 475a206fd96f46313695f390be765f1c0d497116 Mon Sep 17 00:00:00 2001 From: Ben <33297169+Ben3094@users.noreply.github.com> Date: Sun, 30 Nov 2025 22:27:48 +0100 Subject: [PATCH 1/7] Support for timestamp for the Heiman SOS-EF-3.0 Hello, This pull requests tries to add a timestamp sensor to the Heiman SOS-EF-3.0 emergency button to easily set an event. As the device does not update its IasZone cluster when the emergency button is released, I propose a very simple solution. Best regards --- zhaquirks/heiman/SOS_EF_3_0.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 zhaquirks/heiman/SOS_EF_3_0.py diff --git a/zhaquirks/heiman/SOS_EF_3_0.py b/zhaquirks/heiman/SOS_EF_3_0.py new file mode 100644 index 0000000000..895fd8b07b --- /dev/null +++ b/zhaquirks/heiman/SOS_EF_3_0.py @@ -0,0 +1,16 @@ +from zigpy.quirks.v2 import QuirkBuilder +from zigpy.quirks.v2.homeassistant.sensor import SensorDeviceClass, SensorStateClass +from homeassistant.util.dt import now, as_local + +( + QuirkBuilder("HEIMAN", "SOS-EF-3.0") + .sensor( + attribute_name="zone_status", + cluster_id=0x0500, + attribute_converter=lambda x: as_local(now()), + state_class=SensorStateClass.MEASUREMENT, + device_class=SensorDeviceClass.TIMESTAMP, + fallback_name="Timestamp" + ) + .add_to_registry() +) \ No newline at end of file From d568bcbad76c522018bf8017269e778ad2f39b93 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 30 Nov 2025 21:37:22 +0000 Subject: [PATCH 2/7] Apply pre-commit auto fixes --- zhaquirks/heiman/SOS_EF_3_0.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/zhaquirks/heiman/SOS_EF_3_0.py b/zhaquirks/heiman/SOS_EF_3_0.py index 895fd8b07b..b10a256c1d 100644 --- a/zhaquirks/heiman/SOS_EF_3_0.py +++ b/zhaquirks/heiman/SOS_EF_3_0.py @@ -1,16 +1,16 @@ +from homeassistant.util.dt import as_local, now from zigpy.quirks.v2 import QuirkBuilder from zigpy.quirks.v2.homeassistant.sensor import SensorDeviceClass, SensorStateClass -from homeassistant.util.dt import now, as_local ( - QuirkBuilder("HEIMAN", "SOS-EF-3.0") - .sensor( - attribute_name="zone_status", - cluster_id=0x0500, - attribute_converter=lambda x: as_local(now()), - state_class=SensorStateClass.MEASUREMENT, - device_class=SensorDeviceClass.TIMESTAMP, - fallback_name="Timestamp" - ) - .add_to_registry() -) \ No newline at end of file + QuirkBuilder("HEIMAN", "SOS-EF-3.0") + .sensor( + attribute_name="zone_status", + cluster_id=0x0500, + attribute_converter=lambda x: as_local(now()), + state_class=SensorStateClass.MEASUREMENT, + device_class=SensorDeviceClass.TIMESTAMP, + fallback_name="Timestamp", + ) + .add_to_registry() +) From 35d82accaddb2de452b6eb7b684643b3b4d9a592 Mon Sep 17 00:00:00 2001 From: Ben <33297169+Ben3094@users.noreply.github.com> Date: Sun, 30 Nov 2025 22:48:04 +0100 Subject: [PATCH 3/7] Update SOS_EF_3_0.py to pass PR tests --- zhaquirks/heiman/SOS_EF_3_0.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zhaquirks/heiman/SOS_EF_3_0.py b/zhaquirks/heiman/SOS_EF_3_0.py index b10a256c1d..fd55dd5b39 100644 --- a/zhaquirks/heiman/SOS_EF_3_0.py +++ b/zhaquirks/heiman/SOS_EF_3_0.py @@ -1,3 +1,5 @@ +"""Heiman SOS-EF-3.0 device.""" + from homeassistant.util.dt import as_local, now from zigpy.quirks.v2 import QuirkBuilder from zigpy.quirks.v2.homeassistant.sensor import SensorDeviceClass, SensorStateClass From 365f8fa31fc0bd0f07c67aad11d51584a9cd853a Mon Sep 17 00:00:00 2001 From: Ben <33297169+Ben3094@users.noreply.github.com> Date: Sun, 30 Nov 2025 22:58:18 +0100 Subject: [PATCH 4/7] Update SOS_EF_3_0.py to remove Home Assistant dependencies --- zhaquirks/heiman/SOS_EF_3_0.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zhaquirks/heiman/SOS_EF_3_0.py b/zhaquirks/heiman/SOS_EF_3_0.py index fd55dd5b39..7ce1c87b80 100644 --- a/zhaquirks/heiman/SOS_EF_3_0.py +++ b/zhaquirks/heiman/SOS_EF_3_0.py @@ -1,6 +1,6 @@ """Heiman SOS-EF-3.0 device.""" -from homeassistant.util.dt import as_local, now +import datetime as dt from zigpy.quirks.v2 import QuirkBuilder from zigpy.quirks.v2.homeassistant.sensor import SensorDeviceClass, SensorStateClass @@ -9,7 +9,7 @@ .sensor( attribute_name="zone_status", cluster_id=0x0500, - attribute_converter=lambda x: as_local(now()), + attribute_converter=lambda x: dt.datetime.now().astimezone(), state_class=SensorStateClass.MEASUREMENT, device_class=SensorDeviceClass.TIMESTAMP, fallback_name="Timestamp", From dedf63d168e472928c486d22b8fb6ef248076d20 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 30 Nov 2025 21:58:26 +0000 Subject: [PATCH 5/7] Apply pre-commit auto fixes --- zhaquirks/heiman/SOS_EF_3_0.py | 1 + 1 file changed, 1 insertion(+) diff --git a/zhaquirks/heiman/SOS_EF_3_0.py b/zhaquirks/heiman/SOS_EF_3_0.py index 7ce1c87b80..b0cec93686 100644 --- a/zhaquirks/heiman/SOS_EF_3_0.py +++ b/zhaquirks/heiman/SOS_EF_3_0.py @@ -1,6 +1,7 @@ """Heiman SOS-EF-3.0 device.""" import datetime as dt + from zigpy.quirks.v2 import QuirkBuilder from zigpy.quirks.v2.homeassistant.sensor import SensorDeviceClass, SensorStateClass From 558fe6dd9934698a327d5934d70d4a0ea5ff8c9a Mon Sep 17 00:00:00 2001 From: Ben <33297169+Ben3094@users.noreply.github.com> Date: Mon, 1 Dec 2025 00:15:03 +0100 Subject: [PATCH 6/7] Update SOS_EF_3_0.py not to plot timestamp --- zhaquirks/heiman/SOS_EF_3_0.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zhaquirks/heiman/SOS_EF_3_0.py b/zhaquirks/heiman/SOS_EF_3_0.py index b0cec93686..88f1526821 100644 --- a/zhaquirks/heiman/SOS_EF_3_0.py +++ b/zhaquirks/heiman/SOS_EF_3_0.py @@ -11,7 +11,7 @@ attribute_name="zone_status", cluster_id=0x0500, attribute_converter=lambda x: dt.datetime.now().astimezone(), - state_class=SensorStateClass.MEASUREMENT, + state_class=None, device_class=SensorDeviceClass.TIMESTAMP, fallback_name="Timestamp", ) From f751e2902dff0ca2c7106b7c17a3883d9150445e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 30 Nov 2025 23:15:10 +0000 Subject: [PATCH 7/7] Apply pre-commit auto fixes --- zhaquirks/heiman/SOS_EF_3_0.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zhaquirks/heiman/SOS_EF_3_0.py b/zhaquirks/heiman/SOS_EF_3_0.py index 88f1526821..0c364bafcf 100644 --- a/zhaquirks/heiman/SOS_EF_3_0.py +++ b/zhaquirks/heiman/SOS_EF_3_0.py @@ -3,7 +3,7 @@ import datetime as dt from zigpy.quirks.v2 import QuirkBuilder -from zigpy.quirks.v2.homeassistant.sensor import SensorDeviceClass, SensorStateClass +from zigpy.quirks.v2.homeassistant.sensor import SensorDeviceClass ( QuirkBuilder("HEIMAN", "SOS-EF-3.0")