Skip to content

feat(NodOn): modernize SDO-4-1-00 and add configureReporting for ssIasZone/zoneStatus#12523

Open
nthiers wants to merge 2 commits into
Koenkk:masterfrom
nthiers:fix/nodon-sdo-4-1-00-modernextend
Open

feat(NodOn): modernize SDO-4-1-00 and add configureReporting for ssIasZone/zoneStatus#12523
nthiers wants to merge 2 commits into
Koenkk:masterfrom
nthiers:fix/nodon-sdo-4-1-00-modernextend

Conversation

@nthiers

@nthiers nthiers commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Problem

The current SDO-4-1-00 definition has two issues:

1. Incomplete modernExtend migration

The entry mixes legacy converters with modernExtend:

fromZigbee: [fz.battery, fz.ias_contact_alarm_1],  // legacy
toZigbee: [],
exposes: [e.contact()],                              // legacy
extend: [m.battery({voltageReporting: true})],       // modernExtend

fz.battery is already covered by m.battery. fz.ias_contact_alarm_1 and e.contact() are covered by m.iasZoneAlarm.

2. No configureReporting for ssIasZone/zoneStatus

Without it, the periodic heartbeat interval is never configured. The attribute does not appear in Z2M's Reporting tab and stays at whatever the device factory default is.


Fix

  {
      zigbeeModel: ['SDO-4-1-00'],
      model: 'SDO-4-1-00',
      vendor: 'NodOn',
      description: 'Door & window opening sensor',
-     fromZigbee: [fz.battery, fz.ias_contact_alarm_1],
-     toZigbee: [],
-     exposes: [e.contact()],
      extend: [
          m.battery({voltageReporting: true}),
+         m.iasZoneAlarm({zoneType: 'contact', zoneAttributes: ['alarm_1']}),
      ],
+     configure: async (device, coordinatorEndpoint) => {
+         const endpoint = device.getEndpoint(1);
+         await endpoint.configureReporting('ssIasZone', [{
+             attribute: 'zoneStatus',
+             minimumReportInterval: 0,
+             maximumReportInterval: constants.repInterval.HOUR,
+             reportableChange: 1,
+         }]);
+     },
      ota: true,
  },

Tested

  • Device: SDO-4-1-00 firmware V4.3.0
  • Platform: Z2M 2.12.0 / zigbee-herdsman-converters 26.72.0
  • Coordinator: SONOFF Zigbee 3.0 USB Dongle Plus-E (EFR32MG21, firmware 7.4.4 GA)
  • configureReporting confirmed applied: cluster ssIasZone (0x0500), attr zoneStatus (0x0002), min: 0s, max: 3600s, change: 1
  • Hourly heartbeats received consistently over 24h of monitoring
  • Immediate open/close notifications confirmed on each door event

Nicolas THIERS and others added 2 commits June 23, 2026 12:34
…sZone

Replace legacy fz.ias_contact_alarm_1 + manual exposes with m.iasZoneAlarm modernExtend. Add configureReporting for ssIasZone/zoneStatus so the periodic heartbeat interval is visible in Z2M Reporting tab.

No bind required: coordinator already enrolled as IAS CIE during pairing. Tested on firmware V4.3.0, Z2M 2.12.0, overnight monitoring confirmed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@nthiers nthiers marked this pull request as ready for review June 25, 2026 12:12
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