From 46d7df8a2014769c0cba0492002cc6f393ecd7ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damian=20Kr=C3=B3lik?= <66667989+Damian-Nordic@users.noreply.github.com> Date: Wed, 22 Mar 2023 19:05:21 +0100 Subject: [PATCH 01/10] Move certificates from Credentials to credentials (#25785) Somehow, another directory "Credentials" has been created next to the existing "credentials" and they are not the same on case-sensitive filesystems. --- .../Matter-Development-DAC-FFF2-8000-Cert.der | Bin .../Matter-Development-DAC-FFF2-8000-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8000-Key.der | Bin .../Matter-Development-DAC-FFF2-8000-Key.pem | 0 .../Matter-Development-DAC-FFF2-8001-Cert.der | Bin .../Matter-Development-DAC-FFF2-8001-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8001-Key.der | Bin .../Matter-Development-DAC-FFF2-8001-Key.pem | 0 .../Matter-Development-DAC-FFF2-8002-Cert.der | Bin .../Matter-Development-DAC-FFF2-8002-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8002-Key.der | Bin .../Matter-Development-DAC-FFF2-8002-Key.pem | 0 .../Matter-Development-DAC-FFF2-8003-Cert.der | Bin .../Matter-Development-DAC-FFF2-8003-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8003-Key.der | Bin .../Matter-Development-DAC-FFF2-8003-Key.pem | 0 .../Matter-Development-DAC-FFF2-8004-Cert.der | Bin .../Matter-Development-DAC-FFF2-8004-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8004-Key.der | Bin .../Matter-Development-DAC-FFF2-8004-Key.pem | 0 .../Matter-Development-DAC-FFF2-8005-Cert.der | Bin .../Matter-Development-DAC-FFF2-8005-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8005-Key.der | Bin .../Matter-Development-DAC-FFF2-8005-Key.pem | 0 .../Matter-Development-DAC-FFF2-8006-Cert.der | Bin .../Matter-Development-DAC-FFF2-8006-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8006-Key.der | Bin .../Matter-Development-DAC-FFF2-8006-Key.pem | 0 .../Matter-Development-DAC-FFF2-8007-Cert.der | Bin .../Matter-Development-DAC-FFF2-8007-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8007-Key.der | Bin .../Matter-Development-DAC-FFF2-8007-Key.pem | 0 .../Matter-Development-DAC-FFF2-8008-Cert.der | Bin .../Matter-Development-DAC-FFF2-8008-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8008-Key.der | Bin .../Matter-Development-DAC-FFF2-8008-Key.pem | 0 .../Matter-Development-DAC-FFF2-8009-Cert.der | Bin .../Matter-Development-DAC-FFF2-8009-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8009-Key.der | Bin .../Matter-Development-DAC-FFF2-8009-Key.pem | 0 .../Matter-Development-DAC-FFF2-800A-Cert.der | Bin .../Matter-Development-DAC-FFF2-800A-Cert.pem | 0 .../Matter-Development-DAC-FFF2-800A-Key.der | Bin .../Matter-Development-DAC-FFF2-800A-Key.pem | 0 .../Matter-Development-DAC-FFF2-800B-Cert.der | Bin .../Matter-Development-DAC-FFF2-800B-Cert.pem | 0 .../Matter-Development-DAC-FFF2-800B-Key.der | Bin .../Matter-Development-DAC-FFF2-800B-Key.pem | 0 .../Matter-Development-DAC-FFF2-800C-Cert.der | Bin .../Matter-Development-DAC-FFF2-800C-Cert.pem | 0 .../Matter-Development-DAC-FFF2-800C-Key.der | Bin .../Matter-Development-DAC-FFF2-800C-Key.pem | 0 .../Matter-Development-DAC-FFF2-800D-Cert.der | Bin .../Matter-Development-DAC-FFF2-800D-Cert.pem | 0 .../Matter-Development-DAC-FFF2-800D-Key.der | Bin .../Matter-Development-DAC-FFF2-800D-Key.pem | 0 .../Matter-Development-DAC-FFF2-800E-Cert.der | Bin .../Matter-Development-DAC-FFF2-800E-Cert.pem | 0 .../Matter-Development-DAC-FFF2-800E-Key.der | Bin .../Matter-Development-DAC-FFF2-800E-Key.pem | 0 .../Matter-Development-DAC-FFF2-800F-Cert.der | Bin .../Matter-Development-DAC-FFF2-800F-Cert.pem | 0 .../Matter-Development-DAC-FFF2-800F-Key.der | Bin .../Matter-Development-DAC-FFF2-800F-Key.pem | 0 .../Matter-Development-DAC-FFF2-8010-Cert.der | Bin .../Matter-Development-DAC-FFF2-8010-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8010-Key.der | Bin .../Matter-Development-DAC-FFF2-8010-Key.pem | 0 .../Matter-Development-DAC-FFF2-8011-Cert.der | Bin .../Matter-Development-DAC-FFF2-8011-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8011-Key.der | Bin .../Matter-Development-DAC-FFF2-8011-Key.pem | 0 .../Matter-Development-DAC-FFF2-8012-Cert.der | Bin .../Matter-Development-DAC-FFF2-8012-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8012-Key.der | Bin .../Matter-Development-DAC-FFF2-8012-Key.pem | 0 .../Matter-Development-DAC-FFF2-8013-Cert.der | Bin .../Matter-Development-DAC-FFF2-8013-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8013-Key.der | Bin .../Matter-Development-DAC-FFF2-8013-Key.pem | 0 .../Matter-Development-DAC-FFF2-8014-Cert.der | Bin .../Matter-Development-DAC-FFF2-8014-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8014-Key.der | Bin .../Matter-Development-DAC-FFF2-8014-Key.pem | 0 .../Matter-Development-DAC-FFF2-8015-Cert.der | Bin .../Matter-Development-DAC-FFF2-8015-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8015-Key.der | Bin .../Matter-Development-DAC-FFF2-8015-Key.pem | 0 .../Matter-Development-DAC-FFF2-8016-Cert.der | Bin .../Matter-Development-DAC-FFF2-8016-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8016-Key.der | Bin .../Matter-Development-DAC-FFF2-8016-Key.pem | 0 .../Matter-Development-DAC-FFF2-8017-Cert.der | Bin .../Matter-Development-DAC-FFF2-8017-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8017-Key.der | Bin .../Matter-Development-DAC-FFF2-8017-Key.pem | 0 .../Matter-Development-DAC-FFF2-8018-Cert.der | Bin .../Matter-Development-DAC-FFF2-8018-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8018-Key.der | Bin .../Matter-Development-DAC-FFF2-8018-Key.pem | 0 .../Matter-Development-DAC-FFF2-8019-Cert.der | Bin .../Matter-Development-DAC-FFF2-8019-Cert.pem | 0 .../Matter-Development-DAC-FFF2-8019-Key.der | Bin .../Matter-Development-DAC-FFF2-8019-Key.pem | 0 .../Matter-Development-DAC-FFF2-801A-Cert.der | Bin .../Matter-Development-DAC-FFF2-801A-Cert.pem | 0 .../Matter-Development-DAC-FFF2-801A-Key.der | Bin .../Matter-Development-DAC-FFF2-801A-Key.pem | 0 .../Matter-Development-DAC-FFF2-801B-Cert.der | Bin .../Matter-Development-DAC-FFF2-801B-Cert.pem | 0 .../Matter-Development-DAC-FFF2-801B-Key.der | Bin .../Matter-Development-DAC-FFF2-801B-Key.pem | 0 .../Matter-Development-DAC-FFF2-801C-Cert.der | Bin .../Matter-Development-DAC-FFF2-801C-Cert.pem | 0 .../Matter-Development-DAC-FFF2-801C-Key.der | Bin .../Matter-Development-DAC-FFF2-801C-Key.pem | 0 .../Matter-Development-DAC-FFF2-801D-Cert.der | Bin .../Matter-Development-DAC-FFF2-801D-Cert.pem | 0 .../Matter-Development-DAC-FFF2-801D-Key.der | Bin .../Matter-Development-DAC-FFF2-801D-Key.pem | 0 .../Matter-Development-DAC-FFF2-801E-Cert.der | Bin .../Matter-Development-DAC-FFF2-801E-Cert.pem | 0 .../Matter-Development-DAC-FFF2-801E-Key.der | Bin .../Matter-Development-DAC-FFF2-801E-Key.pem | 0 .../Matter-Development-DAC-FFF2-801F-Cert.der | Bin .../Matter-Development-DAC-FFF2-801F-Cert.pem | 0 .../Matter-Development-DAC-FFF2-801F-Key.der | Bin .../Matter-Development-DAC-FFF2-801F-Key.pem | 0 .../Matter-Development-DAC-FFF3-8000-Cert.der | Bin .../Matter-Development-DAC-FFF3-8000-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8000-Key.der | Bin .../Matter-Development-DAC-FFF3-8000-Key.pem | 0 .../Matter-Development-DAC-FFF3-8001-Cert.der | Bin .../Matter-Development-DAC-FFF3-8001-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8001-Key.der | Bin .../Matter-Development-DAC-FFF3-8001-Key.pem | 0 .../Matter-Development-DAC-FFF3-8002-Cert.der | Bin .../Matter-Development-DAC-FFF3-8002-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8002-Key.der | Bin .../Matter-Development-DAC-FFF3-8002-Key.pem | 0 .../Matter-Development-DAC-FFF3-8003-Cert.der | Bin .../Matter-Development-DAC-FFF3-8003-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8003-Key.der | Bin .../Matter-Development-DAC-FFF3-8003-Key.pem | 0 .../Matter-Development-DAC-FFF3-8004-Cert.der | Bin .../Matter-Development-DAC-FFF3-8004-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8004-Key.der | Bin .../Matter-Development-DAC-FFF3-8004-Key.pem | 0 .../Matter-Development-DAC-FFF3-8005-Cert.der | Bin .../Matter-Development-DAC-FFF3-8005-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8005-Key.der | Bin .../Matter-Development-DAC-FFF3-8005-Key.pem | 0 .../Matter-Development-DAC-FFF3-8006-Cert.der | Bin .../Matter-Development-DAC-FFF3-8006-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8006-Key.der | Bin .../Matter-Development-DAC-FFF3-8006-Key.pem | 0 .../Matter-Development-DAC-FFF3-8007-Cert.der | Bin .../Matter-Development-DAC-FFF3-8007-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8007-Key.der | Bin .../Matter-Development-DAC-FFF3-8007-Key.pem | 0 .../Matter-Development-DAC-FFF3-8008-Cert.der | Bin .../Matter-Development-DAC-FFF3-8008-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8008-Key.der | Bin .../Matter-Development-DAC-FFF3-8008-Key.pem | 0 .../Matter-Development-DAC-FFF3-8009-Cert.der | Bin .../Matter-Development-DAC-FFF3-8009-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8009-Key.der | Bin .../Matter-Development-DAC-FFF3-8009-Key.pem | 0 .../Matter-Development-DAC-FFF3-800A-Cert.der | Bin .../Matter-Development-DAC-FFF3-800A-Cert.pem | 0 .../Matter-Development-DAC-FFF3-800A-Key.der | Bin .../Matter-Development-DAC-FFF3-800A-Key.pem | 0 .../Matter-Development-DAC-FFF3-800B-Cert.der | Bin .../Matter-Development-DAC-FFF3-800B-Cert.pem | 0 .../Matter-Development-DAC-FFF3-800B-Key.der | Bin .../Matter-Development-DAC-FFF3-800B-Key.pem | 0 .../Matter-Development-DAC-FFF3-800C-Cert.der | Bin .../Matter-Development-DAC-FFF3-800C-Cert.pem | 0 .../Matter-Development-DAC-FFF3-800C-Key.der | Bin .../Matter-Development-DAC-FFF3-800C-Key.pem | 0 .../Matter-Development-DAC-FFF3-800D-Cert.der | Bin .../Matter-Development-DAC-FFF3-800D-Cert.pem | 0 .../Matter-Development-DAC-FFF3-800D-Key.der | Bin .../Matter-Development-DAC-FFF3-800D-Key.pem | 0 .../Matter-Development-DAC-FFF3-800E-Cert.der | Bin .../Matter-Development-DAC-FFF3-800E-Cert.pem | 0 .../Matter-Development-DAC-FFF3-800E-Key.der | Bin .../Matter-Development-DAC-FFF3-800E-Key.pem | 0 .../Matter-Development-DAC-FFF3-800F-Cert.der | Bin .../Matter-Development-DAC-FFF3-800F-Cert.pem | 0 .../Matter-Development-DAC-FFF3-800F-Key.der | Bin .../Matter-Development-DAC-FFF3-800F-Key.pem | 0 .../Matter-Development-DAC-FFF3-8010-Cert.der | Bin .../Matter-Development-DAC-FFF3-8010-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8010-Key.der | Bin .../Matter-Development-DAC-FFF3-8010-Key.pem | 0 .../Matter-Development-DAC-FFF3-8011-Cert.der | Bin .../Matter-Development-DAC-FFF3-8011-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8011-Key.der | Bin .../Matter-Development-DAC-FFF3-8011-Key.pem | 0 .../Matter-Development-DAC-FFF3-8012-Cert.der | Bin .../Matter-Development-DAC-FFF3-8012-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8012-Key.der | Bin .../Matter-Development-DAC-FFF3-8012-Key.pem | 0 .../Matter-Development-DAC-FFF3-8013-Cert.der | Bin .../Matter-Development-DAC-FFF3-8013-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8013-Key.der | Bin .../Matter-Development-DAC-FFF3-8013-Key.pem | 0 .../Matter-Development-DAC-FFF3-8014-Cert.der | Bin .../Matter-Development-DAC-FFF3-8014-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8014-Key.der | Bin .../Matter-Development-DAC-FFF3-8014-Key.pem | 0 .../Matter-Development-DAC-FFF3-8015-Cert.der | Bin .../Matter-Development-DAC-FFF3-8015-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8015-Key.der | Bin .../Matter-Development-DAC-FFF3-8015-Key.pem | 0 .../Matter-Development-DAC-FFF3-8016-Cert.der | Bin .../Matter-Development-DAC-FFF3-8016-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8016-Key.der | Bin .../Matter-Development-DAC-FFF3-8016-Key.pem | 0 .../Matter-Development-DAC-FFF3-8017-Cert.der | Bin .../Matter-Development-DAC-FFF3-8017-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8017-Key.der | Bin .../Matter-Development-DAC-FFF3-8017-Key.pem | 0 .../Matter-Development-DAC-FFF3-8018-Cert.der | Bin .../Matter-Development-DAC-FFF3-8018-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8018-Key.der | Bin .../Matter-Development-DAC-FFF3-8018-Key.pem | 0 .../Matter-Development-DAC-FFF3-8019-Cert.der | Bin .../Matter-Development-DAC-FFF3-8019-Cert.pem | 0 .../Matter-Development-DAC-FFF3-8019-Key.der | Bin .../Matter-Development-DAC-FFF3-8019-Key.pem | 0 .../Matter-Development-DAC-FFF3-801A-Cert.der | Bin .../Matter-Development-DAC-FFF3-801A-Cert.pem | 0 .../Matter-Development-DAC-FFF3-801A-Key.der | Bin .../Matter-Development-DAC-FFF3-801A-Key.pem | 0 .../Matter-Development-DAC-FFF3-801B-Cert.der | Bin .../Matter-Development-DAC-FFF3-801B-Cert.pem | 0 .../Matter-Development-DAC-FFF3-801B-Key.der | Bin .../Matter-Development-DAC-FFF3-801B-Key.pem | 0 .../Matter-Development-DAC-FFF3-801C-Cert.der | Bin .../Matter-Development-DAC-FFF3-801C-Cert.pem | 0 .../Matter-Development-DAC-FFF3-801C-Key.der | Bin .../Matter-Development-DAC-FFF3-801C-Key.pem | 0 .../Matter-Development-DAC-FFF3-801D-Cert.der | Bin .../Matter-Development-DAC-FFF3-801D-Cert.pem | 0 .../Matter-Development-DAC-FFF3-801D-Key.der | Bin .../Matter-Development-DAC-FFF3-801D-Key.pem | 0 .../Matter-Development-DAC-FFF3-801E-Cert.der | Bin .../Matter-Development-DAC-FFF3-801E-Cert.pem | 0 .../Matter-Development-DAC-FFF3-801E-Key.der | Bin .../Matter-Development-DAC-FFF3-801E-Key.pem | 0 .../Matter-Development-DAC-FFF3-801F-Cert.der | Bin .../Matter-Development-DAC-FFF3-801F-Cert.pem | 0 .../Matter-Development-DAC-FFF3-801F-Key.der | Bin .../Matter-Development-DAC-FFF3-801F-Key.pem | 0 .../Matter-Development-PAI-FFF1-noPID-Cert.der | Bin .../Matter-Development-PAI-FFF1-noPID-Key.der | Bin .../Matter-Development-PAI-FFF2-noPID-Cert.der | Bin .../Matter-Development-PAI-FFF2-noPID-Cert.pem | 0 .../Matter-Development-PAI-FFF2-noPID-Key.der | Bin .../Matter-Development-PAI-FFF2-noPID-Key.pem | 0 .../Matter-Development-PAI-FFF3-noPID-Cert.der | Bin .../Matter-Development-PAI-FFF3-noPID-Cert.pem | 0 .../Matter-Development-PAI-FFF3-noPID-Key.der | Bin .../Matter-Development-PAI-FFF3-noPID-Key.pem | 0 266 files changed, 0 insertions(+), 0 deletions(-) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8000-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8000-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8000-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8000-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8001-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8001-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8001-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8001-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8002-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8002-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8002-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8002-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8003-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8003-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8003-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8003-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8004-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8004-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8004-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8004-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8005-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8005-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8005-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8005-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8006-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8006-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8006-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8006-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8007-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8007-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8007-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8007-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8008-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8008-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8008-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8008-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8009-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8009-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8009-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8009-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800A-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800A-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800A-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800A-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800B-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800B-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800B-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800B-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800C-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800C-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800C-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800C-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800D-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800D-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800D-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800D-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800E-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800E-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800E-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800E-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800F-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800F-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800F-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-800F-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8010-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8010-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8010-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8010-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8011-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8011-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8011-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8011-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8012-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8012-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8012-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8012-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8013-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8013-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8013-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8013-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8014-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8014-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8014-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8014-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8015-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8015-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8015-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8015-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8016-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8016-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8016-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8016-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8017-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8017-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8017-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8017-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8018-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8018-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8018-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8018-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8019-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8019-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8019-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-8019-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801A-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801A-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801A-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801A-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801B-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801B-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801B-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801B-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801C-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801C-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801C-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801C-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801D-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801D-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801D-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801D-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801E-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801E-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801E-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801E-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801F-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801F-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801F-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF2-801F-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8000-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8000-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8000-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8000-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8001-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8001-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8001-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8001-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8002-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8002-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8002-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8002-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8003-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8003-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8003-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8003-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8004-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8004-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8004-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8004-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8005-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8005-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8005-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8005-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8006-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8006-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8006-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8006-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8007-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8007-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8007-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8007-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8008-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8008-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8008-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8008-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8009-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8009-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8009-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8009-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800A-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800A-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800A-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800A-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800B-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800B-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800B-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800B-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800C-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800C-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800C-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800C-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800D-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800D-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800D-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800D-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800E-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800E-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800E-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800E-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800F-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800F-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800F-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-800F-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8010-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8010-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8010-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8010-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8011-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8011-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8011-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8011-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8012-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8012-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8012-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8012-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8013-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8013-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8013-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8013-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8014-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8014-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8014-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8014-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8015-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8015-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8015-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8015-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8016-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8016-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8016-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8016-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8017-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8017-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8017-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8017-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8018-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8018-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8018-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8018-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8019-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8019-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8019-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-8019-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801A-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801A-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801A-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801A-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801B-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801B-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801B-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801B-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801C-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801C-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801C-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801C-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801D-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801D-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801D-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801D-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801E-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801E-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801E-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801E-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801F-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801F-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801F-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-DAC-FFF3-801F-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-PAI-FFF1-noPID-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-PAI-FFF1-noPID-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-PAI-FFF2-noPID-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-PAI-FFF2-noPID-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-PAI-FFF2-noPID-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-PAI-FFF2-noPID-Key.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-PAI-FFF3-noPID-Cert.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-PAI-FFF3-noPID-Cert.pem (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-PAI-FFF3-noPID-Key.der (100%) rename {Credentials => credentials}/development/attestation/Matter-Development-PAI-FFF3-noPID-Key.pem (100%) diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8000-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8000-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8000-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8000-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8000-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8000-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8000-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8000-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8000-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8000-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8000-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8000-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8000-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8000-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8000-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8000-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8001-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8001-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8001-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8001-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8001-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8001-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8001-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8001-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8001-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8001-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8001-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8001-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8001-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8001-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8001-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8001-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8002-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8002-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8002-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8002-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8002-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8002-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8002-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8002-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8002-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8002-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8002-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8002-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8002-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8002-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8002-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8002-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8003-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8003-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8003-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8003-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8003-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8003-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8003-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8003-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8003-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8003-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8003-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8003-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8003-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8003-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8003-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8003-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8004-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8004-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8004-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8004-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8004-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8004-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8004-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8004-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8004-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8004-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8004-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8004-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8004-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8004-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8004-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8004-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8005-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8005-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8005-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8005-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8005-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8005-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8005-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8005-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8005-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8005-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8005-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8005-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8005-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8005-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8005-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8005-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8006-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8006-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8006-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8006-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8006-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8006-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8006-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8006-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8006-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8006-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8006-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8006-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8006-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8006-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8006-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8006-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8007-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8007-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8007-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8007-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8007-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8007-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8007-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8007-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8007-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8007-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8007-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8007-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8007-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8007-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8007-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8007-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8008-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8008-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8008-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8008-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8008-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8008-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8008-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8008-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8008-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8008-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8008-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8008-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8008-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8008-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8008-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8008-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8009-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8009-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8009-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8009-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8009-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8009-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8009-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8009-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8009-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8009-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8009-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8009-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8009-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8009-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8009-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8009-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800A-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-800A-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800A-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800A-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800A-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-800A-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800A-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800A-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800A-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-800A-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800A-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800A-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800A-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-800A-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800A-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800A-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800B-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-800B-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800B-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800B-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800B-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-800B-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800B-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800B-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800B-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-800B-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800B-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800B-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800B-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-800B-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800B-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800B-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800C-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-800C-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800C-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800C-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800C-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-800C-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800C-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800C-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800C-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-800C-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800C-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800C-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800C-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-800C-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800C-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800C-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800D-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-800D-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800D-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800D-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800D-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-800D-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800D-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800D-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800D-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-800D-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800D-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800D-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800D-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-800D-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800D-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800D-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800E-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-800E-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800E-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800E-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800E-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-800E-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800E-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800E-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800E-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-800E-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800E-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800E-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800E-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-800E-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800E-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800E-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800F-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-800F-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800F-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800F-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800F-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-800F-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800F-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800F-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800F-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-800F-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800F-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800F-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-800F-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-800F-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-800F-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-800F-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8010-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8010-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8010-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8010-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8010-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8010-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8010-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8010-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8010-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8010-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8010-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8010-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8010-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8010-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8010-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8010-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8011-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8011-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8011-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8011-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8011-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8011-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8011-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8011-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8011-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8011-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8011-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8011-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8011-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8011-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8011-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8011-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8012-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8012-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8012-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8012-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8012-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8012-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8012-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8012-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8012-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8012-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8012-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8012-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8012-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8012-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8012-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8012-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8013-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8013-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8013-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8013-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8013-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8013-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8013-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8013-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8013-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8013-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8013-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8013-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8013-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8013-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8013-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8013-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8014-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8014-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8014-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8014-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8014-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8014-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8014-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8014-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8014-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8014-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8014-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8014-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8014-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8014-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8014-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8014-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8015-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8015-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8015-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8015-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8015-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8015-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8015-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8015-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8015-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8015-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8015-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8015-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8015-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8015-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8015-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8015-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8016-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8016-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8016-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8016-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8016-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8016-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8016-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8016-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8016-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8016-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8016-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8016-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8016-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8016-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8016-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8016-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8017-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8017-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8017-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8017-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8017-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8017-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8017-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8017-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8017-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8017-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8017-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8017-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8017-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8017-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8017-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8017-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8018-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8018-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8018-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8018-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8018-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8018-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8018-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8018-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8018-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8018-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8018-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8018-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8018-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8018-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8018-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8018-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8019-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8019-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8019-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8019-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8019-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8019-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8019-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8019-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8019-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-8019-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8019-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8019-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-8019-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-8019-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-8019-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-8019-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801A-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-801A-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801A-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801A-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801A-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-801A-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801A-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801A-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801A-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-801A-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801A-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801A-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801A-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-801A-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801A-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801A-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801B-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-801B-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801B-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801B-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801B-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-801B-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801B-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801B-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801B-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-801B-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801B-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801B-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801B-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-801B-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801B-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801B-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801C-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-801C-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801C-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801C-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801C-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-801C-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801C-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801C-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801C-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-801C-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801C-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801C-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801C-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-801C-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801C-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801C-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801D-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-801D-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801D-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801D-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801D-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-801D-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801D-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801D-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801D-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-801D-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801D-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801D-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801D-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-801D-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801D-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801D-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801E-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-801E-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801E-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801E-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801E-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-801E-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801E-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801E-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801E-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-801E-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801E-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801E-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801E-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-801E-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801E-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801E-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801F-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-801F-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801F-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801F-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801F-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-801F-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801F-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801F-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801F-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF2-801F-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801F-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801F-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF2-801F-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF2-801F-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF2-801F-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF2-801F-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8000-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8000-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8000-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8000-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8000-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8000-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8000-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8000-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8000-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8000-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8000-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8000-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8000-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8000-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8000-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8000-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8001-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8001-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8001-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8001-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8001-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8001-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8001-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8001-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8001-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8001-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8001-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8001-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8001-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8001-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8001-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8001-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8002-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8002-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8002-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8002-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8002-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8002-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8002-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8002-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8002-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8002-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8002-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8002-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8002-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8002-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8002-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8002-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8003-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8003-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8003-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8003-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8003-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8003-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8003-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8003-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8003-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8003-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8003-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8003-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8003-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8003-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8003-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8003-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8004-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8004-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8004-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8004-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8004-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8004-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8004-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8004-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8004-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8004-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8004-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8004-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8004-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8004-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8004-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8004-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8005-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8005-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8005-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8005-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8005-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8005-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8005-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8005-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8005-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8005-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8005-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8005-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8005-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8005-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8005-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8005-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8006-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8006-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8006-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8006-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8006-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8006-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8006-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8006-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8006-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8006-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8006-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8006-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8006-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8006-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8006-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8006-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8007-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8007-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8007-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8007-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8007-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8007-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8007-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8007-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8007-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8007-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8007-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8007-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8007-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8007-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8007-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8007-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8008-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8008-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8008-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8008-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8008-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8008-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8008-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8008-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8008-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8008-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8008-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8008-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8008-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8008-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8008-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8008-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8009-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8009-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8009-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8009-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8009-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8009-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8009-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8009-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8009-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8009-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8009-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8009-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8009-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8009-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8009-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8009-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800A-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-800A-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800A-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800A-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800A-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-800A-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800A-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800A-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800A-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-800A-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800A-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800A-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800A-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-800A-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800A-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800A-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800B-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-800B-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800B-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800B-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800B-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-800B-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800B-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800B-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800B-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-800B-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800B-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800B-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800B-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-800B-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800B-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800B-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800C-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-800C-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800C-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800C-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800C-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-800C-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800C-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800C-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800C-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-800C-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800C-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800C-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800C-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-800C-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800C-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800C-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800D-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-800D-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800D-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800D-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800D-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-800D-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800D-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800D-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800D-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-800D-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800D-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800D-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800D-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-800D-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800D-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800D-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800E-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-800E-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800E-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800E-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800E-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-800E-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800E-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800E-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800E-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-800E-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800E-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800E-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800E-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-800E-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800E-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800E-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800F-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-800F-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800F-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800F-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800F-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-800F-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800F-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800F-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800F-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-800F-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800F-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800F-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-800F-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-800F-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-800F-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-800F-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8010-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8010-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8010-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8010-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8010-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8010-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8010-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8010-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8010-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8010-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8010-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8010-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8010-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8010-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8010-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8010-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8011-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8011-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8011-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8011-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8011-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8011-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8011-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8011-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8011-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8011-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8011-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8011-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8011-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8011-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8011-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8011-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8012-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8012-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8012-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8012-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8012-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8012-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8012-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8012-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8012-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8012-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8012-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8012-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8012-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8012-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8012-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8012-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8013-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8013-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8013-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8013-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8013-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8013-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8013-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8013-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8013-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8013-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8013-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8013-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8013-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8013-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8013-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8013-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8014-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8014-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8014-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8014-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8014-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8014-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8014-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8014-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8014-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8014-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8014-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8014-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8014-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8014-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8014-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8014-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8015-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8015-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8015-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8015-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8015-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8015-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8015-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8015-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8015-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8015-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8015-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8015-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8015-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8015-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8015-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8015-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8016-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8016-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8016-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8016-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8016-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8016-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8016-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8016-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8016-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8016-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8016-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8016-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8016-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8016-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8016-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8016-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8017-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8017-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8017-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8017-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8017-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8017-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8017-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8017-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8017-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8017-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8017-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8017-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8017-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8017-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8017-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8017-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8018-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8018-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8018-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8018-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8018-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8018-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8018-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8018-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8018-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8018-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8018-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8018-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8018-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8018-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8018-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8018-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8019-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8019-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8019-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8019-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8019-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8019-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8019-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8019-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8019-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-8019-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8019-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8019-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-8019-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-8019-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-8019-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-8019-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801A-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-801A-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801A-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801A-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801A-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-801A-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801A-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801A-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801A-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-801A-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801A-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801A-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801A-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-801A-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801A-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801A-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801B-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-801B-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801B-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801B-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801B-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-801B-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801B-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801B-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801B-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-801B-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801B-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801B-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801B-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-801B-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801B-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801B-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801C-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-801C-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801C-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801C-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801C-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-801C-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801C-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801C-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801C-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-801C-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801C-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801C-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801C-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-801C-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801C-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801C-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801D-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-801D-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801D-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801D-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801D-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-801D-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801D-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801D-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801D-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-801D-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801D-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801D-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801D-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-801D-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801D-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801D-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801E-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-801E-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801E-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801E-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801E-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-801E-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801E-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801E-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801E-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-801E-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801E-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801E-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801E-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-801E-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801E-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801E-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801F-Cert.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-801F-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801F-Cert.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801F-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801F-Cert.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-801F-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801F-Cert.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801F-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801F-Key.der b/credentials/development/attestation/Matter-Development-DAC-FFF3-801F-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801F-Key.der rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801F-Key.der diff --git a/Credentials/development/attestation/Matter-Development-DAC-FFF3-801F-Key.pem b/credentials/development/attestation/Matter-Development-DAC-FFF3-801F-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-DAC-FFF3-801F-Key.pem rename to credentials/development/attestation/Matter-Development-DAC-FFF3-801F-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-PAI-FFF1-noPID-Cert.der b/credentials/development/attestation/Matter-Development-PAI-FFF1-noPID-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-PAI-FFF1-noPID-Cert.der rename to credentials/development/attestation/Matter-Development-PAI-FFF1-noPID-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-PAI-FFF1-noPID-Key.der b/credentials/development/attestation/Matter-Development-PAI-FFF1-noPID-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-PAI-FFF1-noPID-Key.der rename to credentials/development/attestation/Matter-Development-PAI-FFF1-noPID-Key.der diff --git a/Credentials/development/attestation/Matter-Development-PAI-FFF2-noPID-Cert.der b/credentials/development/attestation/Matter-Development-PAI-FFF2-noPID-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-PAI-FFF2-noPID-Cert.der rename to credentials/development/attestation/Matter-Development-PAI-FFF2-noPID-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-PAI-FFF2-noPID-Cert.pem b/credentials/development/attestation/Matter-Development-PAI-FFF2-noPID-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-PAI-FFF2-noPID-Cert.pem rename to credentials/development/attestation/Matter-Development-PAI-FFF2-noPID-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-PAI-FFF2-noPID-Key.der b/credentials/development/attestation/Matter-Development-PAI-FFF2-noPID-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-PAI-FFF2-noPID-Key.der rename to credentials/development/attestation/Matter-Development-PAI-FFF2-noPID-Key.der diff --git a/Credentials/development/attestation/Matter-Development-PAI-FFF2-noPID-Key.pem b/credentials/development/attestation/Matter-Development-PAI-FFF2-noPID-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-PAI-FFF2-noPID-Key.pem rename to credentials/development/attestation/Matter-Development-PAI-FFF2-noPID-Key.pem diff --git a/Credentials/development/attestation/Matter-Development-PAI-FFF3-noPID-Cert.der b/credentials/development/attestation/Matter-Development-PAI-FFF3-noPID-Cert.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-PAI-FFF3-noPID-Cert.der rename to credentials/development/attestation/Matter-Development-PAI-FFF3-noPID-Cert.der diff --git a/Credentials/development/attestation/Matter-Development-PAI-FFF3-noPID-Cert.pem b/credentials/development/attestation/Matter-Development-PAI-FFF3-noPID-Cert.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-PAI-FFF3-noPID-Cert.pem rename to credentials/development/attestation/Matter-Development-PAI-FFF3-noPID-Cert.pem diff --git a/Credentials/development/attestation/Matter-Development-PAI-FFF3-noPID-Key.der b/credentials/development/attestation/Matter-Development-PAI-FFF3-noPID-Key.der similarity index 100% rename from Credentials/development/attestation/Matter-Development-PAI-FFF3-noPID-Key.der rename to credentials/development/attestation/Matter-Development-PAI-FFF3-noPID-Key.der diff --git a/Credentials/development/attestation/Matter-Development-PAI-FFF3-noPID-Key.pem b/credentials/development/attestation/Matter-Development-PAI-FFF3-noPID-Key.pem similarity index 100% rename from Credentials/development/attestation/Matter-Development-PAI-FFF3-noPID-Key.pem rename to credentials/development/attestation/Matter-Development-PAI-FFF3-noPID-Key.pem From 2ea67464ee56a2f930799137ad7f718b06138909 Mon Sep 17 00:00:00 2001 From: Joshua Villasenor Date: Wed, 22 Mar 2023 11:05:47 -0700 Subject: [PATCH 02/10] Remove additional directory path. (#25772) --- integrations/docker/images/chip-cert-bins/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integrations/docker/images/chip-cert-bins/Dockerfile b/integrations/docker/images/chip-cert-bins/Dockerfile index 215cf49e59a58c..c361a85cae38d2 100644 --- a/integrations/docker/images/chip-cert-bins/Dockerfile +++ b/integrations/docker/images/chip-cert-bins/Dockerfile @@ -299,7 +299,7 @@ COPY --from=chip-build-cert-bins /root/connectedhomeip/out/thermostat-app thermo COPY --from=chip-build-cert-bins /root/connectedhomeip/out/chip-ota-provider-app chip-ota-provider-app COPY --from=chip-build-cert-bins /root/connectedhomeip/out/chip-ota-requestor-app chip-ota-requestor-app COPY --from=chip-build-cert-bins /root/connectedhomeip/out/chip-lock-app chip-lock-app -COPY --from=chip-build-cert-bins /root/connectedhomeip/out/app1/chip-app1 chip-app1 +COPY --from=chip-build-cert-bins /root/connectedhomeip/out/chip-app1 chip-app1 # Stage 3.1 Setup the Matter Python environment COPY --from=chip-build-cert-bins /root/connectedhomeip/out/python_lib python_lib From b388c3669ca7fb336591102926e8b3f298b3275a Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Wed, 22 Mar 2023 16:10:54 -0400 Subject: [PATCH 03/10] Fix failsafe extension when we have a device attestation delegate. (#25787) The boolean test in ExtendArmFailSafeForDeviceAttestation was backwards, so there were two failure cases: 1. If we had a delegate but FailSafeExpiryTimeoutSecs() returned NullOptional, we would skip extending the fail-safe (expected), but set failSafeSkipped to _false_, and so not actually make our "continue commissioning" callback. 2. If we had a delegate and FailSafeExpiryTimeoutSecs() returned a too-small value, we would also skip resetting the fail-safe, but end up setting failSafeSkipped to false, and hence again failing to make our "continue commissioning" callback. The fix is to reverse the sense of the "do we need to call back immediately" boolean, to make it a little clearer what the logic flow is here, and then check it appropriately. --- .../commands/pairing/PairingCommandBridge.h | 8 + .../commands/pairing/PairingCommandBridge.mm | 23 ++ src/controller/CHIPDeviceController.cpp | 10 +- .../CHIPTests/MTRBackwardsCompatTests.m | 55 +--- .../Framework/CHIPTests/MTRDeviceTests.m | 55 +--- .../Framework/CHIPTests/MTRPairingTests.m | 258 ++++++++++++++++++ .../MTRTestResetCommissioneeHelper.h | 23 ++ .../MTRTestResetCommissioneeHelper.m | 70 +++++ .../CHIPTests/MTRXPCListenerSampleTests.m | 56 +--- .../Matter.xcodeproj/project.pbxproj | 10 + 10 files changed, 404 insertions(+), 164 deletions(-) create mode 100644 src/darwin/Framework/CHIPTests/MTRPairingTests.m create mode 100644 src/darwin/Framework/CHIPTests/MTRTestResetCommissioneeHelper.h create mode 100644 src/darwin/Framework/CHIPTests/MTRTestResetCommissioneeHelper.m diff --git a/examples/darwin-framework-tool/commands/pairing/PairingCommandBridge.h b/examples/darwin-framework-tool/commands/pairing/PairingCommandBridge.h index 1b098adba25937..d1cdc4b6efecc5 100644 --- a/examples/darwin-framework-tool/commands/pairing/PairingCommandBridge.h +++ b/examples/darwin-framework-tool/commands/pairing/PairingCommandBridge.h @@ -68,6 +68,12 @@ class PairingCommandBridge : public CHIPCommandBridge AddArgument("discriminator", 0, 4096, &mDiscriminator); break; } + + AddArgument("use-device-attestation-delegate", 0, 1, &mUseDeviceAttestationDelegate, + "If true, use a device attestation delegate that always wants to be notified about attestation results. " + "Defaults to false."); + AddArgument("device-attestation-failsafe-time", 0, UINT16_MAX, &mDeviceAttestationFailsafeTime, + "If set, the time to extend the failsafe to before calling the device attestation delegate"); } /////////// CHIPCommandBridge Interface ///////// @@ -89,4 +95,6 @@ class PairingCommandBridge : public CHIPCommandBridge uint16_t mDiscriminator; uint32_t mSetupPINCode; char * mOnboardingPayload; + chip::Optional mUseDeviceAttestationDelegate; + chip::Optional mDeviceAttestationFailsafeTime; }; diff --git a/examples/darwin-framework-tool/commands/pairing/PairingCommandBridge.mm b/examples/darwin-framework-tool/commands/pairing/PairingCommandBridge.mm index beb8cfcec08327..a8efcc2a44635b 100644 --- a/examples/darwin-framework-tool/commands/pairing/PairingCommandBridge.mm +++ b/examples/darwin-framework-tool/commands/pairing/PairingCommandBridge.mm @@ -28,6 +28,22 @@ using namespace ::chip; using namespace ::chip::Controller; +// A no-op MTRDeviceAttestationDelegate which lets us test (by default, in CI) +// commissioning flows that have such a delegate. +@interface NoOpAttestationDelegate : NSObject +@end + +@implementation NoOpAttestationDelegate +- (void)deviceAttestationCompletedForController:(MTRDeviceController *)controller + opaqueDeviceHandle:(void *)opaqueDeviceHandle + attestationDeviceInfo:(MTRDeviceAttestationDeviceInfo *)attestationDeviceInfo + error:(NSError * _Nullable)error +{ + [controller continueCommissioningDevice:opaqueDeviceHandle ignoreAttestationFailure:NO error:nil]; +} + +@end + void PairingCommandBridge::SetUpDeviceControllerDelegate() { dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.pairing", DISPATCH_QUEUE_SERIAL); @@ -49,6 +65,13 @@ break; } + if (mUseDeviceAttestationDelegate.ValueOr(false)) { + params.deviceAttestationDelegate = [[NoOpAttestationDelegate alloc] init]; + if (mDeviceAttestationFailsafeTime.HasValue()) { + params.failSafeTimeout = @(mDeviceAttestationFailsafeTime.Value()); + } + } + [deviceControllerDelegate setCommandBridge:this]; [deviceControllerDelegate setParams:params]; [deviceControllerDelegate setCommissioner:commissioner]; diff --git a/src/controller/CHIPDeviceController.cpp b/src/controller/CHIPDeviceController.cpp index cce4684029169e..dd776940654462 100644 --- a/src/controller/CHIPDeviceController.cpp +++ b/src/controller/CHIPDeviceController.cpp @@ -1186,14 +1186,14 @@ void DeviceCommissioner::ExtendArmFailSafeForDeviceAttestation(const Credentials mAttestationDeviceInfo = Platform::MakeUnique(info); - auto expiryLengthSeconds = deviceAttestationDelegate->FailSafeExpiryTimeoutSecs(); - bool failSafeSkipped = expiryLengthSeconds.HasValue(); - if (failSafeSkipped) + auto expiryLengthSeconds = deviceAttestationDelegate->FailSafeExpiryTimeoutSecs(); + bool waitForFailsafeExtension = expiryLengthSeconds.HasValue(); + if (waitForFailsafeExtension) { ChipLogProgress(Controller, "Changing fail-safe timer to %u seconds to handle DA failure", expiryLengthSeconds.Value()); // Per spec, anything we do with the fail-safe armed must not time out // in less than kMinimumCommissioningStepTimeout. - failSafeSkipped = + waitForFailsafeExtension = ExtendArmFailSafe(mDeviceBeingCommissioned, mCommissioningStage, expiryLengthSeconds.Value(), MakeOptional(kMinimumCommissioningStepTimeout), OnArmFailSafeExtendedForDeviceAttestation, OnFailedToExtendedArmFailSafeDeviceAttestation); @@ -1203,7 +1203,7 @@ void DeviceCommissioner::ExtendArmFailSafeForDeviceAttestation(const Credentials ChipLogProgress(Controller, "Proceeding without changing fail-safe timer value as delegate has not set it"); } - if (failSafeSkipped) + if (!waitForFailsafeExtension) { // Callee does not use data argument. const GeneralCommissioning::Commands::ArmFailSafeResponse::DecodableType data; diff --git a/src/darwin/Framework/CHIPTests/MTRBackwardsCompatTests.m b/src/darwin/Framework/CHIPTests/MTRBackwardsCompatTests.m index 87493502d195e2..7d336bde2e6075 100644 --- a/src/darwin/Framework/CHIPTests/MTRBackwardsCompatTests.m +++ b/src/darwin/Framework/CHIPTests/MTRBackwardsCompatTests.m @@ -20,6 +20,7 @@ #import "MTRErrorTestUtils.h" #import "MTRTestKeys.h" +#import "MTRTestResetCommissioneeHelper.h" #import "MTRTestStorage.h" #import @@ -1179,59 +1180,7 @@ - (void)test046_MTRThreadOperationalDataset #if !MANUAL_INDIVIDUAL_TEST - (void)test999_TearDown { - // Put the device back in the state we found it: open commissioning window, no fabrics commissioned. - MTRBaseDevice * device = GetConnectedDevice(); - dispatch_queue_t queue = dispatch_get_main_queue(); - - // Get our current fabric index, for later deletion. - XCTestExpectation * readFabricIndexExpectation = [self expectationWithDescription:@"Fabric index read"]; - - __block NSNumber * fabricIndex; - __auto_type * opCredsCluster = [[MTRBaseClusterOperationalCredentials alloc] initWithDevice:device endpoint:0 queue:queue]; - [opCredsCluster - readAttributeCurrentFabricIndexWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable readError) { - XCTAssertNil(readError); - XCTAssertNotNil(value); - fabricIndex = value; - [readFabricIndexExpectation fulfill]; - }]; - - [self waitForExpectations:@[ readFabricIndexExpectation ] timeout:kTimeoutInSeconds]; - - // Open a commissioning window. - XCTestExpectation * openCommissioningWindowExpectation = [self expectationWithDescription:@"Commissioning window opened"]; - - __auto_type * adminCommissioningCluster = [[MTRBaseClusterAdministratorCommissioning alloc] initWithDevice:device - endpoint:0 - queue:queue]; - __auto_type * openWindowParams = [[MTRAdministratorCommissioningClusterOpenBasicCommissioningWindowParams alloc] init]; - openWindowParams.commissioningTimeout = @(900); - openWindowParams.timedInvokeTimeoutMs = @(50000); - [adminCommissioningCluster openBasicCommissioningWindowWithParams:openWindowParams - completionHandler:^(NSError * _Nullable error) { - XCTAssertNil(error); - [openCommissioningWindowExpectation fulfill]; - }]; - - [self waitForExpectations:@[ openCommissioningWindowExpectation ] timeout:kTimeoutInSeconds]; - - // Remove our fabric from the device. - XCTestExpectation * removeFabricExpectation = [self expectationWithDescription:@"Fabric removed"]; - - __auto_type * removeParams = [[MTROperationalCredentialsClusterRemoveFabricParams alloc] init]; - removeParams.fabricIndex = fabricIndex; - - [opCredsCluster removeFabricWithParams:removeParams - completionHandler:^( - MTROperationalCredentialsClusterNOCResponseParams * _Nullable data, NSError * _Nullable removeError) { - XCTAssertNil(removeError); - XCTAssertNotNil(data); - XCTAssertEqualObjects(data.statusCode, @(0)); - [removeFabricExpectation fulfill]; - }]; - - [self waitForExpectations:@[ removeFabricExpectation ] timeout:kTimeoutInSeconds]; - + ResetCommissionee(GetConnectedDevice(), dispatch_get_main_queue(), self, kTimeoutInSeconds); [self shutdownStack]; } #endif diff --git a/src/darwin/Framework/CHIPTests/MTRDeviceTests.m b/src/darwin/Framework/CHIPTests/MTRDeviceTests.m index e529f9f3e55cb5..ff6841bad8bd82 100644 --- a/src/darwin/Framework/CHIPTests/MTRDeviceTests.m +++ b/src/darwin/Framework/CHIPTests/MTRDeviceTests.m @@ -26,6 +26,7 @@ #import "MTRErrorTestUtils.h" #import "MTRTestKeys.h" +#import "MTRTestResetCommissioneeHelper.h" #import "MTRTestStorage.h" #import @@ -1819,59 +1820,7 @@ - (void)test900_SubscribeAllAttributes #if !MANUAL_INDIVIDUAL_TEST - (void)test999_TearDown { - // Put the device back in the state we found it: open commissioning window, no fabrics commissioned. - MTRBaseDevice * device = GetConnectedDevice(); - dispatch_queue_t queue = dispatch_get_main_queue(); - - // Get our current fabric index, for later deletion. - XCTestExpectation * readFabricIndexExpectation = [self expectationWithDescription:@"Fabric index read"]; - - __block NSNumber * fabricIndex; - __auto_type * opCredsCluster = [[MTRBaseClusterOperationalCredentials alloc] initWithDevice:device endpointID:@(0) queue:queue]; - [opCredsCluster - readAttributeCurrentFabricIndexWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable readError) { - XCTAssertNil(readError); - XCTAssertNotNil(value); - fabricIndex = value; - [readFabricIndexExpectation fulfill]; - }]; - - [self waitForExpectations:@[ readFabricIndexExpectation ] timeout:kTimeoutInSeconds]; - - // Open a commissioning window. - XCTestExpectation * openCommissioningWindowExpectation = [self expectationWithDescription:@"Commissioning window opened"]; - - __auto_type * adminCommissioningCluster = [[MTRBaseClusterAdministratorCommissioning alloc] initWithDevice:device - endpointID:@(0) - queue:queue]; - __auto_type * openWindowParams = [[MTRAdministratorCommissioningClusterOpenBasicCommissioningWindowParams alloc] init]; - openWindowParams.commissioningTimeout = @(900); - openWindowParams.timedInvokeTimeoutMs = @(50000); - [adminCommissioningCluster openBasicCommissioningWindowWithParams:openWindowParams - completionHandler:^(NSError * _Nullable error) { - XCTAssertNil(error); - [openCommissioningWindowExpectation fulfill]; - }]; - - [self waitForExpectations:@[ openCommissioningWindowExpectation ] timeout:kTimeoutInSeconds]; - - // Remove our fabric from the device. - XCTestExpectation * removeFabricExpectation = [self expectationWithDescription:@"Fabric removed"]; - - __auto_type * removeParams = [[MTROperationalCredentialsClusterRemoveFabricParams alloc] init]; - removeParams.fabricIndex = fabricIndex; - - [opCredsCluster removeFabricWithParams:removeParams - completionHandler:^( - MTROperationalCredentialsClusterNOCResponseParams * _Nullable data, NSError * _Nullable removeError) { - XCTAssertNil(removeError); - XCTAssertNotNil(data); - XCTAssertEqualObjects(data.statusCode, @(0)); - [removeFabricExpectation fulfill]; - }]; - - [self waitForExpectations:@[ removeFabricExpectation ] timeout:kTimeoutInSeconds]; - + ResetCommissionee(GetConnectedDevice(), dispatch_get_main_queue(), self, kTimeoutInSeconds); [self shutdownStack]; } #endif diff --git a/src/darwin/Framework/CHIPTests/MTRPairingTests.m b/src/darwin/Framework/CHIPTests/MTRPairingTests.m new file mode 100644 index 00000000000000..f2d59c67d58319 --- /dev/null +++ b/src/darwin/Framework/CHIPTests/MTRPairingTests.m @@ -0,0 +1,258 @@ +/* + * + * Copyright (c) 2022 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// module headers +#import + +#import "MTRErrorTestUtils.h" +#import "MTRTestKeys.h" +#import "MTRTestResetCommissioneeHelper.h" +#import "MTRTestStorage.h" + +// system dependencies +#import + +// Set the following to 1 in order to run individual test case manually. +#define MANUAL_INDIVIDUAL_TEST 0 + +static const uint16_t kPairingTimeoutInSeconds = 10; +static const uint16_t kTimeoutInSeconds = 3; +static uint64_t sDeviceId = 0x12344321; +static NSString * kOnboardingPayload = @"MT:-24J0AFN00KA0648G00"; +static const uint16_t kLocalPort = 5541; +static const uint16_t kTestVendorId = 0xFFF1u; + +// Singleton controller we use. +static MTRDeviceController * sController = nil; + +// Keys we can use to restart the controller. +static MTRTestKeys * sTestKeys = nil; + +// A no-op MTRDeviceAttestationDelegate which lets us test (by default, in CI) +// commissioning flows that have such a delegate. +@interface NoOpAttestationDelegate : NSObject +@property (nonatomic) XCTestExpectation * expectation; + +- (instancetype)initWithExpectation:(XCTestExpectation *)expectation; +@end + +@implementation NoOpAttestationDelegate +- (instancetype)initWithExpectation:(XCTestExpectation *)expectation +{ + if (!(self = [super init])) { + return nil; + } + + _expectation = expectation; + return self; +} + +- (void)deviceAttestationCompletedForController:(MTRDeviceController *)controller + opaqueDeviceHandle:(void *)opaqueDeviceHandle + attestationDeviceInfo:(MTRDeviceAttestationDeviceInfo *)attestationDeviceInfo + error:(NSError * _Nullable)error +{ + [self.expectation fulfill]; + [controller continueCommissioningDevice:opaqueDeviceHandle ignoreAttestationFailure:NO error:nil]; +} + +@end + +@interface MTRPairingTestPairingDelegate : NSObject +@property (nonatomic, strong) XCTestExpectation * expectation; +@property (nonatomic, nullable) id attestationDelegate; +@property (nonatomic, nullable) NSNumber * failSafeExtension; +@end + +@implementation MTRPairingTestPairingDelegate +- (id)initWithExpectation:(XCTestExpectation *)expectation + attestationDelegate:(id)attestationDelegate + failSafeExtension:(NSNumber *)failSafeExtension +{ + self = [super init]; + if (self) { + _expectation = expectation; + _attestationDelegate = attestationDelegate; + _failSafeExtension = failSafeExtension; + } + return self; +} + +- (void)onPairingComplete:(NSError *)error +{ + XCTAssertEqual(error.code, 0); + + __auto_type * params = [[MTRCommissioningParameters alloc] init]; + params.deviceAttestationDelegate = self.attestationDelegate; + params.failSafeTimeout = self.failSafeExtension; + + NSError * commissionError = nil; + [sController commissionDevice:sDeviceId commissioningParams:params error:&commissionError]; + XCTAssertNil(commissionError); + + // Keep waiting for onCommissioningComplete +} + +- (void)onCommissioningComplete:(NSError *)error +{ + XCTAssertEqual(error.code, 0); + [_expectation fulfill]; + _expectation = nil; +} + +@end + +// attestationDelegate and failSafeExtension can both be nil +static void DoPairingTest(XCTestCase * testcase, id attestationDelegate, NSNumber * failSafeExtension) +{ + // Don't reuse node ids, because that will confuse us. + ++sDeviceId; + XCTestExpectation * expectation = [testcase expectationWithDescription:@"Pairing Complete"]; + __auto_type * controller = sController; + + __auto_type * pairing = [[MTRPairingTestPairingDelegate alloc] initWithExpectation:expectation + attestationDelegate:attestationDelegate + failSafeExtension:failSafeExtension]; + dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.pairing", DISPATCH_QUEUE_SERIAL); + + [controller setPairingDelegate:pairing queue:callbackQueue]; + + NSError * error; + __auto_type * payload = [MTRSetupPayload setupPayloadWithOnboardingPayload:kOnboardingPayload error:&error]; + XCTAssertNotNil(payload); + XCTAssertNil(error); + + [controller setupCommissioningSessionWithPayload:payload newNodeID:@(sDeviceId) error:&error]; + XCTAssertNil(error); + + [testcase waitForExpectations:@[ expectation ] timeout:kPairingTimeoutInSeconds]; + + ResetCommissionee([MTRBaseDevice deviceWithNodeID:@(sDeviceId) controller:controller], dispatch_get_main_queue(), testcase, + kTimeoutInSeconds); +} + +@interface MTRPairingTests : XCTestCase +@end + +@implementation MTRPairingTests + +- (void)setUp +{ + [super setUp]; + [self setContinueAfterFailure:NO]; +} + +- (void)tearDown +{ +#if MANUAL_INDIVIDUAL_TEST + [self shutdownStack]; +#endif + [super tearDown]; +} + +- (void)initStack +{ + __auto_type * factory = [MTRControllerFactory sharedInstance]; + XCTAssertNotNil(factory); + + __auto_type * storage = [[MTRTestStorage alloc] init]; + __auto_type * factoryParams = [[MTRControllerFactoryParams alloc] initWithStorage:storage]; + factoryParams.port = @(kLocalPort); + + BOOL ok = [factory startup:factoryParams]; + XCTAssertTrue(ok); + + __auto_type * testKeys = [[MTRTestKeys alloc] init]; + XCTAssertNotNil(testKeys); + + sTestKeys = testKeys; + + // Needs to match what startControllerOnExistingFabric calls elsewhere in + // this file do. + __auto_type * params = [[MTRDeviceControllerStartupParams alloc] initWithSigningKeypair:testKeys fabricId:1 ipk:testKeys.ipk]; + params.vendorId = @(kTestVendorId); + + MTRDeviceController * controller = [factory startControllerOnNewFabric:params]; + XCTAssertNotNil(controller); + + sController = controller; +} + +- (void)shutdownStack +{ + MTRDeviceController * controller = sController; + XCTAssertNotNil(controller); + + [controller shutdown]; + XCTAssertFalse([controller isRunning]); + + [[MTRControllerFactory sharedInstance] shutdown]; +} + +#if !MANUAL_INDIVIDUAL_TEST +- (void)test000_SetUp +{ + [self initStack]; +} +#endif + +- (void)test001_PairWithoutAttestationDelegate +{ + DoPairingTest(self, nil, nil); +} + +- (void)test002_PairWithAttestationDelegateNoFailsafeExtension +{ + XCTestExpectation * expectation = [self expectationWithDescription:@"Attestation delegate called"]; + + DoPairingTest(self, [[NoOpAttestationDelegate alloc] initWithExpectation:expectation], nil); + + [self waitForExpectations:@[ expectation ] timeout:kTimeoutInSeconds]; +} + +- (void)test003_PairWithAttestationDelegateFailsafeExtensionShort +{ + XCTestExpectation * expectation = [self expectationWithDescription:@"Attestation delegate called"]; + + // Extend by a time that is going to be smaller than the 60s default we + // already have set via CHIP_DEVICE_CONFIG_FAILSAFE_EXPIRY_LENGTH_SEC on the + // server side, minus whatever time that has likely passed. + DoPairingTest(self, [[NoOpAttestationDelegate alloc] initWithExpectation:expectation], @(30)); + + [self waitForExpectations:@[ expectation ] timeout:kTimeoutInSeconds]; +} + +- (void)test004_PairWithAttestationDelegateFailsafeExtensionLong +{ + XCTestExpectation * expectation = [self expectationWithDescription:@"Attestation delegate called"]; + + // Extend by a time that is going to be larger than the 60s default we + // already have set via CHIP_DEVICE_CONFIG_FAILSAFE_EXPIRY_LENGTH_SEC on the + // server side. + DoPairingTest(self, [[NoOpAttestationDelegate alloc] initWithExpectation:expectation], @(90)); + + [self waitForExpectations:@[ expectation ] timeout:kTimeoutInSeconds]; +} + +#if !MANUAL_INDIVIDUAL_TEST +- (void)test999_TearDown +{ + [self shutdownStack]; +} +#endif + +@end diff --git a/src/darwin/Framework/CHIPTests/MTRTestResetCommissioneeHelper.h b/src/darwin/Framework/CHIPTests/MTRTestResetCommissioneeHelper.h new file mode 100644 index 00000000000000..14e4172c45f91c --- /dev/null +++ b/src/darwin/Framework/CHIPTests/MTRTestResetCommissioneeHelper.h @@ -0,0 +1,23 @@ +/** + * Copyright (c) 2023 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import +#import +#import + +#pragma once + +void ResetCommissionee(MTRBaseDevice * device, dispatch_queue_t queue, XCTestCase * testcase, uint16_t commandTimeout); diff --git a/src/darwin/Framework/CHIPTests/MTRTestResetCommissioneeHelper.m b/src/darwin/Framework/CHIPTests/MTRTestResetCommissioneeHelper.m new file mode 100644 index 00000000000000..25ec161420bcfe --- /dev/null +++ b/src/darwin/Framework/CHIPTests/MTRTestResetCommissioneeHelper.m @@ -0,0 +1,70 @@ +/** + * Copyright (c) 2023 Project CHIP Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "MTRTestResetCommissioneeHelper.h" + +void ResetCommissionee(MTRBaseDevice * device, dispatch_queue_t queue, XCTestCase * testcase, uint16_t commandTimeout) +{ + // Put the device back in the state we found it: open commissioning window, no fabrics commissioned. + // Get our current fabric index, for later deletion. + XCTestExpectation * readFabricIndexExpectation = [testcase expectationWithDescription:@"Fabric index read"]; + + __block NSNumber * fabricIndex; + __auto_type * opCredsCluster = [[MTRBaseClusterOperationalCredentials alloc] initWithDevice:device endpoint:0 queue:queue]; + [opCredsCluster + readAttributeCurrentFabricIndexWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable readError) { + XCTAssertNil(readError); + XCTAssertNotNil(value); + fabricIndex = value; + [readFabricIndexExpectation fulfill]; + }]; + + [testcase waitForExpectations:@[ readFabricIndexExpectation ] timeout:commandTimeout]; + + // Open a commissioning window. + XCTestExpectation * openCommissioningWindowExpectation = [testcase expectationWithDescription:@"Commissioning window opened"]; + + __auto_type * adminCommissioningCluster = [[MTRBaseClusterAdministratorCommissioning alloc] initWithDevice:device + endpoint:0 + queue:queue]; + __auto_type * openWindowParams = [[MTRAdministratorCommissioningClusterOpenBasicCommissioningWindowParams alloc] init]; + openWindowParams.commissioningTimeout = @(900); + openWindowParams.timedInvokeTimeoutMs = @(50000); + [adminCommissioningCluster openBasicCommissioningWindowWithParams:openWindowParams + completionHandler:^(NSError * _Nullable error) { + XCTAssertNil(error); + [openCommissioningWindowExpectation fulfill]; + }]; + + [testcase waitForExpectations:@[ openCommissioningWindowExpectation ] timeout:commandTimeout]; + + // Remove our fabric from the device. + XCTestExpectation * removeFabricExpectation = [testcase expectationWithDescription:@"Fabric removed"]; + + __auto_type * removeParams = [[MTROperationalCredentialsClusterRemoveFabricParams alloc] init]; + removeParams.fabricIndex = fabricIndex; + + [opCredsCluster removeFabricWithParams:removeParams + completionHandler:^( + MTROperationalCredentialsClusterNOCResponseParams * _Nullable data, NSError * _Nullable removeError) { + XCTAssertNil(removeError); + XCTAssertNotNil(data); + XCTAssertEqualObjects(data.statusCode, @(0)); + [removeFabricExpectation fulfill]; + }]; + + [testcase waitForExpectations:@[ removeFabricExpectation ] timeout:commandTimeout]; +} diff --git a/src/darwin/Framework/CHIPTests/MTRXPCListenerSampleTests.m b/src/darwin/Framework/CHIPTests/MTRXPCListenerSampleTests.m index 15131ffd3027ba..0880a7ba08996c 100644 --- a/src/darwin/Framework/CHIPTests/MTRXPCListenerSampleTests.m +++ b/src/darwin/Framework/CHIPTests/MTRXPCListenerSampleTests.m @@ -24,6 +24,7 @@ #import "MTRErrorTestUtils.h" #import "MTRTestKeys.h" +#import "MTRTestResetCommissioneeHelper.h" #import "MTRTestStorage.h" #import @@ -1831,59 +1832,8 @@ - (void)test900_SubscribeClusterStateCache #if !MANUAL_INDIVIDUAL_TEST - (void)test999_TearDown { - // Put the device back in the state we found it: open commissioning window, no fabrics commissioned. - dispatch_queue_t queue = dispatch_get_main_queue(); - __auto_type device = [MTRBaseDevice deviceWithNodeID:@(kDeviceId) controller:sController]; - - // Get our current fabric index, for later deletion. - XCTestExpectation * readFabricIndexExpectation = [self expectationWithDescription:@"Fabric index read"]; - - __block NSNumber * fabricIndex; - __auto_type * opCredsCluster = [[MTRBaseClusterOperationalCredentials alloc] initWithDevice:device endpointID:@(0) queue:queue]; - [opCredsCluster - readAttributeCurrentFabricIndexWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable readError) { - XCTAssertNil(readError); - XCTAssertNotNil(value); - fabricIndex = value; - [readFabricIndexExpectation fulfill]; - }]; - - [self waitForExpectations:@[ readFabricIndexExpectation ] timeout:kTimeoutInSeconds]; - - // Open a commissioning window. - XCTestExpectation * openCommissioningWindowExpectation = [self expectationWithDescription:@"Commissioning window opened"]; - - __auto_type * adminCommissioningCluster = [[MTRBaseClusterAdministratorCommissioning alloc] initWithDevice:device - endpointID:@(0) - queue:queue]; - __auto_type * openWindowParams = [[MTRAdministratorCommissioningClusterOpenBasicCommissioningWindowParams alloc] init]; - openWindowParams.commissioningTimeout = @(900); - openWindowParams.timedInvokeTimeoutMs = @(50000); - [adminCommissioningCluster openBasicCommissioningWindowWithParams:openWindowParams - completionHandler:^(NSError * _Nullable error) { - XCTAssertNil(error); - [openCommissioningWindowExpectation fulfill]; - }]; - - [self waitForExpectations:@[ openCommissioningWindowExpectation ] timeout:kTimeoutInSeconds]; - - // Remove our fabric from the device. - XCTestExpectation * removeFabricExpectation = [self expectationWithDescription:@"Fabric removed"]; - - __auto_type * removeParams = [[MTROperationalCredentialsClusterRemoveFabricParams alloc] init]; - removeParams.fabricIndex = fabricIndex; - - [opCredsCluster removeFabricWithParams:removeParams - completionHandler:^( - MTROperationalCredentialsClusterNOCResponseParams * _Nullable data, NSError * _Nullable removeError) { - XCTAssertNil(removeError); - XCTAssertNotNil(data); - XCTAssertEqualObjects(data.statusCode, @(0)); - [removeFabricExpectation fulfill]; - }]; - - [self waitForExpectations:@[ removeFabricExpectation ] timeout:kTimeoutInSeconds]; - + ResetCommissionee( + [MTRBaseDevice deviceWithNodeID:@(kDeviceId) controller:sController], dispatch_get_main_queue(), self, kTimeoutInSeconds); [self shutdownStack]; } #endif diff --git a/src/darwin/Framework/Matter.xcodeproj/project.pbxproj b/src/darwin/Framework/Matter.xcodeproj/project.pbxproj index 7581c193695125..8fecb9f74a8746 100644 --- a/src/darwin/Framework/Matter.xcodeproj/project.pbxproj +++ b/src/darwin/Framework/Matter.xcodeproj/project.pbxproj @@ -147,6 +147,8 @@ 5173A47629C0E2ED00F67F48 /* MTRFabricInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5173A47329C0E2ED00F67F48 /* MTRFabricInfo.mm */; }; 5173A47729C0E2ED00F67F48 /* MTRFabricInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 5173A47429C0E2ED00F67F48 /* MTRFabricInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5173A47929C0E82300F67F48 /* MTRFabricInfoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 5173A47829C0E82300F67F48 /* MTRFabricInfoTests.m */; }; + 51742B4A29CB5FC1009974FE /* MTRTestResetCommissioneeHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 51742B4929CB5FC0009974FE /* MTRTestResetCommissioneeHelper.m */; }; + 51742B4E29CB6B88009974FE /* MTRPairingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 51742B4D29CB6B88009974FE /* MTRPairingTests.m */; }; 517BF3F0282B62B800A8B7DB /* MTRCertificates.h in Headers */ = {isa = PBXBuildFile; fileRef = 517BF3EE282B62B800A8B7DB /* MTRCertificates.h */; settings = {ATTRIBUTES = (Public, ); }; }; 517BF3F1282B62B800A8B7DB /* MTRCertificates.mm in Sources */ = {isa = PBXBuildFile; fileRef = 517BF3EF282B62B800A8B7DB /* MTRCertificates.mm */; }; 517BF3F3282B62CB00A8B7DB /* MTRCertificateTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 517BF3F2282B62CB00A8B7DB /* MTRCertificateTests.m */; }; @@ -428,6 +430,9 @@ 5173A47329C0E2ED00F67F48 /* MTRFabricInfo.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MTRFabricInfo.mm; sourceTree = ""; }; 5173A47429C0E2ED00F67F48 /* MTRFabricInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTRFabricInfo.h; sourceTree = ""; }; 5173A47829C0E82300F67F48 /* MTRFabricInfoTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTRFabricInfoTests.m; sourceTree = ""; }; + 51742B4829CB5F45009974FE /* MTRTestResetCommissioneeHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTRTestResetCommissioneeHelper.h; sourceTree = ""; }; + 51742B4929CB5FC0009974FE /* MTRTestResetCommissioneeHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTRTestResetCommissioneeHelper.m; sourceTree = ""; }; + 51742B4D29CB6B88009974FE /* MTRPairingTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTRPairingTests.m; sourceTree = ""; }; 517BF3EE282B62B800A8B7DB /* MTRCertificates.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTRCertificates.h; sourceTree = ""; }; 517BF3EF282B62B800A8B7DB /* MTRCertificates.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MTRCertificates.mm; sourceTree = ""; }; 517BF3F2282B62CB00A8B7DB /* MTRCertificateTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTRCertificateTests.m; sourceTree = ""; }; @@ -1031,6 +1036,8 @@ 51E24E72274E0DAC007CCF6E /* MTRErrorTestUtils.mm */, 51C8E3F72825CDB600D47D00 /* MTRTestKeys.m */, 51D10D2D2808E2CA00E8CA3D /* MTRTestStorage.m */, + 51742B4829CB5F45009974FE /* MTRTestResetCommissioneeHelper.h */, + 51742B4929CB5FC0009974FE /* MTRTestResetCommissioneeHelper.m */, 3DFCB3282966684500332B35 /* MTRCertificateInfoTests.m */, 99C65E0F267282F1003402F6 /* MTRControllerTests.m */, 5AE6D4E327A99041001F2493 /* MTRDeviceTests.m */, @@ -1043,6 +1050,7 @@ 51669AEF2913204400F4AA36 /* MTRBackwardsCompatTests.m */, 510CECA6297F72470064E0B3 /* MTROperationalCertificateIssuerTests.m */, 5173A47829C0E82300F67F48 /* MTRFabricInfoTests.m */, + 51742B4D29CB6B88009974FE /* MTRPairingTests.m */, B202529D2459E34F00F97062 /* Info.plist */, ); path = CHIPTests; @@ -1432,6 +1440,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 51742B4E29CB6B88009974FE /* MTRPairingTests.m in Sources */, 51669AF02913204400F4AA36 /* MTRBackwardsCompatTests.m in Sources */, 51D10D2E2808E2CA00E8CA3D /* MTRTestStorage.m in Sources */, 7596A8512878709F004DAE0E /* MTRAsyncCallbackQueueTests.m in Sources */, @@ -1441,6 +1450,7 @@ 1E5801C328941C050033A199 /* MTRTestOTAProvider.m in Sources */, 5A6FEC9D27B5E48900F25F42 /* MTRXPCProtocolTests.m in Sources */, 5173A47929C0E82300F67F48 /* MTRFabricInfoTests.m in Sources */, + 51742B4A29CB5FC1009974FE /* MTRTestResetCommissioneeHelper.m in Sources */, 5AE6D4E427A99041001F2493 /* MTRDeviceTests.m in Sources */, 510CECA8297F72970064E0B3 /* MTROperationalCertificateIssuerTests.m in Sources */, 5A7947DE27BEC3F500434CF2 /* MTRXPCListenerSampleTests.m in Sources */, From 98290961054287df73f3883c5cf2083eeabb0d7d Mon Sep 17 00:00:00 2001 From: Mengyi Wang Date: Wed, 22 Mar 2023 21:16:21 +0100 Subject: [PATCH 04/10] [examples] Add error handling of `LightingMgr().Init()` (#25398) * [examples] Add error handling of `LightingMgr().Init()` * Print out CHIP error message * Use preferred CHIP_ERROR_FORMAT --- examples/lighting-app/linux/main.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/examples/lighting-app/linux/main.cpp b/examples/lighting-app/linux/main.cpp index 0e51568049b327..77fdc5911c90e6 100644 --- a/examples/lighting-app/linux/main.cpp +++ b/examples/lighting-app/linux/main.cpp @@ -89,7 +89,13 @@ int main(int argc, char * argv[]) return -1; } - LightingMgr().Init(); + CHIP_ERROR err = LightingMgr().Init(); + if (err != CHIP_NO_ERROR) + { + ChipLogError(AppServer, "Failed to initialize lighting manager: %" CHIP_ERROR_FORMAT, err.Format()); + chip::DeviceLayer::PlatformMgr().Shutdown(); + return -1; + } #if defined(CHIP_IMGUI_ENABLED) && CHIP_IMGUI_ENABLED example::Ui::ImguiUi ui; From e214d1ec35981cdb9cab7eae1c535fa0553fc338 Mon Sep 17 00:00:00 2001 From: sharad-patil24 <100128124+sharad-patil24@users.noreply.github.com> Date: Thu, 23 Mar 2023 04:54:20 +0530 Subject: [PATCH 05/10] [Silabs] Refactor/Cleanup Si917 examples build files (#25682) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [Silabs] Refactor/Cleanup SiWx917 examples build files * Silabs: [Wifi] fix to the Bluez disconnection issue * Silabs : Review comment solved * Silabs : Config cleanup for remaining Si917 Apps * Some more fixes * removing the --wifi SiWx917 flag, removing duplicates and address few review comments * duplicate args and modifying ipv4 to ipv6 * Restyled by clang-format * Restyled by gn * removing efr32_arm, efr32_executable, siwx917_executable to silabs_arm and silabs_executable * Restyled by gn * Silabs : Updated new Wiseconnect branch for matter * Silabs : Review comments solved * Restyled by clang-format * Silabs : 917NCP ble using wiseconnect files, updated gni file to use wisemcu files * Restyled by gn * Review Comments solved * fixes required to use GSDK lwip * Merge conflict solved * Restyled by gn * Solved Build error arise because of Merge Conflict * Restyled by gn --------- Co-authored-by: Chirag Bansal Co-authored-by: Restyled.io --- .gitmodules | 2 +- examples/chef/efr32/BUILD.gn | 4 +- examples/light-switch-app/silabs/SiWx917/.gn | 2 - .../light-switch-app/silabs/SiWx917/BUILD.gn | 220 +- .../light-switch-app/silabs/SiWx917/args.gni | 6 +- .../silabs/SiWx917/build_for_wifi_gnfile.gn | 28 - .../light-switch-app/silabs/efr32/BUILD.gn | 4 +- examples/lighting-app/silabs/SiWx917/.gn | 1 - examples/lighting-app/silabs/SiWx917/BUILD.gn | 242 +- examples/lighting-app/silabs/SiWx917/args.gni | 11 +- .../silabs/SiWx917/build_for_wifi_args.gni | 21 - .../silabs/SiWx917/build_for_wifi_gnfile.gn | 28 - .../silabs/SiWx917/data_model/BUILD.gn} | 13 +- .../data_model/lighting-wifi-app.matter | 1837 ++++ .../SiWx917/data_model/lighting-wifi-app.zap | 8198 +++++++++++++++++ .../silabs/SiWx917/with_pw_rpc.gni | 3 +- examples/lighting-app/silabs/efr32/BUILD.gn | 4 +- examples/lock-app/silabs/SiWx917/.gn | 2 - examples/lock-app/silabs/SiWx917/BUILD.gn | 238 +- examples/lock-app/silabs/SiWx917/args.gni | 6 +- .../silabs/SiWx917/build_for_wifi_args.gni | 21 - .../silabs/SiWx917/build_for_wifi_gnfile.gn | 28 - .../lock-app/silabs/SiWx917/with_pw_rpc.gni | 5 +- examples/lock-app/silabs/efr32/BUILD.gn | 4 +- examples/platform/silabs/SiWx917/BUILD.gn | 189 +- .../silabs/SiWx917/SiWx917/rs911x.gni | 142 - examples/platform/silabs/SiWx917/args.gni | 5 + examples/platform/silabs/efr32/BUILD.gn | 10 +- examples/thermostat/silabs/efr32/BUILD.gn | 4 +- examples/window-app/silabs/SiWx917/.gn | 2 - examples/window-app/silabs/SiWx917/BUILD.gn | 235 +- examples/window-app/silabs/SiWx917/args.gni | 8 +- .../silabs/SiWx917/build_for_wifi_args.gni | 20 - .../silabs/SiWx917/build_for_wifi_gnfile.gn | 28 - examples/window-app/silabs/efr32/BUILD.gn | 4 +- scripts/examples/gn_efr32_example.sh | 7 +- src/platform/silabs/BLEManagerImpl.h | 6 + .../silabs/ConnectivityManagerImpl_WIFI.cpp | 2 +- src/platform/silabs/Logging.cpp | 1 - .../silabs/NetworkCommissioningWiFiDriver.cpp | 10 +- .../silabs/SiWx917/BLEManagerImpl.cpp | 3 + src/platform/silabs/SiWx917/BUILD.gn | 35 +- src/platform/silabs/SiWx917/args.gni | 50 +- src/platform/silabs/SiWx917/wifi_args.gni | 2 +- src/platform/silabs/efr32/args.gni | 2 +- .../silabs/efr32/rs911x/BLEManagerImpl.cpp | 3 + src/platform/silabs/efr32/wifi_args.gni | 2 +- src/test_driver/efr32/BUILD.gn | 4 +- third_party/silabs/BUILD.gn | 248 +- third_party/silabs/SiWx917_sdk.gni | 251 +- third_party/silabs/efr32_sdk.gni | 18 +- .../silabs/{efr32_arm.gni => silabs_arm.gni} | 0 ...2_executable.gni => silabs_executable.gni} | 2 +- third_party/silabs/wiseconnect-wifi-bt-sdk | 2 +- 54 files changed, 10649 insertions(+), 1574 deletions(-) delete mode 100644 examples/light-switch-app/silabs/SiWx917/build_for_wifi_gnfile.gn delete mode 100644 examples/lighting-app/silabs/SiWx917/build_for_wifi_args.gni delete mode 100644 examples/lighting-app/silabs/SiWx917/build_for_wifi_gnfile.gn rename examples/{light-switch-app/silabs/SiWx917/build_for_wifi_args.gni => lighting-app/silabs/SiWx917/data_model/BUILD.gn} (69%) create mode 100644 examples/lighting-app/silabs/SiWx917/data_model/lighting-wifi-app.matter create mode 100644 examples/lighting-app/silabs/SiWx917/data_model/lighting-wifi-app.zap delete mode 100644 examples/lock-app/silabs/SiWx917/build_for_wifi_args.gni delete mode 100644 examples/lock-app/silabs/SiWx917/build_for_wifi_gnfile.gn delete mode 100644 examples/platform/silabs/SiWx917/SiWx917/rs911x.gni delete mode 100644 examples/window-app/silabs/SiWx917/build_for_wifi_args.gni delete mode 100644 examples/window-app/silabs/SiWx917/build_for_wifi_gnfile.gn rename third_party/silabs/{efr32_arm.gni => silabs_arm.gni} (100%) rename third_party/silabs/{efr32_executable.gni => silabs_executable.gni} (98%) diff --git a/.gitmodules b/.gitmodules index 2927568c436bd7..d368b904833686 100644 --- a/.gitmodules +++ b/.gitmodules @@ -247,7 +247,7 @@ [submodule "third_party/silabs/wiseconnect-wifi-bt-sdk"] path = third_party/silabs/wiseconnect-wifi-bt-sdk url = https://github.com/SiliconLabs/wiseconnect-wifi-bt-sdk.git - branch = master + branch = 2.7.1-Matter platforms = efr32,silabs_docker [submodule "editline"] path = third_party/editline/repo diff --git a/examples/chef/efr32/BUILD.gn b/examples/chef/efr32/BUILD.gn index 9198edb151e1c7..d047f6e4b4286b 100644 --- a/examples/chef/efr32/BUILD.gn +++ b/examples/chef/efr32/BUILD.gn @@ -18,8 +18,8 @@ import("//build_overrides/efr32_sdk.gni") import("//build_overrides/pigweed.gni") import("${build_root}/config/defaults.gni") -import("${efr32_sdk_build_root}/efr32_executable.gni") import("${efr32_sdk_build_root}/efr32_sdk.gni") +import("${efr32_sdk_build_root}/silabs_executable.gni") import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni") import("${chip_root}/src/platform/device.gni") @@ -81,7 +81,7 @@ efr32_sdk("sdk") { } } -efr32_executable("chef_app") { +silabs_executable("chef_app") { output_name = "chip-efr32-chef-example.out" include_dirs = [ "include" ] defines = [] diff --git a/examples/light-switch-app/silabs/SiWx917/.gn b/examples/light-switch-app/silabs/SiWx917/.gn index 4c078f6acefdcc..0adefc6ff99c6a 100644 --- a/examples/light-switch-app/silabs/SiWx917/.gn +++ b/examples/light-switch-app/silabs/SiWx917/.gn @@ -23,7 +23,5 @@ check_system_includes = true default_args = { target_cpu = "arm" target_os = "freertos" - chip_openthread_ftd = true - import("//args.gni") } diff --git a/examples/light-switch-app/silabs/SiWx917/BUILD.gn b/examples/light-switch-app/silabs/SiWx917/BUILD.gn index ff51ce6d0d740e..2d41d77fc50ab6 100644 --- a/examples/light-switch-app/silabs/SiWx917/BUILD.gn +++ b/examples/light-switch-app/silabs/SiWx917/BUILD.gn @@ -19,7 +19,7 @@ import("//build_overrides/pigweed.gni") import("${build_root}/config/defaults.gni") import("${efr32_sdk_build_root}/SiWx917_sdk.gni") -import("${efr32_sdk_build_root}/efr32_executable.gni") +import("${efr32_sdk_build_root}/silabs_executable.gni") import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni") import("${chip_root}/src/platform/device.gni") @@ -35,101 +35,14 @@ efr32_project_dir = "${chip_root}/examples/light-switch-app/silabs/SiWx917" examples_plat_dir = "${chip_root}/examples/platform/silabs/SiWx917" examples_common_plat_dir = "${chip_root}/examples/platform/silabs" +import("${examples_plat_dir}/args.gni") + declare_args() { # Dump memory usage at link time. chip_print_memory_usage = false - - # Monitor & log memory usage at runtime. - enable_heap_monitoring = false - - # Enable Sleepy end device - enable_sleepy_device = false - - # OTA timeout in seconds - OTA_periodic_query_timeout = 86400 - - # Wifi related stuff - they are overridden by gn -args="use_wf200=true" - sl_wfx_config_softap = false - sl_wfx_config_scan = true - - # Argument to force enable WPA3 security - rs91x_wpa3_only = false - - # use commissionable data for SiWx917 - siwx917_commissionable_data = false - - #default WiFi SSID - chip_default_wifi_ssid = "" - - #default Wifi Password - chip_default_wifi_psk = "" -} - -# Sanity check -assert(!(chip_enable_wifi && chip_enable_openthread)) -assert(!(use_SiWx917 && chip_enable_openthread)) -assert(!(use_wf200 && chip_enable_openthread)) -if (chip_enable_wifi) { - assert(use_SiWx917 || use_wf200) - enable_openthread_cli = false - import("${chip_root}/src/platform/silabs/SiWx917/wifi_args.gni") -} - -# ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD) -if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" || - silabs_board == "BRD2703A" || silabs_board == "BRD4319A") { - show_qr_code = false - disable_lcd = true -} - -defines = [] - -if (siwx917_commissionable_data) { - defines += [ "SIWX917_USE_COMISSIONABLE_DATA=1" ] } -# WiFi settings -if (chip_enable_wifi) { - if (chip_default_wifi_ssid != "") { - defines += [ - "CHIP_ONNETWORK_PAIRING=1", - "CHIP_WIFI_SSID=\"${chip_default_wifi_ssid}\"", - ] - } - if (chip_default_wifi_psk != "") { - assert(chip_default_wifi_ssid != "", - "ssid can't be null if psk is provided") - defines += [ "CHIP_WIFI_PSK=\"${chip_default_wifi_psk}\"" ] - } - wifi_sdk_dir = "${chip_root}/src/platform/silabs/SiWx917/wifi" - efr32_lwip_defs = [ "LWIP_NETIF_API=1" ] - if (lwip_ipv4) { - efr32_lwip_defs += [ - "LWIP_IPV4=1", - - # adds following options to provide - # them to .cpp source files - # flags ported from lwipopts file - # TODO: move lwipopts to one location - "LWIP_ARP=1", - "LWIP_ICMP=1", - "LWIP_IGMP=1", - "LWIP_DHCP=1", - "LWIP_DNS=0", - ] - } else { - efr32_lwip_defs += [ "LWIP_IPV4=0" ] - } - if (lwip_ipv6) { - efr32_lwip_defs += [ "LWIP_IPV6=1" ] - } else { - efr32_lwip_defs += [ "LWIP_IPV6=0" ] - } - - import("${examples_plat_dir}/SiWx917/rs911x.gni") -} - -efr32_sdk("sdk") { +siwx917_sdk("sdk") { sources = [ "${efr32_project_dir}/include/CHIPProjectConfig.h", "${examples_plat_dir}/FreeRTOSConfig.h", @@ -144,79 +57,31 @@ efr32_sdk("sdk") { "${examples_common_plat_dir}", ] - defines += [ - "BOARD_ID=${silabs_board}", - "OTA_PERIODIC_TIMEOUT=${OTA_periodic_query_timeout}", - ] - if (chip_enable_pw_rpc) { defines += [ "HAL_VCOM_ENABLE=1", "PW_RPC_ENABLED", ] } - - # WiFi Settings - if (chip_enable_wifi) { - if (use_SiWx917) { - defines += rs911x_defs - include_dirs += rs911x_plat_incs - } else if (use_wf200) { - defines += wf200_defs - include_dirs += wf200_plat_incs - } - - if (use_rs911x_sockets) { - include_dirs += [ "${examples_plat_dir}/wifi/rsi-sockets" ] - defines += rs911x_sock_defs - } else { - # Using LWIP instead of the native TCP/IP stack - defines += efr32_lwip_defs - } - - if (sl_wfx_config_softap) { - defines += [ "SL_WFX_CONFIG_SOFTAP" ] - } - if (sl_wfx_config_scan) { - defines += [ "SL_WFX_CONFIG_SCAN" ] - } - } } -efr32_executable("light_switch_app") { - output_name = "chip-efr32-light-switch-example.out" - public_configs = [ "${efr32_sdk_build_root}:silabs_config" ] +silabs_executable("light_switch_app") { + output_name = "chip-siwx917-light-switch-example.out" include_dirs = [ "include" ] defines = [] sources = [ "${chip_root}/examples/light-switch-app/silabs/common/BindingHandler.cpp", "${chip_root}/examples/light-switch-app/silabs/common/LightSwitchMgr.cpp", - "${examples_common_plat_dir}/heap_4_silabs.c", - "${examples_plat_dir}/BaseApplication.cpp", - "${examples_plat_dir}/init_ccpPlatform.cpp", - "${examples_plat_dir}/matter_config.cpp", - "${examples_plat_dir}/siwx917_utils.cpp", "src/AppTask.cpp", "src/ZclCallbacks.cpp", "src/main.cpp", ] - if (use_wstk_leds) { - sources += [ "${examples_plat_dir}/LEDWidget.cpp" ] - } - - if (chip_enable_pw_rpc || chip_build_libshell || enable_openthread_cli || - use_wf200 || use_SiWx917) { - #sources += [ "${examples_plat_dir}/uart.cpp" ] - } - deps = [ ":sdk", - "${chip_root}/examples/light-switch-app/light-switch-common", - "${chip_root}/examples/providers:device_info_provider", - "${chip_root}/src/lib", - "${chip_root}/src/setup_payload", + "${examples_plat_dir}:siwx917-common", + app_data_model, ] if (chip_build_libshell) { @@ -225,66 +90,6 @@ efr32_executable("light_switch_app") { ] } - # Attestation Credentials - if (chip_build_platform_attestation_credentials_provider) { - deps += [ "${examples_plat_dir}:siwx917-attestation-credentials" ] - } - - # Factory Data Provider - if (use_efr32_factory_data_provider) { - deps += [ "${examples_plat_dir}:efr32-factory-data-provider" ] - } - - # WiFi Settings - if (chip_enable_wifi) { - if (use_SiWx917) { - sources += rs911x_src_plat - - # All the stuff from wiseconnect - sources += rs911x_src_sapi - - # Apparently - the rsi library needs this (though we may not use use it) - sources += rs911x_src_sock - include_dirs += rs911x_inc_plat - - if (use_rs911x_sockets) { - # - # Using native sockets inside RS911x - # - include_dirs += rs911x_sock_inc - } else { - # - # We use LWIP - not built-in sockets - # - sources += rs911x_src_lwip - } - } else if (use_wf200) { - sources += wf200_plat_src - include_dirs += wf200_plat_incs - } - - if (rs91x_wpa3_only) { - # TODO: Change this macro once WF200 support is provided - defines += [ "WIFI_ENABLE_SECURITY_WPA3=1" ] - } - } - - if (!disable_lcd) { - sources += [ - "${examples_plat_dir}/display/demo-ui.c", - "${examples_plat_dir}/display/lcd.cpp", - ] - include_dirs += [ "${examples_plat_dir}/display" ] - defines += [ - "DISPLAY_ENABLED", - "IS_DEMO_SWITCH=1", - ] - if (show_qr_code) { - defines += [ "QR_CODE_ENABLED" ] - deps += [ "${chip_root}/examples/common/QRCode" ] - } - } - if (chip_enable_pw_rpc) { defines += [ "PW_RPC_ENABLED", @@ -322,11 +127,6 @@ efr32_executable("light_switch_app") { ] } - if (enable_heap_monitoring) { - sources += [ "${examples_common_plat_dir}/MemMonitoring.cpp" ] - defines += [ "HEAP_MONITORING" ] - } - ldscript = "${examples_plat_dir}/ldscripts/${silabs_family}.ld" inputs = [ ldscript ] @@ -351,10 +151,10 @@ efr32_executable("light_switch_app") { output_dir = root_out_dir } -group("efr32") { +group("siwx917") { deps = [ ":light_switch_app" ] } group("default") { - deps = [ ":efr32" ] + deps = [ ":siwx917" ] } diff --git a/examples/light-switch-app/silabs/SiWx917/args.gni b/examples/light-switch-app/silabs/SiWx917/args.gni index 421090dbc97aae..0e0bbe544fd35a 100644 --- a/examples/light-switch-app/silabs/SiWx917/args.gni +++ b/examples/light-switch-app/silabs/SiWx917/args.gni @@ -16,9 +16,7 @@ import("//build_overrides/chip.gni") import("${chip_root}/config/standalone/args.gni") import("${chip_root}/src/platform/silabs/SiWx917/args.gni") -efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain") +siwx917_sdk_target = get_label_info(":sdk", "label_no_toolchain") +app_data_model = "${chip_root}/examples/light-switch-app/light-switch-common" chip_enable_ota_requestor = true -chip_enable_openthread = true -openthread_external_platform = - "${chip_root}/third_party/openthread/platforms/efr32:libopenthread-efr32" diff --git a/examples/light-switch-app/silabs/SiWx917/build_for_wifi_gnfile.gn b/examples/light-switch-app/silabs/SiWx917/build_for_wifi_gnfile.gn deleted file mode 100644 index d391814190d09f..00000000000000 --- a/examples/light-switch-app/silabs/SiWx917/build_for_wifi_gnfile.gn +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright (c) 2020 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import("//build_overrides/build.gni") - -# The location of the build configuration file. -buildconfig = "${build_root}/config/BUILDCONFIG.gn" - -# CHIP uses angle bracket includes. -check_system_includes = true - -default_args = { - target_cpu = "arm" - target_os = "freertos" - chip_enable_wifi = true - import("//build_for_wifi_args.gni") -} diff --git a/examples/light-switch-app/silabs/efr32/BUILD.gn b/examples/light-switch-app/silabs/efr32/BUILD.gn index b42dc1212d118d..a0e4d707e7c6cd 100644 --- a/examples/light-switch-app/silabs/efr32/BUILD.gn +++ b/examples/light-switch-app/silabs/efr32/BUILD.gn @@ -18,8 +18,8 @@ import("//build_overrides/efr32_sdk.gni") import("//build_overrides/pigweed.gni") import("${build_root}/config/defaults.gni") -import("${efr32_sdk_build_root}/efr32_executable.gni") import("${efr32_sdk_build_root}/efr32_sdk.gni") +import("${efr32_sdk_build_root}/silabs_executable.gni") import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni") import("${chip_root}/src/platform/device.gni") @@ -83,7 +83,7 @@ efr32_sdk("sdk") { } } -efr32_executable("light_switch_app") { +silabs_executable("light_switch_app") { output_name = "chip-efr32-light-switch-example.out" include_dirs = [ "include" ] defines = [] diff --git a/examples/lighting-app/silabs/SiWx917/.gn b/examples/lighting-app/silabs/SiWx917/.gn index 4c078f6acefdcc..3d48789e30ab3d 100644 --- a/examples/lighting-app/silabs/SiWx917/.gn +++ b/examples/lighting-app/silabs/SiWx917/.gn @@ -23,7 +23,6 @@ check_system_includes = true default_args = { target_cpu = "arm" target_os = "freertos" - chip_openthread_ftd = true import("//args.gni") } diff --git a/examples/lighting-app/silabs/SiWx917/BUILD.gn b/examples/lighting-app/silabs/SiWx917/BUILD.gn index 8d34b583966d08..05c1caaa3e72e6 100644 --- a/examples/lighting-app/silabs/SiWx917/BUILD.gn +++ b/examples/lighting-app/silabs/SiWx917/BUILD.gn @@ -18,8 +18,8 @@ import("//build_overrides/efr32_sdk.gni") import("//build_overrides/pigweed.gni") import("${build_root}/config/defaults.gni") -import("${efr32_sdk_build_root}/SiWx917_sdk.gni") -import("${efr32_sdk_build_root}/efr32_executable.gni") +import("${chip_root}/third_party/silabs/SiWx917_sdk.gni") +import("${efr32_sdk_build_root}/silabs_executable.gni") import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni") import("${chip_root}/src/platform/device.gni") @@ -35,104 +35,13 @@ efr32_project_dir = "${chip_root}/examples/lighting-app/silabs/SiWx917" examples_plat_dir = "${chip_root}/examples/platform/silabs/SiWx917" examples_common_plat_dir = "${chip_root}/examples/platform/silabs" +import("${examples_plat_dir}/args.gni") declare_args() { # Dump memory usage at link time. chip_print_memory_usage = false - - # Monitor & log memory usage at runtime. - enable_heap_monitoring = false - - # Enable Sleepy end device - enable_sleepy_device = false - - # OTA timeout in seconds - OTA_periodic_query_timeout = 86400 - - # Wifi related stuff - they are overridden by gn -args="use_wf200=true" - sl_wfx_config_softap = false - sl_wfx_config_scan = true - - # Argument to force enable WPA3 security on rs91x - rs91x_wpa3_only = false - - # use commissionable data for SiWx917 - siwx917_commissionable_data = false - - #default WiFi SSID - chip_default_wifi_ssid = "" - - #default Wifi Password - chip_default_wifi_psk = "" -} - -# Sanity check -assert(!(chip_enable_wifi && chip_enable_openthread)) -assert(!(use_SiWx917 && chip_enable_openthread)) -assert(!(use_wf200 && chip_enable_openthread)) -if (chip_enable_wifi) { - assert(use_SiWx917 || use_wf200) - enable_openthread_cli = false - import("${chip_root}/src/platform/silabs/SiWx917/wifi_args.gni") -} - -# ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD) -if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" || - silabs_board == "BRD2703A" || silabs_board == "BRD4319A") { - show_qr_code = false - disable_lcd = true } -defines = [] - -# WiFi settings -if (chip_enable_wifi) { - # disabling LCD for MG24 for wifi - if (silabs_board == "BRD4186A" || silabs_board == "BRD4187A") { - show_qr_code = false - disable_lcd = true - } - - if (chip_default_wifi_ssid != "") { - defines += [ - "CHIP_ONNETWORK_PAIRING = 1", - "CHIP_WIFI_SSID=\"${chip_default_wifi_ssid}\"", - ] - } - if (chip_default_wifi_psk != "") { - assert(chip_default_wifi_ssid != "", - "ssid can't be null if psk is provided") - defines += [ "CHIP_WIFI_PSK=\"${chip_default_wifi_psk}\"" ] - } - - wifi_sdk_dir = "${chip_root}/src/platform/silabs/SiWx917/wifi" - efr32_lwip_defs = [ "LWIP_NETIF_API=1" ] - if (lwip_ipv4) { - efr32_lwip_defs += [ - "LWIP_IPV4=1", - - # adds following options to provide - # them to .cpp source files - # flags ported from lwipopts file - # TODO: move lwipopts to one location - "LWIP_ARP=1", - "LWIP_ICMP=1", - "LWIP_IGMP=1", - "LWIP_DHCP=1", - "LWIP_DNS=0", - ] - } else { - efr32_lwip_defs += [ "LWIP_IPV4=0" ] - } - if (lwip_ipv6) { - efr32_lwip_defs += [ "LWIP_IPV6=1" ] - } else { - efr32_lwip_defs += [ "LWIP_IPV6=0" ] - } - - import("${examples_plat_dir}/SiWx917/rs911x.gni") -} - -efr32_sdk("sdk") { +siwx917_sdk("sdk") { sources = [ "${efr32_project_dir}/include/CHIPProjectConfig.h", "${examples_plat_dir}/FreeRTOSConfig.h", @@ -146,147 +55,33 @@ efr32_sdk("sdk") { "${examples_common_plat_dir}", ] - defines += [ - "BOARD_ID=${silabs_board}", - "OTA_PERIODIC_TIMEOUT=${OTA_periodic_query_timeout}", - ] - + defines = [] if (chip_enable_pw_rpc) { defines += [ "HAL_VCOM_ENABLE=1", "PW_RPC_ENABLED", ] } - - if (siwx917_commissionable_data) { - defines += [ "SIWX917_USE_COMISSIONABLE_DATA=1" ] - } - - # WiFi Settings - if (chip_enable_wifi) { - if (use_SiWx917) { - defines += rs911x_defs - include_dirs += rs911x_plat_incs - } else if (use_wf200) { - defines += wf200_defs - include_dirs += wf200_plat_incs - } - - if (use_rs911x_sockets) { - include_dirs += [ "${examples_plat_dir}/wifi/rsi-sockets" ] - defines += rs911x_sock_defs - } else { - # Using LWIP instead of the native TCP/IP stack - defines += efr32_lwip_defs - } - - if (sl_wfx_config_softap) { - defines += [ "SL_WFX_CONFIG_SOFTAP" ] - } - if (sl_wfx_config_scan) { - defines += [ "SL_WFX_CONFIG_SCAN" ] - } - } } -efr32_executable("lighting_app") { - output_name = "chip-efr32-lighting-example.out" - public_configs = [ "${efr32_sdk_build_root}:silabs_config" ] +silabs_executable("lighting_app") { + output_name = "chip-siwx917-lighting-example.out" include_dirs = [ "include" ] defines = [] sources = [ - "${examples_common_plat_dir}/heap_4_silabs.c", - "${examples_plat_dir}/BaseApplication.cpp", - "${examples_plat_dir}/init_ccpPlatform.cpp", - "${examples_plat_dir}/matter_config.cpp", - "${examples_plat_dir}/siwx917_utils.cpp", "src/AppTask.cpp", "src/LightingManager.cpp", "src/ZclCallbacks.cpp", "src/main.cpp", ] - if (use_wstk_leds) { - sources += [ "${examples_plat_dir}/LEDWidget.cpp" ] - } - - if (chip_enable_pw_rpc || chip_build_libshell || use_SiWx917) { - # TODO: Commentting for CCP till the bring up of this is done - #sources += [ "${examples_plat_dir}/uart.cpp" ] - } - deps = [ ":sdk", - "${chip_root}/examples/lighting-app/lighting-common", - "${chip_root}/examples/providers:device_info_provider", - "${chip_root}/src/lib", - "${chip_root}/src/setup_payload", + "${examples_plat_dir}:siwx917-common", + app_data_model, ] - # OpenThread Settings - if (chip_enable_openthread) { - deps += [ - "${chip_root}/third_party/openthread:openthread", - "${chip_root}/third_party/openthread:openthread-platform", - "${examples_plat_dir}:efr-matter-shell", - ] - } - - #TODO: OTA should be added - - # WiFi Settings - if (chip_enable_wifi) { - if (use_SiWx917) { - sources += rs911x_src_plat - - # All the stuff from wiseconnect - sources += rs911x_src_sapi - - # Apparently - the rsi library needs this (though we may not use use it) - sources += rs911x_src_sock - include_dirs += rs911x_inc_plat - - if (use_rs911x_sockets) { - # - # Using native sockets inside RS911x - # - include_dirs += rs911x_sock_inc - } else { - # - # We use LWIP - not built-in sockets - # - sources += rs911x_src_lwip - } - } else if (use_wf200) { - sources += wf200_plat_src - include_dirs += wf200_plat_incs - } - - if (rs91x_wpa3_only) { - # TODO: Change this macro once WF200 support is provided - defines += [ "WIFI_ENABLE_SECURITY_WPA3=1" ] - } - } - - if (!disable_lcd) { - sources += [ - "${examples_plat_dir}/display/demo-ui.c", - "${examples_plat_dir}/display/lcd.cpp", - ] - - include_dirs += [ "${examples_plat_dir}/display" ] - defines += [ - "DISPLAY_ENABLED", - "IS_DEMO_LIGHT=1", - ] - if (show_qr_code) { - defines += [ "QR_CODE_ENABLED" ] - - deps += [ "${chip_root}/examples/common/QRCode" ] - } - } - if (chip_enable_pw_rpc) { defines += [ "PW_RPC_ENABLED", @@ -332,11 +127,6 @@ efr32_executable("lighting_app") { ] } - if (enable_heap_monitoring) { - sources += [ "${examples_common_plat_dir}/MemMonitoring.cpp" ] - defines += [ "HEAP_MONITORING" ] - } - ldscript = "${examples_plat_dir}/ldscripts/${silabs_family}.ld" inputs = [ ldscript ] @@ -358,23 +148,13 @@ efr32_executable("lighting_app") { ] } - # Attestation Credentials - if (chip_build_platform_attestation_credentials_provider) { - deps += [ "${examples_plat_dir}:siwx917-attestation-credentials" ] - } - - # Factory Data Provider - if (use_efr32_factory_data_provider) { - deps += [ "${examples_plat_dir}:efr32-factory-data-provider" ] - } - output_dir = root_out_dir } -group("efr32") { +group("siwx917") { deps = [ ":lighting_app" ] } group("default") { - deps = [ ":efr32" ] + deps = [ ":siwx917" ] } diff --git a/examples/lighting-app/silabs/SiWx917/args.gni b/examples/lighting-app/silabs/SiWx917/args.gni index ed17fa3c6b8e6a..3667aef09297db 100644 --- a/examples/lighting-app/silabs/SiWx917/args.gni +++ b/examples/lighting-app/silabs/SiWx917/args.gni @@ -11,16 +11,11 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - import("//build_overrides/chip.gni") import("${chip_root}/config/standalone/args.gni") -import("${chip_root}/src/platform/silabs/SiWx917/args.gni") -efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain") +siwx917_sdk_target = get_label_info(":sdk", "label_no_toolchain") +import("${chip_root}/src/platform/silabs/SiWx917/args.gni") +app_data_model = "${chip_root}/examples/lighting-app/silabs/SiWx917/data_model:silabs-lighting" chip_enable_ota_requestor = true -chip_enable_openthread = true -pw_rpc_CONFIG = "$dir_pw_rpc:disable_global_mutex" - -openthread_external_platform = - "${chip_root}/third_party/openthread/platforms/efr32:libopenthread-efr32" diff --git a/examples/lighting-app/silabs/SiWx917/build_for_wifi_args.gni b/examples/lighting-app/silabs/SiWx917/build_for_wifi_args.gni deleted file mode 100644 index b1a0be42ca9351..00000000000000 --- a/examples/lighting-app/silabs/SiWx917/build_for_wifi_args.gni +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright (c) 2020 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import("//build_overrides/chip.gni") -import("${chip_root}/config/standalone/args.gni") - -efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain") -chip_enable_openthread = false -import("${chip_root}/src/platform/silabs/SiWx917/wifi_args.gni") - -chip_enable_ota_requestor = true diff --git a/examples/lighting-app/silabs/SiWx917/build_for_wifi_gnfile.gn b/examples/lighting-app/silabs/SiWx917/build_for_wifi_gnfile.gn deleted file mode 100644 index d391814190d09f..00000000000000 --- a/examples/lighting-app/silabs/SiWx917/build_for_wifi_gnfile.gn +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright (c) 2020 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import("//build_overrides/build.gni") - -# The location of the build configuration file. -buildconfig = "${build_root}/config/BUILDCONFIG.gn" - -# CHIP uses angle bracket includes. -check_system_includes = true - -default_args = { - target_cpu = "arm" - target_os = "freertos" - chip_enable_wifi = true - import("//build_for_wifi_args.gni") -} diff --git a/examples/light-switch-app/silabs/SiWx917/build_for_wifi_args.gni b/examples/lighting-app/silabs/SiWx917/data_model/BUILD.gn similarity index 69% rename from examples/light-switch-app/silabs/SiWx917/build_for_wifi_args.gni rename to examples/lighting-app/silabs/SiWx917/data_model/BUILD.gn index b1a0be42ca9351..f6dae30253e64b 100644 --- a/examples/light-switch-app/silabs/SiWx917/build_for_wifi_args.gni +++ b/examples/lighting-app/silabs/SiWx917/data_model/BUILD.gn @@ -11,11 +11,14 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. + import("//build_overrides/chip.gni") -import("${chip_root}/config/standalone/args.gni") +import("${chip_root}/src/app/chip_data_model.gni") +import("${chip_root}/src/platform/device.gni") -efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain") -chip_enable_openthread = false -import("${chip_root}/src/platform/silabs/SiWx917/wifi_args.gni") +chip_data_model("silabs-lighting") { + zap_file = "lighting-wifi-app.zap" -chip_enable_ota_requestor = true + zap_pregenerated_dir = "${chip_root}/zzz_generated/lighting-app/zap-generated" + is_server = true +} diff --git a/examples/lighting-app/silabs/SiWx917/data_model/lighting-wifi-app.matter b/examples/lighting-app/silabs/SiWx917/data_model/lighting-wifi-app.matter new file mode 100644 index 00000000000000..0ca16845849b6a --- /dev/null +++ b/examples/lighting-app/silabs/SiWx917/data_model/lighting-wifi-app.matter @@ -0,0 +1,1837 @@ +// This IDL was generated automatically by ZAP. +// It is for view/code review purposes only. + +struct LabelStruct { + char_string<16> label = 0; + char_string<16> value = 1; +} + +server cluster Identify = 3 { + enum IdentifyEffectIdentifier : ENUM8 { + kBlink = 0; + kBreathe = 1; + kOkay = 2; + kChannelChange = 11; + kFinishEffect = 254; + kStopEffect = 255; + } + + enum IdentifyEffectVariant : ENUM8 { + kDefault = 0; + } + + enum IdentifyIdentifyType : ENUM8 { + kNone = 0; + kVisibleLight = 1; + kVisibleLED = 2; + kAudibleBeep = 3; + kDisplay = 4; + kActuator = 5; + } + + attribute int16u identifyTime = 0; + readonly attribute enum8 identifyType = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct IdentifyRequest { + INT16U identifyTime = 0; + } + + request struct TriggerEffectRequest { + IdentifyEffectIdentifier effectIdentifier = 0; + IdentifyEffectVariant effectVariant = 1; + } + + command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; + command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; +} + +server cluster Groups = 4 { + bitmap GroupClusterFeature : BITMAP32 { + kGroupNames = 0x1; + } + + readonly attribute bitmap8 nameSupport = 0; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct AddGroupRequest { + group_id groupID = 0; + CHAR_STRING groupName = 1; + } + + request struct ViewGroupRequest { + group_id groupID = 0; + } + + request struct GetGroupMembershipRequest { + group_id groupList[] = 0; + } + + request struct RemoveGroupRequest { + group_id groupID = 0; + } + + request struct AddGroupIfIdentifyingRequest { + group_id groupID = 0; + CHAR_STRING groupName = 1; + } + + response struct AddGroupResponse = 0 { + ENUM8 status = 0; + group_id groupID = 1; + } + + response struct ViewGroupResponse = 1 { + ENUM8 status = 0; + group_id groupID = 1; + CHAR_STRING groupName = 2; + } + + response struct GetGroupMembershipResponse = 2 { + nullable INT8U capacity = 0; + group_id groupList[] = 1; + } + + response struct RemoveGroupResponse = 3 { + ENUM8 status = 0; + group_id groupID = 1; + } + + fabric command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; + fabric command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; + fabric command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; + fabric command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + fabric command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; +} + +server cluster OnOff = 6 { + enum OnOffDelayedAllOffEffectVariant : ENUM8 { + kFadeToOffIn0p8Seconds = 0; + kNoFade = 1; + k50PercentDimDownIn0p8SecondsThenFadeToOffIn12Seconds = 2; + } + + enum OnOffDyingLightEffectVariant : ENUM8 { + k20PercenterDimUpIn0p5SecondsThenFadeToOffIn1Second = 0; + } + + enum OnOffEffectIdentifier : ENUM8 { + kDelayedAllOff = 0; + kDyingLight = 1; + } + + enum OnOffStartUpOnOff : ENUM8 { + kOff = 0; + kOn = 1; + kTogglePreviousOnOff = 2; + } + + bitmap OnOffControl : BITMAP8 { + kAcceptOnlyWhenOn = 0x1; + } + + bitmap OnOffFeature : BITMAP32 { + kLighting = 0x1; + } + + readonly attribute boolean onOff = 0; + readonly attribute boolean globalSceneControl = 16384; + attribute int16u onTime = 16385; + attribute int16u offWaitTime = 16386; + attribute access(write: manage) nullable OnOffStartUpOnOff startUpOnOff = 16387; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct OffWithEffectRequest { + OnOffEffectIdentifier effectIdentifier = 0; + int8u effectVariant = 1; + } + + request struct OnWithTimedOffRequest { + OnOffControl onOffControl = 0; + int16u onTime = 1; + int16u offWaitTime = 2; + } + + command Off(): DefaultSuccess = 0; + command On(): DefaultSuccess = 1; + command Toggle(): DefaultSuccess = 2; + command OffWithEffect(OffWithEffectRequest): DefaultSuccess = 64; + command OnWithRecallGlobalScene(): DefaultSuccess = 65; + command OnWithTimedOff(OnWithTimedOffRequest): DefaultSuccess = 66; +} + +server cluster LevelControl = 8 { + enum MoveMode : ENUM8 { + kUp = 0; + kDown = 1; + } + + enum StepMode : ENUM8 { + kUp = 0; + kDown = 1; + } + + bitmap LevelControlFeature : BITMAP32 { + kOnOff = 0x1; + kLighting = 0x2; + kFrequency = 0x4; + } + + bitmap LevelControlOptions : BITMAP8 { + kExecuteIfOff = 0x1; + kCoupleColorTempToLevel = 0x2; + } + + readonly attribute nullable int8u currentLevel = 0; + readonly attribute int16u remainingTime = 1; + readonly attribute int8u minLevel = 2; + readonly attribute int8u maxLevel = 3; + readonly attribute int16u currentFrequency = 4; + readonly attribute int16u minFrequency = 5; + readonly attribute int16u maxFrequency = 6; + attribute LevelControlOptions options = 15; + attribute int16u onOffTransitionTime = 16; + attribute nullable int8u onLevel = 17; + attribute nullable int16u onTransitionTime = 18; + attribute nullable int16u offTransitionTime = 19; + attribute nullable int8u defaultMoveRate = 20; + attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct MoveToLevelRequest { + INT8U level = 0; + nullable INT16U transitionTime = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct MoveRequest { + MoveMode moveMode = 0; + nullable INT8U rate = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct StepRequest { + StepMode stepMode = 0; + INT8U stepSize = 1; + nullable INT16U transitionTime = 2; + LevelControlOptions optionsMask = 3; + LevelControlOptions optionsOverride = 4; + } + + request struct StopRequest { + LevelControlOptions optionsMask = 0; + LevelControlOptions optionsOverride = 1; + } + + request struct MoveToLevelWithOnOffRequest { + INT8U level = 0; + nullable INT16U transitionTime = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct MoveWithOnOffRequest { + MoveMode moveMode = 0; + nullable INT8U rate = 1; + LevelControlOptions optionsMask = 2; + LevelControlOptions optionsOverride = 3; + } + + request struct StepWithOnOffRequest { + StepMode stepMode = 0; + INT8U stepSize = 1; + nullable INT16U transitionTime = 2; + LevelControlOptions optionsMask = 3; + LevelControlOptions optionsOverride = 4; + } + + request struct StopWithOnOffRequest { + LevelControlOptions optionsMask = 0; + LevelControlOptions optionsOverride = 1; + } + + command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0; + command Move(MoveRequest): DefaultSuccess = 1; + command Step(StepRequest): DefaultSuccess = 2; + command Stop(StopRequest): DefaultSuccess = 3; + command MoveToLevelWithOnOff(MoveToLevelWithOnOffRequest): DefaultSuccess = 4; + command MoveWithOnOff(MoveWithOnOffRequest): DefaultSuccess = 5; + command StepWithOnOff(StepWithOnOffRequest): DefaultSuccess = 6; + command StopWithOnOff(StopWithOnOffRequest): DefaultSuccess = 7; +} + +server cluster Descriptor = 29 { + struct DeviceTypeStruct { + devtype_id deviceType = 0; + int16u revision = 1; + } + + readonly attribute DeviceTypeStruct deviceTypeList[] = 0; + readonly attribute CLUSTER_ID serverList[] = 1; + readonly attribute CLUSTER_ID clientList[] = 2; + readonly attribute ENDPOINT_NO partsList[] = 3; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster AccessControl = 31 { + enum AccessControlEntryAuthModeEnum : ENUM8 { + kPase = 1; + kCase = 2; + kGroup = 3; + } + + enum AccessControlEntryPrivilegeEnum : ENUM8 { + kView = 1; + kProxyView = 2; + kOperate = 3; + kManage = 4; + kAdminister = 5; + } + + enum ChangeTypeEnum : ENUM8 { + kChanged = 0; + kAdded = 1; + kRemoved = 2; + } + + fabric_scoped struct AccessControlEntryStruct { + fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1; + fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2; + nullable fabric_sensitive int64u subjects[] = 3; + nullable fabric_sensitive Target targets[] = 4; + fabric_idx fabricIndex = 254; + } + + struct Target { + nullable cluster_id cluster = 0; + nullable endpoint_no endpoint = 1; + nullable devtype_id deviceType = 2; + } + + fabric_scoped struct AccessControlExtensionStruct { + fabric_sensitive octet_string<128> data = 1; + fabric_idx fabricIndex = 254; + } + + fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 { + nullable node_id adminNodeID = 1; + nullable INT16U adminPasscodeID = 2; + ChangeTypeEnum changeType = 3; + nullable AccessControlEntryStruct latestValue = 4; + fabric_idx fabricIndex = 254; + } + + fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 { + nullable node_id adminNodeID = 1; + nullable INT16U adminPasscodeID = 2; + ChangeTypeEnum changeType = 3; + nullable AccessControlExtensionStruct latestValue = 4; + fabric_idx fabricIndex = 254; + } + + attribute access(read: administer, write: administer) AccessControlEntryStruct acl[] = 0; + attribute access(read: administer, write: administer) AccessControlExtensionStruct extension[] = 1; + readonly attribute int16u subjectsPerAccessControlEntry = 2; + readonly attribute int16u targetsPerAccessControlEntry = 3; + readonly attribute int16u accessControlEntriesPerFabric = 4; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster BasicInformation = 40 { + struct CapabilityMinimaStruct { + int16u caseSessionsPerFabric = 0; + int16u subscriptionsPerFabric = 1; + } + + critical event StartUp = 0 { + INT32U softwareVersion = 0; + } + + critical event ShutDown = 1 { + } + + info event Leave = 2 { + fabric_idx fabricIndex = 0; + } + + info event ReachableChanged = 3 { + boolean reachableNewValue = 0; + } + + readonly attribute int16u dataModelRevision = 0; + readonly attribute char_string<32> vendorName = 1; + readonly attribute vendor_id vendorID = 2; + readonly attribute char_string<32> productName = 3; + readonly attribute int16u productID = 4; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; + readonly attribute int16u hardwareVersion = 7; + readonly attribute char_string<64> hardwareVersionString = 8; + readonly attribute int32u softwareVersion = 9; + readonly attribute char_string<64> softwareVersionString = 10; + readonly attribute char_string<16> manufacturingDate = 11; + readonly attribute char_string<32> partNumber = 12; + readonly attribute long_char_string<256> productURL = 13; + readonly attribute char_string<64> productLabel = 14; + readonly attribute char_string<32> serialNumber = 15; + attribute access(write: manage) boolean localConfigDisabled = 16; + readonly attribute boolean reachable = 17; + readonly attribute char_string<32> uniqueID = 18; + readonly attribute CapabilityMinimaStruct capabilityMinima = 19; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +client cluster OtaSoftwareUpdateProvider = 41 { + enum OTAApplyUpdateAction : ENUM8 { + kProceed = 0; + kAwaitNextAction = 1; + kDiscontinue = 2; + } + + enum OTADownloadProtocol : ENUM8 { + kBDXSynchronous = 0; + kBDXAsynchronous = 1; + kHttps = 2; + kVendorSpecific = 3; + } + + enum OTAQueryStatus : ENUM8 { + kUpdateAvailable = 0; + kBusy = 1; + kNotAvailable = 2; + kDownloadProtocolNotSupported = 3; + } + + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct QueryImageRequest { + vendor_id vendorID = 0; + INT16U productID = 1; + INT32U softwareVersion = 2; + OTADownloadProtocol protocolsSupported[] = 3; + optional INT16U hardwareVersion = 4; + optional CHAR_STRING<2> location = 5; + optional BOOLEAN requestorCanConsent = 6; + optional OCTET_STRING<512> metadataForProvider = 7; + } + + request struct ApplyUpdateRequestRequest { + OCTET_STRING<32> updateToken = 0; + INT32U newVersion = 1; + } + + request struct NotifyUpdateAppliedRequest { + OCTET_STRING<32> updateToken = 0; + INT32U softwareVersion = 1; + } + + response struct QueryImageResponse = 1 { + OTAQueryStatus status = 0; + optional INT32U delayedActionTime = 1; + optional CHAR_STRING<256> imageURI = 2; + optional INT32U softwareVersion = 3; + optional CHAR_STRING<64> softwareVersionString = 4; + optional OCTET_STRING<32> updateToken = 5; + optional BOOLEAN userConsentNeeded = 6; + optional OCTET_STRING<512> metadataForRequestor = 7; + } + + response struct ApplyUpdateResponse = 3 { + OTAApplyUpdateAction action = 0; + INT32U delayedActionTime = 1; + } + + command QueryImage(QueryImageRequest): QueryImageResponse = 0; + command ApplyUpdateRequest(ApplyUpdateRequestRequest): ApplyUpdateResponse = 2; + command NotifyUpdateApplied(NotifyUpdateAppliedRequest): DefaultSuccess = 4; +} + +server cluster OtaSoftwareUpdateRequestor = 42 { + enum OTAAnnouncementReason : ENUM8 { + kSimpleAnnouncement = 0; + kUpdateAvailable = 1; + kUrgentUpdateAvailable = 2; + } + + enum OTAChangeReasonEnum : ENUM8 { + kUnknown = 0; + kSuccess = 1; + kFailure = 2; + kTimeOut = 3; + kDelayByProvider = 4; + } + + enum OTAUpdateStateEnum : ENUM8 { + kUnknown = 0; + kIdle = 1; + kQuerying = 2; + kDelayedOnQuery = 3; + kDownloading = 4; + kApplying = 5; + kDelayedOnApply = 6; + kRollingBack = 7; + kDelayedOnUserConsent = 8; + } + + fabric_scoped struct ProviderLocation { + node_id providerNodeID = 1; + endpoint_no endpoint = 2; + fabric_idx fabricIndex = 254; + } + + info event StateTransition = 0 { + OTAUpdateStateEnum previousState = 0; + OTAUpdateStateEnum newState = 1; + OTAChangeReasonEnum reason = 2; + nullable INT32U targetSoftwareVersion = 3; + } + + critical event VersionApplied = 1 { + INT32U softwareVersion = 0; + INT16U productID = 1; + } + + info event DownloadError = 2 { + INT32U softwareVersion = 0; + INT64U bytesDownloaded = 1; + nullable INT8U progressPercent = 2; + nullable INT64S platformCode = 3; + } + + attribute ProviderLocation defaultOTAProviders[] = 0; + readonly attribute boolean updatePossible = 1; + readonly attribute OTAUpdateStateEnum updateState = 2; + readonly attribute nullable int8u updateStateProgress = 3; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct AnnounceOTAProviderRequest { + node_id providerNodeID = 0; + vendor_id vendorID = 1; + OTAAnnouncementReason announcementReason = 2; + optional OCTET_STRING<512> metadataForNode = 3; + endpoint_no endpoint = 4; + } + + command AnnounceOTAProvider(AnnounceOTAProviderRequest): DefaultSuccess = 0; +} + +server cluster LocalizationConfiguration = 43 { + attribute char_string<35> activeLocale = 0; + readonly attribute CHAR_STRING supportedLocales[] = 1; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster TimeFormatLocalization = 44 { + enum CalendarTypeEnum : ENUM8 { + kBuddhist = 0; + kChinese = 1; + kCoptic = 2; + kEthiopian = 3; + kGregorian = 4; + kHebrew = 5; + kIndian = 6; + kIslamic = 7; + kJapanese = 8; + kKorean = 9; + kPersian = 10; + kTaiwanese = 11; + } + + enum HourFormatEnum : ENUM8 { + k12hr = 0; + k24hr = 1; + } + + attribute HourFormatEnum hourFormat = 0; + attribute CalendarTypeEnum activeCalendarType = 1; + readonly attribute CalendarTypeEnum supportedCalendarTypes[] = 2; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster GeneralCommissioning = 48 { + enum CommissioningError : ENUM8 { + kOk = 0; + kValueOutsideRange = 1; + kInvalidAuthentication = 2; + kNoFailSafe = 3; + kBusyWithOtherAdmin = 4; + } + + enum RegulatoryLocationType : ENUM8 { + kIndoor = 0; + kOutdoor = 1; + kIndoorOutdoor = 2; + } + + struct BasicCommissioningInfo { + int16u failSafeExpiryLengthSeconds = 0; + int16u maxCumulativeFailsafeSeconds = 1; + } + + attribute access(write: administer) int64u breadcrumb = 0; + readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; + readonly attribute RegulatoryLocationType regulatoryConfig = 2; + readonly attribute RegulatoryLocationType locationCapability = 3; + readonly attribute boolean supportsConcurrentConnection = 4; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct ArmFailSafeRequest { + INT16U expiryLengthSeconds = 0; + INT64U breadcrumb = 1; + } + + request struct SetRegulatoryConfigRequest { + RegulatoryLocationType newRegulatoryConfig = 0; + CHAR_STRING countryCode = 1; + INT64U breadcrumb = 2; + } + + response struct ArmFailSafeResponse = 1 { + CommissioningError errorCode = 0; + CHAR_STRING debugText = 1; + } + + response struct SetRegulatoryConfigResponse = 3 { + CommissioningError errorCode = 0; + CHAR_STRING debugText = 1; + } + + response struct CommissioningCompleteResponse = 5 { + CommissioningError errorCode = 0; + CHAR_STRING debugText = 1; + } + + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + fabric command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; +} + +server cluster NetworkCommissioning = 49 { + enum NetworkCommissioningStatus : ENUM8 { + kSuccess = 0; + kOutOfRange = 1; + kBoundsExceeded = 2; + kNetworkIDNotFound = 3; + kDuplicateNetworkID = 4; + kNetworkNotFound = 5; + kRegulatoryError = 6; + kAuthFailure = 7; + kUnsupportedSecurity = 8; + kOtherConnectionFailure = 9; + kIPV6Failed = 10; + kIPBindFailed = 11; + kUnknownError = 12; + } + + enum WiFiBand : ENUM8 { + k2g4 = 0; + k3g65 = 1; + k5g = 2; + k6g = 3; + k60g = 4; + } + + bitmap NetworkCommissioningFeature : BITMAP32 { + kWiFiNetworkInterface = 0x1; + kThreadNetworkInterface = 0x2; + kEthernetNetworkInterface = 0x4; + } + + bitmap WiFiSecurity : BITMAP8 { + kUnencrypted = 0x1; + kWep = 0x2; + kWpaPersonal = 0x4; + kWpa2Personal = 0x8; + kWpa3Personal = 0x10; + } + + struct NetworkInfo { + octet_string<32> networkID = 0; + boolean connected = 1; + } + + struct WiFiInterfaceScanResult { + WiFiSecurity security = 0; + octet_string<32> ssid = 1; + octet_string<6> bssid = 2; + int16u channel = 3; + WiFiBand wiFiBand = 4; + int8s rssi = 5; + } + + struct ThreadInterfaceScanResult { + int16u panId = 0; + int64u extendedPanId = 1; + char_string<16> networkName = 2; + int16u channel = 3; + int8u version = 4; + octet_string<8> extendedAddress = 5; + int8s rssi = 6; + int8u lqi = 7; + } + + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; + readonly attribute int8u scanMaxTimeSeconds = 2; + readonly attribute int8u connectMaxTimeSeconds = 3; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct ScanNetworksRequest { + optional nullable OCTET_STRING<32> ssid = 0; + optional INT64U breadcrumb = 1; + } + + request struct AddOrUpdateWiFiNetworkRequest { + OCTET_STRING<32> ssid = 0; + OCTET_STRING<64> credentials = 1; + optional INT64U breadcrumb = 2; + } + + request struct AddOrUpdateThreadNetworkRequest { + OCTET_STRING<254> operationalDataset = 0; + optional INT64U breadcrumb = 1; + } + + request struct RemoveNetworkRequest { + OCTET_STRING<32> networkID = 0; + optional INT64U breadcrumb = 1; + } + + request struct ConnectNetworkRequest { + OCTET_STRING<32> networkID = 0; + optional INT64U breadcrumb = 1; + } + + request struct ReorderNetworkRequest { + OCTET_STRING<32> networkID = 0; + INT8U networkIndex = 1; + optional INT64U breadcrumb = 2; + } + + response struct ScanNetworksResponse = 1 { + NetworkCommissioningStatus networkingStatus = 0; + optional CHAR_STRING debugText = 1; + optional WiFiInterfaceScanResult wiFiScanResults[] = 2; + optional ThreadInterfaceScanResult threadScanResults[] = 3; + } + + response struct NetworkConfigResponse = 5 { + NetworkCommissioningStatus networkingStatus = 0; + optional CHAR_STRING<512> debugText = 1; + optional INT8U networkIndex = 2; + } + + response struct ConnectNetworkResponse = 7 { + NetworkCommissioningStatus networkingStatus = 0; + optional CHAR_STRING debugText = 1; + nullable INT32S errorValue = 2; + } + + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; +} + +server cluster DiagnosticLogs = 50 { + enum IntentEnum : ENUM8 { + kEndUserSupport = 0; + kNetworkDiag = 1; + kCrashLogs = 2; + } + + enum StatusEnum : ENUM8 { + kSuccess = 0; + kExhausted = 1; + kNoLogs = 2; + kBusy = 3; + kDenied = 4; + } + + enum TransferProtocolEnum : ENUM8 { + kResponsePayload = 0; + kBdx = 1; + } + + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct RetrieveLogsRequestRequest { + IntentEnum intent = 0; + TransferProtocolEnum requestedProtocol = 1; + optional CHAR_STRING<32> transferFileDesignator = 2; + } + + command RetrieveLogsRequest(RetrieveLogsRequestRequest): RetrieveLogsResponse = 0; +} + +server cluster GeneralDiagnostics = 51 { + enum BootReasonEnum : ENUM8 { + kUnspecified = 0; + kPowerOnReboot = 1; + kBrownOutReset = 2; + kSoftwareWatchdogReset = 3; + kHardwareWatchdogReset = 4; + kSoftwareUpdateCompleted = 5; + kSoftwareReset = 6; + } + + enum HardwareFaultEnum : ENUM8 { + kUnspecified = 0; + kRadio = 1; + kSensor = 2; + kResettableOverTemp = 3; + kNonResettableOverTemp = 4; + kPowerSource = 5; + kVisualDisplayFault = 6; + kAudioOutputFault = 7; + kUserInterfaceFault = 8; + kNonVolatileMemoryError = 9; + kTamperDetected = 10; + } + + enum InterfaceTypeEnum : ENUM8 { + kUnspecified = 0; + kWiFi = 1; + kEthernet = 2; + kCellular = 3; + kThread = 4; + } + + enum NetworkFaultEnum : ENUM8 { + kUnspecified = 0; + kHardwareFailure = 1; + kNetworkJammed = 2; + kConnectionFailed = 3; + } + + enum RadioFaultEnum : ENUM8 { + kUnspecified = 0; + kWiFiFault = 1; + kCellularFault = 2; + kThreadFault = 3; + kNFCFault = 4; + kBLEFault = 5; + kEthernetFault = 6; + } + + struct NetworkInterface { + char_string<32> name = 0; + boolean isOperational = 1; + nullable boolean offPremiseServicesReachableIPv4 = 2; + nullable boolean offPremiseServicesReachableIPv6 = 3; + octet_string<8> hardwareAddress = 4; + octet_string IPv4Addresses[] = 5; + octet_string IPv6Addresses[] = 6; + InterfaceTypeEnum type = 7; + } + + critical event HardwareFaultChange = 0 { + HardwareFaultEnum current[] = 0; + HardwareFaultEnum previous[] = 1; + } + + critical event RadioFaultChange = 1 { + RadioFaultEnum current[] = 0; + RadioFaultEnum previous[] = 1; + } + + critical event NetworkFaultChange = 2 { + NetworkFaultEnum current[] = 0; + NetworkFaultEnum previous[] = 1; + } + + critical event BootReason = 3 { + BootReasonEnum bootReason = 0; + } + + readonly attribute NetworkInterface networkInterfaces[] = 0; + readonly attribute int16u rebootCount = 1; + readonly attribute int64u upTime = 2; + readonly attribute int32u totalOperationalHours = 3; + readonly attribute BootReasonEnum bootReason = 4; + readonly attribute HardwareFaultEnum activeHardwareFaults[] = 5; + readonly attribute RadioFaultEnum activeRadioFaults[] = 6; + readonly attribute NetworkFaultEnum activeNetworkFaults[] = 7; + readonly attribute boolean testEventTriggersEnabled = 8; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct TestEventTriggerRequest { + OCTET_STRING<16> enableKey = 0; + INT64U eventTrigger = 1; + } + + command access(invoke: manage) TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0; +} + +server cluster SoftwareDiagnostics = 52 { + bitmap SoftwareDiagnosticsFeature : BITMAP32 { + kWaterMarks = 0x1; + } + + struct ThreadMetricsStruct { + int64u id = 0; + optional char_string<8> name = 1; + optional int32u stackFreeCurrent = 2; + optional int32u stackFreeMinimum = 3; + optional int32u stackSize = 4; + } + + info event SoftwareFault = 0 { + INT64U id = 0; + optional CHAR_STRING name = 1; + optional OCTET_STRING faultRecording = 2; + } + + readonly attribute ThreadMetricsStruct threadMetrics[] = 0; + readonly attribute int64u currentHeapFree = 1; + readonly attribute int64u currentHeapUsed = 2; + readonly attribute int64u currentHeapHighWatermark = 3; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + command ResetWatermarks(): DefaultSuccess = 0; +} + +server cluster WiFiNetworkDiagnostics = 54 { + enum AssociationFailureCauseEnum : ENUM8 { + kUnknown = 0; + kAssociationFailed = 1; + kAuthenticationFailed = 2; + kSsidNotFound = 3; + } + + enum ConnectionStatusEnum : ENUM8 { + kConnected = 0; + kNotConnected = 1; + } + + enum SecurityTypeEnum : ENUM8 { + kUnspecified = 0; + kNone = 1; + kWep = 2; + kWpa = 3; + kWpa2 = 4; + kWpa3 = 5; + } + + enum WiFiVersionEnum : ENUM8 { + kA = 0; + kB = 1; + kG = 2; + kN = 3; + kAc = 4; + kAx = 5; + } + + bitmap WiFiNetworkDiagnosticsFeature : BITMAP32 { + kPacketCounts = 0x1; + kErrorCounts = 0x2; + } + + info event Disconnection = 0 { + INT16U reasonCode = 0; + } + + info event AssociationFailure = 1 { + AssociationFailureCauseEnum associationFailure = 0; + INT16U status = 1; + } + + info event ConnectionStatus = 2 { + ConnectionStatusEnum connectionStatus = 0; + } + + readonly attribute nullable octet_string<6> bssid = 0; + readonly attribute nullable SecurityTypeEnum securityType = 1; + readonly attribute nullable WiFiVersionEnum wiFiVersion = 2; + readonly attribute nullable int16u channelNumber = 3; + readonly attribute nullable int8s rssi = 4; + readonly attribute nullable int32u beaconLostCount = 5; + readonly attribute nullable int32u beaconRxCount = 6; + readonly attribute nullable int32u packetMulticastRxCount = 7; + readonly attribute nullable int32u packetMulticastTxCount = 8; + readonly attribute nullable int32u packetUnicastRxCount = 9; + readonly attribute nullable int32u packetUnicastTxCount = 10; + readonly attribute nullable int64u currentMaxRate = 11; + readonly attribute nullable int64u overrunCount = 12; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + command ResetCounts(): DefaultSuccess = 0; +} + +server cluster AdministratorCommissioning = 60 { + enum CommissioningWindowStatusEnum : ENUM8 { + kWindowNotOpen = 0; + kEnhancedWindowOpen = 1; + kBasicWindowOpen = 2; + } + + enum StatusCode : ENUM8 { + kBusy = 2; + kPAKEParameterError = 3; + kWindowNotOpen = 4; + } + + readonly attribute CommissioningWindowStatusEnum windowStatus = 0; + readonly attribute nullable fabric_idx adminFabricIndex = 1; + readonly attribute nullable int16u adminVendorId = 2; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct OpenCommissioningWindowRequest { + INT16U commissioningTimeout = 0; + OCTET_STRING PAKEPasscodeVerifier = 1; + INT16U discriminator = 2; + INT32U iterations = 3; + OCTET_STRING salt = 4; + } + + request struct OpenBasicCommissioningWindowRequest { + INT16U commissioningTimeout = 0; + } + + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; +} + +server cluster OperationalCredentials = 62 { + enum CertificateChainTypeEnum : ENUM8 { + kDACCertificate = 1; + kPAICertificate = 2; + } + + enum NodeOperationalCertStatusEnum : ENUM8 { + kOk = 0; + kInvalidPublicKey = 1; + kInvalidNodeOpId = 2; + kInvalidNOC = 3; + kMissingCsr = 4; + kTableFull = 5; + kInvalidAdminSubject = 6; + kFabricConflict = 9; + kLabelConflict = 10; + kInvalidFabricIndex = 11; + } + + fabric_scoped struct NOCStruct { + fabric_sensitive octet_string noc = 1; + nullable fabric_sensitive octet_string icac = 2; + fabric_idx fabricIndex = 254; + } + + fabric_scoped struct FabricDescriptorStruct { + octet_string<65> rootPublicKey = 1; + vendor_id vendorID = 2; + fabric_id fabricID = 3; + node_id nodeID = 4; + char_string<32> label = 5; + fabric_idx fabricIndex = 254; + } + + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; + readonly attribute FabricDescriptorStruct fabrics[] = 1; + readonly attribute int8u supportedFabrics = 2; + readonly attribute int8u commissionedFabrics = 3; + readonly attribute OCTET_STRING trustedRootCertificates[] = 4; + readonly attribute int8u currentFabricIndex = 5; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct AttestationRequestRequest { + OCTET_STRING attestationNonce = 0; + } + + request struct CertificateChainRequestRequest { + CertificateChainTypeEnum certificateType = 0; + } + + request struct CSRRequestRequest { + OCTET_STRING CSRNonce = 0; + optional boolean isForUpdateNOC = 1; + } + + request struct AddNOCRequest { + OCTET_STRING NOCValue = 0; + optional OCTET_STRING ICACValue = 1; + OCTET_STRING IPKValue = 2; + Int64u caseAdminSubject = 3; + VENDOR_ID adminVendorId = 4; + } + + request struct UpdateNOCRequest { + OCTET_STRING NOCValue = 0; + optional OCTET_STRING ICACValue = 1; + } + + request struct UpdateFabricLabelRequest { + CHAR_STRING<32> label = 0; + } + + request struct RemoveFabricRequest { + fabric_idx fabricIndex = 0; + } + + request struct AddTrustedRootCertificateRequest { + OCTET_STRING rootCACertificate = 0; + } + + response struct AttestationResponse = 1 { + OCTET_STRING attestationElements = 0; + OCTET_STRING attestationSignature = 1; + } + + response struct CertificateChainResponse = 3 { + OCTET_STRING certificate = 0; + } + + response struct CSRResponse = 5 { + OCTET_STRING NOCSRElements = 0; + OCTET_STRING attestationSignature = 1; + } + + response struct NOCResponse = 8 { + NodeOperationalCertStatusEnum statusCode = 0; + optional fabric_idx fabricIndex = 1; + optional CHAR_STRING debugText = 2; + } + + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + fabric command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + fabric command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; +} + +server cluster GroupKeyManagement = 63 { + enum GroupKeySecurityPolicyEnum : ENUM8 { + kTrustFirst = 0; + kCacheAndSync = 1; + } + + fabric_scoped struct GroupKeyMapStruct { + group_id groupId = 1; + int16u groupKeySetID = 2; + fabric_idx fabricIndex = 254; + } + + fabric_scoped struct GroupInfoMapStruct { + group_id groupId = 1; + endpoint_no endpoints[] = 2; + optional char_string<16> groupName = 3; + fabric_idx fabricIndex = 254; + } + + struct GroupKeySetStruct { + int16u groupKeySetID = 0; + GroupKeySecurityPolicyEnum groupKeySecurityPolicy = 1; + nullable octet_string<16> epochKey0 = 2; + nullable epoch_us epochStartTime0 = 3; + nullable octet_string<16> epochKey1 = 4; + nullable epoch_us epochStartTime1 = 5; + nullable octet_string<16> epochKey2 = 6; + nullable epoch_us epochStartTime2 = 7; + } + + attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; + readonly attribute GroupInfoMapStruct groupTable[] = 1; + readonly attribute int16u maxGroupsPerFabric = 2; + readonly attribute int16u maxGroupKeysPerFabric = 3; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct KeySetWriteRequest { + GroupKeySetStruct groupKeySet = 0; + } + + request struct KeySetReadRequest { + INT16U groupKeySetID = 0; + } + + request struct KeySetRemoveRequest { + INT16U groupKeySetID = 0; + } + + request struct KeySetReadAllIndicesRequest { + INT16U groupKeySetIDs[] = 0; + } + + response struct KeySetReadResponse = 2 { + GroupKeySetStruct groupKeySet = 0; + } + + response struct KeySetReadAllIndicesResponse = 5 { + INT16U groupKeySetIDs[] = 0; + } + + fabric command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; + fabric command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; + fabric command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; + fabric command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; +} + +server cluster FixedLabel = 64 { + readonly attribute LabelStruct labelList[] = 0; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster UserLabel = 65 { + attribute access(write: manage) LabelStruct labelList[] = 0; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; +} + +server cluster ColorControl = 768 { + enum ColorLoopAction : ENUM8 { + kDeactivate = 0; + kActivateFromColorLoopStartEnhancedHue = 1; + kActivateFromEnhancedCurrentHue = 2; + } + + enum ColorLoopDirection : ENUM8 { + kDecrementHue = 0; + kIncrementHue = 1; + } + + enum ColorMode : ENUM8 { + kCurrentHueAndCurrentSaturation = 0; + kCurrentXAndCurrentY = 1; + kColorTemperature = 2; + } + + enum HueDirection : ENUM8 { + kShortestDistance = 0; + kLongestDistance = 1; + kUp = 2; + kDown = 3; + } + + enum HueMoveMode : ENUM8 { + kStop = 0; + kUp = 1; + kDown = 3; + } + + enum HueStepMode : ENUM8 { + kUp = 1; + kDown = 3; + } + + enum SaturationMoveMode : ENUM8 { + kStop = 0; + kUp = 1; + kDown = 3; + } + + enum SaturationStepMode : ENUM8 { + kUp = 1; + kDown = 3; + } + + bitmap ColorCapabilities : BITMAP16 { + kHueSaturationSupported = 0x1; + kEnhancedHueSupported = 0x2; + kColorLoopSupported = 0x4; + kXYAttributesSupported = 0x8; + kColorTemperatureSupported = 0x10; + } + + bitmap ColorControlFeature : BITMAP32 { + kHueAndSaturation = 0x1; + kEnhancedHue = 0x2; + kColorLoop = 0x4; + kXy = 0x8; + kColorTemperature = 0x10; + } + + bitmap ColorLoopUpdateFlags : BITMAP8 { + kUpdateAction = 0x1; + kUpdateDirection = 0x2; + kUpdateTime = 0x4; + kUpdateStartHue = 0x8; + } + + readonly attribute int8u currentHue = 0; + readonly attribute int8u currentSaturation = 1; + readonly attribute int16u remainingTime = 2; + readonly attribute int16u currentX = 3; + readonly attribute int16u currentY = 4; + readonly attribute int16u colorTemperatureMireds = 7; + readonly attribute enum8 colorMode = 8; + attribute bitmap8 options = 15; + readonly attribute nullable int8u numberOfPrimaries = 16; + readonly attribute int16u enhancedCurrentHue = 16384; + readonly attribute enum8 enhancedColorMode = 16385; + readonly attribute int8u colorLoopActive = 16386; + readonly attribute int8u colorLoopDirection = 16387; + readonly attribute int16u colorLoopTime = 16388; + readonly attribute int16u colorLoopStartEnhancedHue = 16389; + readonly attribute int16u colorLoopStoredEnhancedHue = 16390; + readonly attribute bitmap16 colorCapabilities = 16394; + readonly attribute int16u colorTempPhysicalMinMireds = 16395; + readonly attribute int16u colorTempPhysicalMaxMireds = 16396; + readonly attribute int16u coupleColorTempToLevelMinMireds = 16397; + attribute access(write: manage) nullable int16u startUpColorTemperatureMireds = 16400; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct MoveToHueRequest { + INT8U hue = 0; + HueDirection direction = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveHueRequest { + HueMoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepHueRequest { + HueStepMode stepMode = 0; + INT8U stepSize = 1; + INT8U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToSaturationRequest { + INT8U saturation = 0; + INT16U transitionTime = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct MoveSaturationRequest { + SaturationMoveMode moveMode = 0; + INT8U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepSaturationRequest { + SaturationStepMode stepMode = 0; + INT8U stepSize = 1; + INT8U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToHueAndSaturationRequest { + INT8U hue = 0; + INT8U saturation = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToColorRequest { + INT16U colorX = 0; + INT16U colorY = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveColorRequest { + INT16S rateX = 0; + INT16S rateY = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct StepColorRequest { + INT16S stepX = 0; + INT16S stepY = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct MoveToColorTemperatureRequest { + INT16U colorTemperatureMireds = 0; + INT16U transitionTime = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct EnhancedMoveToHueRequest { + INT16U enhancedHue = 0; + HueDirection direction = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct EnhancedMoveHueRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + BITMAP8 optionsMask = 2; + BITMAP8 optionsOverride = 3; + } + + request struct EnhancedStepHueRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct EnhancedMoveToHueAndSaturationRequest { + INT16U enhancedHue = 0; + INT8U saturation = 1; + INT16U transitionTime = 2; + BITMAP8 optionsMask = 3; + BITMAP8 optionsOverride = 4; + } + + request struct ColorLoopSetRequest { + ColorLoopUpdateFlags updateFlags = 0; + ColorLoopAction action = 1; + ColorLoopDirection direction = 2; + INT16U time = 3; + INT16U startHue = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + + request struct StopMoveStepRequest { + BITMAP8 optionsMask = 0; + BITMAP8 optionsOverride = 1; + } + + request struct MoveColorTemperatureRequest { + HueMoveMode moveMode = 0; + INT16U rate = 1; + INT16U colorTemperatureMinimumMireds = 2; + INT16U colorTemperatureMaximumMireds = 3; + BITMAP8 optionsMask = 4; + BITMAP8 optionsOverride = 5; + } + + request struct StepColorTemperatureRequest { + HueStepMode stepMode = 0; + INT16U stepSize = 1; + INT16U transitionTime = 2; + INT16U colorTemperatureMinimumMireds = 3; + INT16U colorTemperatureMaximumMireds = 4; + BITMAP8 optionsMask = 5; + BITMAP8 optionsOverride = 6; + } + + command MoveToHue(MoveToHueRequest): DefaultSuccess = 0; + command MoveHue(MoveHueRequest): DefaultSuccess = 1; + command StepHue(StepHueRequest): DefaultSuccess = 2; + command MoveToSaturation(MoveToSaturationRequest): DefaultSuccess = 3; + command MoveSaturation(MoveSaturationRequest): DefaultSuccess = 4; + command StepSaturation(StepSaturationRequest): DefaultSuccess = 5; + command MoveToHueAndSaturation(MoveToHueAndSaturationRequest): DefaultSuccess = 6; + command MoveToColor(MoveToColorRequest): DefaultSuccess = 7; + command MoveColor(MoveColorRequest): DefaultSuccess = 8; + command StepColor(StepColorRequest): DefaultSuccess = 9; + command MoveToColorTemperature(MoveToColorTemperatureRequest): DefaultSuccess = 10; + command EnhancedMoveToHue(EnhancedMoveToHueRequest): DefaultSuccess = 64; + command EnhancedMoveHue(EnhancedMoveHueRequest): DefaultSuccess = 65; + command EnhancedStepHue(EnhancedStepHueRequest): DefaultSuccess = 66; + command EnhancedMoveToHueAndSaturation(EnhancedMoveToHueAndSaturationRequest): DefaultSuccess = 67; + command ColorLoopSet(ColorLoopSetRequest): DefaultSuccess = 68; + command StopMoveStep(StopMoveStepRequest): DefaultSuccess = 71; + command MoveColorTemperature(MoveColorTemperatureRequest): DefaultSuccess = 75; + command StepColorTemperature(StepColorTemperatureRequest): DefaultSuccess = 76; +} + +endpoint 0 { + device type rootdevice = 22, version 1; + binding cluster OtaSoftwareUpdateProvider; + + server cluster Groups { + ram attribute nameSupport; + ram attribute featureMap; + ram attribute clusterRevision default = 4; + } + + server cluster Descriptor { + callback attribute deviceTypeList; + callback attribute serverList; + callback attribute clientList; + callback attribute partsList; + ram attribute featureMap; + callback attribute clusterRevision default = 1; + } + + server cluster AccessControl { + callback attribute acl; + callback attribute extension; + callback attribute subjectsPerAccessControlEntry default = 4; + callback attribute targetsPerAccessControlEntry default = 3; + callback attribute accessControlEntriesPerFabric default = 4; + callback attribute attributeList; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster BasicInformation { + callback attribute dataModelRevision default = 10; + callback attribute vendorName; + callback attribute vendorID; + callback attribute productName; + callback attribute productID; + persist attribute nodeLabel; + callback attribute location default = "XX"; + callback attribute hardwareVersion; + callback attribute hardwareVersionString; + callback attribute softwareVersion; + callback attribute softwareVersionString; + callback attribute manufacturingDate default = "20210614123456ZZ"; + callback attribute partNumber; + callback attribute productURL; + callback attribute productLabel; + callback attribute serialNumber; + persist attribute localConfigDisabled; + ram attribute reachable default = 1; + callback attribute uniqueID; + callback attribute capabilityMinima; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster OtaSoftwareUpdateRequestor { + callback attribute defaultOTAProviders; + ram attribute updatePossible default = 1; + ram attribute updateState; + ram attribute updateStateProgress; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster LocalizationConfiguration { + persist attribute activeLocale default = "en-US"; + callback attribute supportedLocales; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster TimeFormatLocalization { + persist attribute hourFormat; + persist attribute activeCalendarType; + callback attribute supportedCalendarTypes; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster GeneralCommissioning { + ram attribute breadcrumb; + callback attribute basicCommissioningInfo; + callback attribute regulatoryConfig; + callback attribute locationCapability; + callback attribute supportsConcurrentConnection default = 1; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster NetworkCommissioning { + ram attribute maxNetworks; + callback attribute networks; + ram attribute scanMaxTimeSeconds; + ram attribute connectMaxTimeSeconds; + ram attribute interfaceEnabled; + ram attribute lastNetworkingStatus; + ram attribute lastNetworkID; + ram attribute lastConnectErrorValue; + ram attribute featureMap default = 2; + ram attribute clusterRevision default = 1; + } + + server cluster DiagnosticLogs { + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster GeneralDiagnostics { + callback attribute networkInterfaces; + callback attribute rebootCount; + callback attribute upTime; + callback attribute totalOperationalHours; + callback attribute bootReason; + callback attribute activeHardwareFaults; + callback attribute activeRadioFaults; + callback attribute activeNetworkFaults; + callback attribute testEventTriggersEnabled; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster SoftwareDiagnostics { + callback attribute threadMetrics; + callback attribute currentHeapFree; + callback attribute currentHeapUsed; + callback attribute currentHeapHighWatermark; + ram attribute featureMap default = 1; + ram attribute clusterRevision default = 1; + } + + server cluster WiFiNetworkDiagnostics { + callback attribute bssid; + callback attribute securityType; + callback attribute wiFiVersion; + callback attribute channelNumber; + callback attribute rssi; + callback attribute beaconLostCount; + callback attribute beaconRxCount; + callback attribute packetMulticastRxCount; + callback attribute packetMulticastTxCount; + callback attribute packetUnicastRxCount; + callback attribute packetUnicastTxCount; + callback attribute currentMaxRate; + callback attribute overrunCount; + ram attribute featureMap default = 3; + ram attribute clusterRevision default = 1; + } + + server cluster AdministratorCommissioning { + callback attribute windowStatus; + callback attribute adminFabricIndex default = 1; + callback attribute adminVendorId; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster OperationalCredentials { + callback attribute NOCs; + callback attribute fabrics; + callback attribute supportedFabrics; + callback attribute commissionedFabrics; + callback attribute trustedRootCertificates; + callback attribute currentFabricIndex; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster GroupKeyManagement { + callback attribute groupKeyMap; + callback attribute groupTable; + callback attribute maxGroupsPerFabric; + callback attribute maxGroupKeysPerFabric; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster FixedLabel { + callback attribute labelList; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } + + server cluster UserLabel { + callback attribute labelList; + ram attribute featureMap; + ram attribute clusterRevision default = 1; + } +} +endpoint 1 { + device type dimmablelight = 257, version 1; + + server cluster Identify { + ram attribute identifyTime; + ram attribute identifyType; + ram attribute featureMap; + ram attribute clusterRevision default = 4; + } + + server cluster Groups { + ram attribute nameSupport; + ram attribute featureMap; + ram attribute clusterRevision default = 4; + } + + server cluster OnOff { + persist attribute onOff; + ram attribute globalSceneControl default = 0x01; + ram attribute onTime; + ram attribute offWaitTime; + persist attribute startUpOnOff default = 0xFF; + ram attribute featureMap default = 1; + ram attribute clusterRevision default = 4; + } + + server cluster LevelControl { + persist attribute currentLevel default = 0x01; + ram attribute remainingTime; + ram attribute minLevel default = 0x01; + ram attribute maxLevel default = 0xFE; + ram attribute currentFrequency; + ram attribute minFrequency; + ram attribute maxFrequency; + ram attribute options; + ram attribute onOffTransitionTime; + ram attribute onLevel default = 0xFF; + ram attribute onTransitionTime; + ram attribute offTransitionTime; + ram attribute defaultMoveRate default = 50; + persist attribute startUpCurrentLevel default = 255; + ram attribute featureMap default = 3; + ram attribute clusterRevision default = 5; + } + + server cluster Descriptor { + callback attribute deviceTypeList; + callback attribute serverList; + callback attribute clientList; + callback attribute partsList; + ram attribute featureMap; + callback attribute clusterRevision default = 1; + } + + server cluster ColorControl { + ram attribute currentHue; + ram attribute currentSaturation; + ram attribute remainingTime; + ram attribute currentX default = 0x616B; + ram attribute currentY default = 0x607D; + ram attribute colorTemperatureMireds default = 0x00FA; + ram attribute colorMode default = 0x01; + ram attribute options; + ram attribute numberOfPrimaries; + ram attribute enhancedCurrentHue; + ram attribute enhancedColorMode default = 0x01; + ram attribute colorLoopActive; + ram attribute colorLoopDirection; + ram attribute colorLoopTime default = 0x0019; + ram attribute colorLoopStartEnhancedHue default = 0x2300; + ram attribute colorLoopStoredEnhancedHue; + ram attribute colorCapabilities default = 0x1F; + ram attribute colorTempPhysicalMinMireds; + ram attribute colorTempPhysicalMaxMireds default = 0xFEFF; + ram attribute coupleColorTempToLevelMinMireds; + ram attribute startUpColorTemperatureMireds; + ram attribute featureMap default = 0x1F; + ram attribute clusterRevision default = 5; + } +} + + diff --git a/examples/lighting-app/silabs/SiWx917/data_model/lighting-wifi-app.zap b/examples/lighting-app/silabs/SiWx917/data_model/lighting-wifi-app.zap new file mode 100644 index 00000000000000..a005282133c0da --- /dev/null +++ b/examples/lighting-app/silabs/SiWx917/data_model/lighting-wifi-app.zap @@ -0,0 +1,8198 @@ +{ + "featureLevel": 92, + "creator": "zap", + "keyValuePairs": [ + { + "key": "commandDiscovery", + "value": "1" + }, + { + "key": "defaultResponsePolicy", + "value": "always" + }, + { + "key": "manufacturerCodes", + "value": "0x1002" + } + ], + "package": [ + { + "pathRelativity": "relativeToZap", + "path": "../../../../../src/app/zap-templates/zcl/zcl.json", + "type": "zcl-properties", + "category": "matter", + "version": 1, + "description": "Matter SDK ZCL data" + }, + { + "pathRelativity": "relativeToZap", + "path": "../../../../../src/app/zap-templates/app-templates.json", + "type": "gen-templates-json", + "version": "chip-v1" + } + ], + "endpointTypes": [ + { + "name": "MA-rootdevice", + "deviceTypeName": "MA-rootdevice", + "deviceTypeCode": 22, + "deviceTypeProfileId": 259, + "clusters": [ + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "IdentifyTime", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddGroup", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewGroup", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetGroupMembership", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveGroup", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllGroups", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddGroupIfIdentifying", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AddGroupResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewGroupResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetGroupMembershipResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveGroupResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "NameSupport", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddScene", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewScene", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveScene", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllScenes", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StoreScene", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RecallScene", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetSceneMembership", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "AddSceneResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewSceneResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveSceneResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveAllScenesResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StoreSceneResponse", + "code": 4, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetSceneMembershipResponse", + "code": 6, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "SceneCount", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentScene", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentGroup", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "group_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SceneValid", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NameSupport", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Off", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "On", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "OnOff", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/off Switch Configuration", + "code": 7, + "mfgCode": null, + "define": "ON_OFF_SWITCH_CONFIGURATION_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/off Switch Configuration", + "code": 7, + "mfgCode": null, + "define": "ON_OFF_SWITCH_CONFIGURATION_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "switch type", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "switch actions", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "MoveToLevel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Move", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Step", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Stop", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveToLevelWithOnOff", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveWithOnOff", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StepWithOnOff", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StopWithOnOff", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "CurrentLevel", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "DeviceTypeList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ServerList", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClientList", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PartsList", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Access Control", + "code": 31, + "mfgCode": null, + "define": "ACCESS_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Access Control", + "code": 31, + "mfgCode": null, + "define": "ACCESS_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "ACL", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Extension", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SubjectsPerAccessControlEntry", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TargetsPerAccessControlEntry", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AccessControlEntriesPerFabric", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic Information", + "code": 40, + "mfgCode": null, + "define": "BASIC_INFORMATION_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic Information", + "code": 40, + "mfgCode": null, + "define": "BASIC_INFORMATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "DataModelRevision", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "10", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorName", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorID", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "vendor_id", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductName", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductID", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NodeLabel", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Location", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "XX", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersion", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersionString", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersion", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersionString", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ManufacturingDate", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "20210614123456ZZ", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartNumber", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductURL", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "long_char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductLabel", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SerialNumber", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LocalConfigDisabled", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Reachable", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UniqueID", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CapabilityMinima", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "CapabilityMinimaStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Provider", + "code": 41, + "mfgCode": null, + "define": "OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER", + "side": "client", + "enabled": 1, + "commands": [ + { + "name": "QueryImage", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ApplyUpdateRequest", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "NotifyUpdateApplied", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Provider", + "code": 41, + "mfgCode": null, + "define": "OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "QueryImageResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ApplyUpdateResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Requestor", + "code": 42, + "mfgCode": null, + "define": "OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AnnounceOTAProvider", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "OTA Software Update Requestor", + "code": 42, + "mfgCode": null, + "define": "OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "DefaultOTAProviders", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "UpdatePossible", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UpdateState", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "OTAUpdateStateEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UpdateStateProgress", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Localization Configuration", + "code": 43, + "mfgCode": null, + "define": "LOCALIZATION_CONFIGURATION_CLUSTER", + "side": "client", + "enabled": 0 + }, + { + "name": "Localization Configuration", + "code": 43, + "mfgCode": null, + "define": "LOCALIZATION_CONFIGURATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "ActiveLocale", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "en-US", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SupportedLocales", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Time Format Localization", + "code": 44, + "mfgCode": null, + "define": "TIME_FORMAT_LOCALIZATION_CLUSTER", + "side": "client", + "enabled": 0 + }, + { + "name": "Time Format Localization", + "code": 44, + "mfgCode": null, + "define": "TIME_FORMAT_LOCALIZATION_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "HourFormat", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "HourFormatEnum", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveCalendarType", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "CalendarTypeEnum", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SupportedCalendarTypes", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Unit Localization", + "code": 45, + "mfgCode": null, + "define": "UNIT_LOCALIZATION_CLUSTER", + "side": "client", + "enabled": 0 + }, + { + "name": "Unit Localization", + "code": 45, + "mfgCode": null, + "define": "UNIT_LOCALIZATION_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "TemperatureUnit", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "TempUnitEnum", + "included": 0, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "General Commissioning", + "code": 48, + "mfgCode": null, + "define": "GENERAL_COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ArmFailSafe", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SetRegulatoryConfig", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "CommissioningComplete", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "General Commissioning", + "code": 48, + "mfgCode": null, + "define": "GENERAL_COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "ArmFailSafeResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "SetRegulatoryConfigResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "CommissioningCompleteResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "Breadcrumb", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BasicCommissioningInfo", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "BasicCommissioningInfo", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RegulatoryConfig", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "RegulatoryLocationType", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LocationCapability", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "RegulatoryLocationType", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SupportsConcurrentConnection", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Network Commissioning", + "code": 49, + "mfgCode": null, + "define": "NETWORK_COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ScanNetworks", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "AddOrUpdateWiFiNetwork", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddOrUpdateThreadNetwork", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveNetwork", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ConnectNetwork", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ReorderNetwork", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Network Commissioning", + "code": 49, + "mfgCode": null, + "define": "NETWORK_COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "ScanNetworksResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "NetworkConfigResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ConnectNetworkResponse", + "code": 7, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "MaxNetworks", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Networks", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ScanMaxTimeSeconds", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ConnectMaxTimeSeconds", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "InterfaceEnabled", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastNetworkingStatus", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "NetworkCommissioningStatus", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastNetworkID", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "LastConnectErrorValue", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int32s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "2", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Diagnostic Logs", + "code": 50, + "mfgCode": null, + "define": "DIAGNOSTIC_LOGS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "RetrieveLogsRequest", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "General Diagnostics", + "code": 51, + "mfgCode": null, + "define": "GENERAL_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "General Diagnostics", + "code": 51, + "mfgCode": null, + "define": "GENERAL_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "TestEventTrigger", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "NetworkInterfaces", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RebootCount", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UpTime", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TotalOperationalHours", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BootReason", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "BootReasonEnum", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveHardwareFaults", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveRadioFaults", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ActiveNetworkFaults", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TestEventTriggersEnabled", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "false", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Software Diagnostics", + "code": 52, + "mfgCode": null, + "define": "SOFTWARE_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetWatermarks", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Software Diagnostics", + "code": 52, + "mfgCode": null, + "define": "SOFTWARE_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "ThreadMetrics", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentHeapFree", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentHeapUsed", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentHeapHighWatermark", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Thread Network Diagnostics", + "code": 53, + "mfgCode": null, + "define": "THREAD_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetCounts", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Thread Network Diagnostics", + "code": 53, + "mfgCode": null, + "define": "THREAD_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "Channel", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RoutingRole", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "RoutingRole", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NetworkName", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PanId", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ExtendedPanId", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MeshLocalPrefix", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OverrunCount", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NeighborTable", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RouteTable", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartitionId", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Weighting", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DataVersion", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "StableDataVersion", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LeaderRouterId", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DetachedRoleCount", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ChildRoleCount", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RouterRoleCount", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LeaderRoleCount", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "AttachAttemptCount", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartitionIdChangeCount", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BetterPartitionAttachAttemptCount", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ParentChangeCount", + "code": 21, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxTotalCount", + "code": 22, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxUnicastCount", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxBroadcastCount", + "code": 24, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxAckRequestedCount", + "code": 25, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxAckedCount", + "code": 26, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxNoAckRequestedCount", + "code": 27, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxDataCount", + "code": 28, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxDataPollCount", + "code": 29, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxBeaconCount", + "code": 30, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxBeaconRequestCount", + "code": 31, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxOtherCount", + "code": 32, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxRetryCount", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxDirectMaxRetryExpiryCount", + "code": 34, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxIndirectMaxRetryExpiryCount", + "code": 35, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxErrCcaCount", + "code": 36, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxErrAbortCount", + "code": 37, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxErrBusyChannelCount", + "code": 38, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxTotalCount", + "code": 39, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxUnicastCount", + "code": 40, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxBroadcastCount", + "code": 41, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxDataCount", + "code": 42, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxDataPollCount", + "code": 43, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxBeaconCount", + "code": 44, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxBeaconRequestCount", + "code": 45, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxOtherCount", + "code": 46, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxAddressFilteredCount", + "code": 47, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxDestAddrFilteredCount", + "code": 48, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxDuplicatedCount", + "code": 49, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrNoFrameCount", + "code": 50, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrUnknownNeighborCount", + "code": 51, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrInvalidSrcAddrCount", + "code": 52, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrSecCount", + "code": 53, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrFcsCount", + "code": 54, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RxErrOtherCount", + "code": 55, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ActiveTimestamp", + "code": 56, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PendingTimestamp", + "code": 57, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Delay", + "code": 58, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "SecurityPolicy", + "code": 59, + "mfgCode": null, + "side": "server", + "type": "SecurityPolicy", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ChannelPage0Mask", + "code": 60, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OperationalDatasetComponents", + "code": 61, + "mfgCode": null, + "side": "server", + "type": "OperationalDatasetComponents", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ActiveNetworkFaultsList", + "code": 62, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x000F", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "WiFi Network Diagnostics", + "code": 54, + "mfgCode": null, + "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetCounts", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "WiFi Network Diagnostics", + "code": 54, + "mfgCode": null, + "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "BSSID", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "octet_string", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SecurityType", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "SecurityTypeEnum", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "WiFiVersion", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "WiFiVersionEnum", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ChannelNumber", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RSSI", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int8s", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "BeaconLostCount", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "BeaconRxCount", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PacketMulticastRxCount", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PacketMulticastTxCount", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PacketUnicastRxCount", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PacketUnicastTxCount", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentMaxRate", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OverrunCount", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Ethernet Network Diagnostics", + "code": 55, + "mfgCode": null, + "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "ResetCounts", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Ethernet Network Diagnostics", + "code": 55, + "mfgCode": null, + "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "PHYRate", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "PHYRateEnum", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FullDuplex", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PacketRxCount", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PacketTxCount", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TxErrCount", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CollisionCount", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OverrunCount", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CarrierDetect", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "TimeSinceReset", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000000000000000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "client", + "enabled": 0 + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Administrator Commissioning", + "code": 60, + "mfgCode": null, + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "OpenCommissioningWindow", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "OpenBasicCommissioningWindow", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RevokeCommissioning", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Administrator Commissioning", + "code": 60, + "mfgCode": null, + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "WindowStatus", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "CommissioningWindowStatusEnum", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AdminFabricIndex", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "fabric_idx", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AdminVendorId", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Operational Credentials", + "code": 62, + "mfgCode": null, + "define": "OPERATIONAL_CREDENTIALS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AttestationRequest", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "CertificateChainRequest", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "CSRRequest", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "AddNOC", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "UpdateNOC", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "UpdateFabricLabel", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "RemoveFabric", + "code": 10, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "AddTrustedRootCertificate", + "code": 11, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Operational Credentials", + "code": 62, + "mfgCode": null, + "define": "OPERATIONAL_CREDENTIALS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AttestationResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "CertificateChainResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "CSRResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "NOCResponse", + "code": 8, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "NOCs", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Fabrics", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SupportedFabrics", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CommissionedFabrics", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "TrustedRootCertificates", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentFabricIndex", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Group Key Management", + "code": 63, + "mfgCode": null, + "define": "GROUP_KEY_MANAGEMENT_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "KeySetWrite", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetRead", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetRemove", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "KeySetReadAllIndices", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ] + }, + { + "name": "Group Key Management", + "code": 63, + "mfgCode": null, + "define": "GROUP_KEY_MANAGEMENT_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "KeySetReadResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "KeySetReadAllIndicesResponse", + "code": 5, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "GroupKeyMap", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "GroupTable", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxGroupsPerFabric", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxGroupKeysPerFabric", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "client", + "enabled": 0 + }, + { + "name": "Fixed Label", + "code": 64, + "mfgCode": null, + "define": "FIXED_LABEL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "LabelList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "User Label", + "code": 65, + "mfgCode": null, + "define": "USER_LABEL_CLUSTER", + "side": "client", + "enabled": 0 + }, + { + "name": "User Label", + "code": 65, + "mfgCode": null, + "define": "USER_LABEL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "LabelList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + } + ] + }, + { + "name": "MA-dimmablelight", + "deviceTypeName": "MA-dimmablelight", + "deviceTypeCode": 257, + "deviceTypeProfileId": 259, + "clusters": [ + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Identify", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "TriggerEffect", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Identify", + "code": 3, + "mfgCode": null, + "define": "IDENTIFY_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "IdentifyTime", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "IdentifyType", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddGroup", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewGroup", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetGroupMembership", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveGroup", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllGroups", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "AddGroupIfIdentifying", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Groups", + "code": 4, + "mfgCode": null, + "define": "GROUPS_CLUSTER", + "side": "server", + "enabled": 1, + "commands": [ + { + "name": "AddGroupResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewGroupResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetGroupMembershipResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveGroupResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "NameSupport", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "AddScene", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ViewScene", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveScene", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RemoveAllScenes", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StoreScene", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "RecallScene", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "GetSceneMembership", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "EnhancedAddScene", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "EnhancedViewScene", + "code": 65, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "CopyScene", + "code": 66, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Scenes", + "code": 5, + "mfgCode": null, + "define": "SCENES_CLUSTER", + "side": "server", + "enabled": 0, + "commands": [ + { + "name": "AddSceneResponse", + "code": 0, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "ViewSceneResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveSceneResponse", + "code": 2, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "RemoveAllScenesResponse", + "code": 3, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "StoreSceneResponse", + "code": 4, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + }, + { + "name": "GetSceneMembershipResponse", + "code": 6, + "mfgCode": null, + "source": "server", + "incoming": 0, + "outgoing": 1 + } + ], + "attributes": [ + { + "name": "SceneCount", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentScene", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentGroup", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "group_id", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SceneValid", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NameSupport", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "Off", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "On", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Toggle", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "OffWithEffect", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "OnWithRecallGlobalScene", + "code": 65, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "OnWithTimedOff", + "code": 66, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "On/Off", + "code": 6, + "mfgCode": null, + "define": "ON_OFF_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "OnOff", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "GlobalSceneControl", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OnTime", + "code": 16385, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OffWaitTime", + "code": 16386, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "StartUpOnOff", + "code": 16387, + "mfgCode": null, + "side": "server", + "type": "OnOffStartUpOnOff", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "MoveToLevel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Move", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Step", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Stop", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveToLevelWithOnOff", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveWithOnOff", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StepWithOnOff", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StopWithOnOff", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "CurrentLevel", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RemainingTime", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "MinLevel", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxLevel", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFE", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "CurrentFrequency", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MinFrequency", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "MaxFrequency", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Options", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "LevelControlOptions", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OnOffTransitionTime", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnLevel", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFF", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OnTransitionTime", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "OffTransitionTime", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "DefaultMoveRate", + "code": 20, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "50", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "StartUpCurrentLevel", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "NVM", + "singleton": 0, + "bounded": 0, + "defaultValue": "255", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Descriptor", + "code": 29, + "mfgCode": null, + "define": "DESCRIPTOR_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "DeviceTypeList", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ServerList", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClientList", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "PartsList", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic Information", + "code": 40, + "mfgCode": null, + "define": "BASIC_INFORMATION_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Basic Information", + "code": 40, + "mfgCode": null, + "define": "BASIC_INFORMATION_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "DataModelRevision", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "10", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorName", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "VendorID", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "vendor_id", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductName", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductID", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NodeLabel", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Location", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "XX", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersion", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "HardwareVersionString", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersion", + "code": 9, + "mfgCode": null, + "side": "server", + "type": "int32u", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SoftwareVersionString", + "code": 10, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ManufacturingDate", + "code": 11, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "20210614123456ZZ", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "PartNumber", + "code": 12, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductURL", + "code": 13, + "mfgCode": null, + "side": "server", + "type": "long_char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ProductLabel", + "code": 14, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "SerialNumber", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "LocalConfigDisabled", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "NVM", + "singleton": 1, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Reachable", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "UniqueID", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 1, + "storageOption": "External", + "singleton": 1, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CapabilityMinima", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "CapabilityMinimaStruct", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 1, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "MoveToHue", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveHue", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StepHue", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveToSaturation", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveSaturation", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StepSaturation", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveToHueAndSaturation", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveToColor", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveColor", + "code": 8, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "StepColor", + "code": 9, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "MoveToColorTemperature", + "code": 10, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "EnhancedMoveToHue", + "code": 64, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "EnhancedMoveHue", + "code": 65, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "EnhancedStepHue", + "code": 66, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "EnhancedMoveToHueAndSaturation", + "code": 67, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "ColorLoopSet", + "code": 68, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StopMoveStep", + "code": 71, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveColorTemperature", + "code": 75, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StepColorTemperature", + "code": 76, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Color Control", + "code": 768, + "mfgCode": null, + "define": "COLOR_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "CurrentHue", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentSaturation", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "RemainingTime", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentX", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x616B", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CurrentY", + "code": 4, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x607D", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "DriftCompensation", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CompensationText", + "code": 6, + "mfgCode": null, + "side": "server", + "type": "char_string", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorTemperatureMireds", + "code": 7, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00FA", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorMode", + "code": 8, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Options", + "code": 15, + "mfgCode": null, + "side": "server", + "type": "bitmap8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "NumberOfPrimaries", + "code": 16, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "Primary1X", + "code": 17, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Primary1Y", + "code": 18, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Primary1Intensity", + "code": 19, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Primary2X", + "code": 21, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Primary2Y", + "code": 22, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Primary2Intensity", + "code": 23, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Primary3X", + "code": 25, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Primary3Y", + "code": 26, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Primary3Intensity", + "code": 27, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Primary4X", + "code": 32, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Primary4Y", + "code": 33, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Primary4Intensity", + "code": 34, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Primary5X", + "code": 36, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Primary5Y", + "code": 37, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Primary5Intensity", + "code": 38, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Primary6X", + "code": 40, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Primary6Y", + "code": 41, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "Primary6Intensity", + "code": 42, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WhitePointX", + "code": 48, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "WhitePointY", + "code": 49, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ColorPointRX", + "code": 50, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ColorPointRY", + "code": 51, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ColorPointRIntensity", + "code": 52, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ColorPointGX", + "code": 54, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ColorPointGY", + "code": 55, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ColorPointGIntensity", + "code": 56, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ColorPointBX", + "code": 58, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ColorPointBY", + "code": 59, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ColorPointBIntensity", + "code": 60, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 0, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "EnhancedCurrentHue", + "code": 16384, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "EnhancedColorMode", + "code": 16385, + "mfgCode": null, + "side": "server", + "type": "enum8", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x01", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopActive", + "code": 16386, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopDirection", + "code": 16387, + "mfgCode": null, + "side": "server", + "type": "int8u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x00", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopTime", + "code": 16388, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0019", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopStartEnhancedHue", + "code": 16389, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x2300", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorLoopStoredEnhancedHue", + "code": 16390, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorCapabilities", + "code": 16394, + "mfgCode": null, + "side": "server", + "type": "bitmap16", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x1F", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorTempPhysicalMinMireds", + "code": 16395, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0000", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "ColorTempPhysicalMaxMireds", + "code": 16396, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0xFEFF", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "CoupleColorTempToLevelMinMireds", + "code": 16397, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "StartUpColorTemperatureMireds", + "code": 16400, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "GeneratedCommandList", + "code": 65528, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AcceptedCommandList", + "code": 65529, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 0, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x1F", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "5", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Occupancy Sensing", + "code": 1030, + "mfgCode": null, + "define": "OCCUPANCY_SENSING_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + }, + { + "name": "Occupancy Sensing", + "code": 1030, + "mfgCode": null, + "define": "OCCUPANCY_SENSING_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ + { + "name": "Occupancy", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "OccupancyBitmap", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OccupancySensorType", + "code": 1, + "mfgCode": null, + "side": "server", + "type": "OccupancySensorTypeEnum", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "OccupancySensorTypeBitmap", + "code": 2, + "mfgCode": null, + "side": "server", + "type": "OccupancySensorTypeBitmap", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 0, + "maxInterval": 65344, + "reportableChange": 0 + } + ] + } + ] + } + ], + "endpoints": [ + { + "endpointTypeName": "MA-rootdevice", + "endpointTypeIndex": 0, + "profileId": 259, + "endpointId": 0, + "networkId": 0, + "endpointVersion": 1, + "deviceIdentifier": 22 + }, + { + "endpointTypeName": "MA-dimmablelight", + "endpointTypeIndex": 1, + "profileId": 259, + "endpointId": 1, + "networkId": 0, + "endpointVersion": 1, + "deviceIdentifier": 257 + } + ] +} \ No newline at end of file diff --git a/examples/lighting-app/silabs/SiWx917/with_pw_rpc.gni b/examples/lighting-app/silabs/SiWx917/with_pw_rpc.gni index 3e2b6e54411c6c..753a655dcd7668 100644 --- a/examples/lighting-app/silabs/SiWx917/with_pw_rpc.gni +++ b/examples/lighting-app/silabs/SiWx917/with_pw_rpc.gni @@ -19,8 +19,9 @@ import("//build_overrides/chip.gni") import("${chip_root}/config/efr32/lib/pw_rpc/pw_rpc.gni") import("${chip_root}/examples/platform/silabs/SiWx917/args.gni") -efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain") +siwx917_sdk_target = get_label_info(":sdk", "label_no_toolchain") +app_data_model = "${chip_root}/examples/lighting-app/lighting-common" chip_enable_pw_rpc = true chip_enable_openthread = true chip_build_pw_trace_lib = true diff --git a/examples/lighting-app/silabs/efr32/BUILD.gn b/examples/lighting-app/silabs/efr32/BUILD.gn index 24a917ee2a3f41..c47228b35dc589 100644 --- a/examples/lighting-app/silabs/efr32/BUILD.gn +++ b/examples/lighting-app/silabs/efr32/BUILD.gn @@ -18,8 +18,8 @@ import("//build_overrides/efr32_sdk.gni") import("//build_overrides/pigweed.gni") import("${build_root}/config/defaults.gni") -import("${efr32_sdk_build_root}/efr32_executable.gni") import("${efr32_sdk_build_root}/efr32_sdk.gni") +import("${efr32_sdk_build_root}/silabs_executable.gni") import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni") import("${chip_root}/src/platform/device.gni") @@ -83,7 +83,7 @@ efr32_sdk("sdk") { } } -efr32_executable("lighting_app") { +silabs_executable("lighting_app") { output_name = "chip-efr32-lighting-example.out" include_dirs = [ "include" ] defines = [] diff --git a/examples/lock-app/silabs/SiWx917/.gn b/examples/lock-app/silabs/SiWx917/.gn index 4c078f6acefdcc..0adefc6ff99c6a 100644 --- a/examples/lock-app/silabs/SiWx917/.gn +++ b/examples/lock-app/silabs/SiWx917/.gn @@ -23,7 +23,5 @@ check_system_includes = true default_args = { target_cpu = "arm" target_os = "freertos" - chip_openthread_ftd = true - import("//args.gni") } diff --git a/examples/lock-app/silabs/SiWx917/BUILD.gn b/examples/lock-app/silabs/SiWx917/BUILD.gn index 6d172ef773be91..0d6bdcd9781be9 100644 --- a/examples/lock-app/silabs/SiWx917/BUILD.gn +++ b/examples/lock-app/silabs/SiWx917/BUILD.gn @@ -19,7 +19,7 @@ import("//build_overrides/pigweed.gni") import("${build_root}/config/defaults.gni") import("${efr32_sdk_build_root}/SiWx917_sdk.gni") -import("${efr32_sdk_build_root}/efr32_executable.gni") +import("${efr32_sdk_build_root}/silabs_executable.gni") import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni") import("${chip_root}/src/platform/device.gni") @@ -34,101 +34,14 @@ assert(current_os == "freertos") efr32_project_dir = "${chip_root}/examples/lock-app/silabs/SiWx917" examples_plat_dir = "${chip_root}/examples/platform/silabs/SiWx917" examples_common_plat_dir = "${chip_root}/examples/platform/silabs" +import("${examples_plat_dir}/args.gni") declare_args() { # Dump memory usage at link time. chip_print_memory_usage = false - - # Monitor & log memory usage at runtime. - enable_heap_monitoring = false - - # Enable Sleepy end device - enable_sleepy_device = false - - # OTA timeout in seconds - OTA_periodic_query_timeout = 86400 - - # Wifi related stuff - they are overridden by gn -args="use_wf200=true" - sl_wfx_config_softap = false - sl_wfx_config_scan = true - - # Argument to force enable WPA3 security - rs91x_wpa3_only = false - - # use commissionable data for SiWx917 - siwx917_commissionable_data = false - - #default WiFi SSID - chip_default_wifi_ssid = "" - - #default Wifi Password - chip_default_wifi_psk = "" } -# Sanity check -assert(!(chip_enable_wifi && chip_enable_openthread)) -assert(!(use_SiWx917 && chip_enable_openthread)) -assert(!(use_wf200 && chip_enable_openthread)) -if (chip_enable_wifi) { - assert(use_SiWx917 || use_wf200) - enable_openthread_cli = false - import("${chip_root}/src/platform/silabs/SiWx917/wifi_args.gni") -} - -# ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD) -if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" || - silabs_board == "BRD2703A" || silabs_board == "BRD4319A") { - show_qr_code = false - disable_lcd = true -} - -defines = [] - -if (siwx917_commissionable_data) { - defines += [ "SIWX917_USE_COMISSIONABLE_DATA=1" ] -} - -# WiFi settings -if (chip_enable_wifi) { - if (chip_default_wifi_ssid != "") { - defines += [ - "CHIP_ONNETWORK_PAIRING=1", - "CHIP_WIFI_SSID=\"${chip_default_wifi_ssid}\"", - ] - } - if (chip_default_wifi_psk != "") { - assert(chip_default_wifi_ssid != "", - "ssid can't be null if psk is provided") - defines += [ "CHIP_WIFI_PSK=\"${chip_default_wifi_psk}\"" ] - } - wifi_sdk_dir = "${chip_root}/src/platform/silabs/SiWx917/wifi" - efr32_lwip_defs = [ "LWIP_NETIF_API=1" ] - if (lwip_ipv4) { - efr32_lwip_defs += [ - "LWIP_IPV4=1", - - # adds following options to provide - # them to .cpp source files - # flags ported from lwipopts file - # TODO: move lwipopts to one location - "LWIP_ARP=1", - "LWIP_ICMP=1", - "LWIP_IGMP=1", - "LWIP_DHCP=1", - "LWIP_DNS=0", - ] - } else { - efr32_lwip_defs += [ "LWIP_IPV4=0" ] - } - if (lwip_ipv6) { - efr32_lwip_defs += [ "LWIP_IPV6=1" ] - } else { - efr32_lwip_defs += [ "LWIP_IPV6=0" ] - } - import("${examples_plat_dir}/SiWx917/rs911x.gni") -} - -efr32_sdk("sdk") { +siwx917_sdk("sdk") { sources = [ "${efr32_project_dir}/include/CHIPProjectConfig.h", "${examples_plat_dir}/FreeRTOSConfig.h", @@ -142,150 +55,37 @@ efr32_sdk("sdk") { "${examples_common_plat_dir}", ] - defines += [ - "BOARD_ID=${silabs_board}", - "OTA_PERIODIC_TIMEOUT=${OTA_periodic_query_timeout}", - ] - + defines = [] if (chip_enable_pw_rpc) { defines += [ "HAL_VCOM_ENABLE=1", "PW_RPC_ENABLED", ] } - - # WiFi Settings - if (chip_enable_wifi) { - if (use_SiWx917) { - defines += rs911x_defs - include_dirs += rs911x_plat_incs - } else if (use_wf200) { - defines += wf200_defs - include_dirs += wf200_plat_incs - } - - if (use_rs911x_sockets) { - include_dirs += [ "${examples_plat_dir}/wifi/rsi-sockets" ] - defines += rs911x_sock_defs - } else { - # Using LWIP instead of the native TCP/IP stack - defines += efr32_lwip_defs - } - if (sl_wfx_config_softap) { - defines += [ "SL_WFX_CONFIG_SOFTAP" ] - } - if (sl_wfx_config_scan) { - defines += [ "SL_WFX_CONFIG_SCAN" ] - } - } } -efr32_executable("lock_app") { - output_name = "chip-efr32-lock-example.out" - public_configs = [ "${efr32_sdk_build_root}:silabs_config" ] +silabs_executable("lock_app") { + output_name = "chip-siwx917-lock-example.out" include_dirs = [ "include" ] defines = [] sources = [ - "${examples_common_plat_dir}/heap_4_silabs.c", - "${examples_plat_dir}/BaseApplication.cpp", - "${examples_plat_dir}/init_ccpPlatform.cpp", - "${examples_plat_dir}/matter_config.cpp", - "${examples_plat_dir}/siwx917_utils.cpp", "src/AppTask.cpp", "src/LockManager.cpp", "src/ZclCallbacks.cpp", "src/main.cpp", ] - if (use_wstk_leds) { - sources += [ "${examples_plat_dir}/LEDWidget.cpp" ] - } - - if (chip_enable_pw_rpc || chip_build_libshell || enable_openthread_cli || - use_wf200 || use_SiWx917) { - sources += [ "${examples_plat_dir}/uart.cpp" ] - } - if (chip_build_libshell) { sources += [ "src/EventHandlerLibShell.cpp" ] } deps = [ ":sdk", - "${chip_root}/examples/lock-app/lock-common", - "${chip_root}/examples/providers:device_info_provider", - "${chip_root}/src/lib", - "${chip_root}/src/setup_payload", - "${chip_root}/third_party/openthread/platforms:libopenthread-platform", - "${chip_root}/third_party/openthread/platforms:libopenthread-platform-utils", - "${examples_plat_dir}:efr-matter-shell", + "${examples_plat_dir}:siwx917-common", + app_data_model, ] - # OpenThread Settings - if (chip_enable_openthread) { - deps += [ - "${chip_root}/third_party/openthread:openthread", - "${chip_root}/third_party/openthread:openthread-platform", - "${examples_plat_dir}:efr-matter-shell", - ] - } - - if (chip_enable_ota_requestor) { - defines += [ "EFR32_OTA_ENABLED" ] - #sources += [ "${examples_plat_dir}/OTAConfig.cpp" ] - } - - # WiFi Settings - if (chip_enable_wifi) { - if (use_SiWx917) { - sources += rs911x_src_plat - - # All the stuff from wiseconnect - sources += rs911x_src_sapi - - # Apparently - the rsi library needs this (though we may not use use it) - sources += rs911x_src_sock - include_dirs += rs911x_inc_plat - - if (use_rs911x_sockets) { - # - # Using native sockets inside RS911x - # - include_dirs += rs911x_sock_inc - } else { - # - # We use LWIP - not built-in sockets - # - sources += rs911x_src_lwip - } - } else if (use_wf200) { - sources += wf200_plat_src - include_dirs += wf200_plat_incs - } - - if (rs91x_wpa3_only) { - # TODO: Change this macro once WF200 support is provided - defines += [ "WIFI_ENABLE_SECURITY_WPA3=1" ] - } - } - - if (!disable_lcd) { - sources += [ - "${examples_plat_dir}/display/demo-ui.c", - "${examples_plat_dir}/display/lcd.cpp", - ] - include_dirs += [ "${examples_plat_dir}/display" ] - defines += [ - "DISPLAY_ENABLED", - "IS_DEMO_LOCK=1", - ] - if (show_qr_code) { - defines += [ "QR_CODE_ENABLED" ] - deps += [ "${chip_root}/examples/common/QRCode" ] - } - } - if (chip_enable_pw_rpc) { defines += [ "PW_RPC_ENABLED", @@ -316,7 +116,7 @@ efr32_executable("lock_app") { "${chip_root}/examples/common/pigweed:locking_service.nanopb_rpc", "${chip_root}/examples/common/pigweed:ot_cli_service.nanopb_rpc", "${chip_root}/examples/common/pigweed:thread_service.nanopb_rpc", - "${examples_plat_dir}/pw_sys_io:pw_sys_io_efr32", + "${examples_plat_dir}/pw_sys_io:pw_sys_io_siwx917", ] deps += pw_build_LINK_DEPS @@ -327,11 +127,6 @@ efr32_executable("lock_app") { ] } - if (enable_heap_monitoring) { - sources += [ "${examples_common_plat_dir}/MemMonitoring.cpp" ] - defines += [ "HEAP_MONITORING" ] - } - ldscript = "${examples_plat_dir}/ldscripts/${silabs_family}.ld" inputs = [ ldscript ] @@ -353,22 +148,13 @@ efr32_executable("lock_app") { ] } - # Attestation Credentials - if (chip_build_platform_attestation_credentials_provider) { - deps += [ "${examples_plat_dir}:efr32-attestation-credentials" ] - } - - # Factory Data Provider - if (use_efr32_factory_data_provider) { - deps += [ "${examples_plat_dir}:efr32-factory-data-provider" ] - } - output_dir = root_out_dir } -group("efr32") { + +group("siwx917") { deps = [ ":lock_app" ] } group("default") { - deps = [ ":efr32" ] + deps = [ ":siwx917" ] } diff --git a/examples/lock-app/silabs/SiWx917/args.gni b/examples/lock-app/silabs/SiWx917/args.gni index 421090dbc97aae..85b837f7ba72a3 100644 --- a/examples/lock-app/silabs/SiWx917/args.gni +++ b/examples/lock-app/silabs/SiWx917/args.gni @@ -16,9 +16,7 @@ import("//build_overrides/chip.gni") import("${chip_root}/config/standalone/args.gni") import("${chip_root}/src/platform/silabs/SiWx917/args.gni") -efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain") +siwx917_sdk_target = get_label_info(":sdk", "label_no_toolchain") +app_data_model = "${chip_root}/examples/lock-app/lock-common" chip_enable_ota_requestor = true -chip_enable_openthread = true -openthread_external_platform = - "${chip_root}/third_party/openthread/platforms/efr32:libopenthread-efr32" diff --git a/examples/lock-app/silabs/SiWx917/build_for_wifi_args.gni b/examples/lock-app/silabs/SiWx917/build_for_wifi_args.gni deleted file mode 100644 index b1a0be42ca9351..00000000000000 --- a/examples/lock-app/silabs/SiWx917/build_for_wifi_args.gni +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright (c) 2020 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import("//build_overrides/chip.gni") -import("${chip_root}/config/standalone/args.gni") - -efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain") -chip_enable_openthread = false -import("${chip_root}/src/platform/silabs/SiWx917/wifi_args.gni") - -chip_enable_ota_requestor = true diff --git a/examples/lock-app/silabs/SiWx917/build_for_wifi_gnfile.gn b/examples/lock-app/silabs/SiWx917/build_for_wifi_gnfile.gn deleted file mode 100644 index d391814190d09f..00000000000000 --- a/examples/lock-app/silabs/SiWx917/build_for_wifi_gnfile.gn +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright (c) 2020 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import("//build_overrides/build.gni") - -# The location of the build configuration file. -buildconfig = "${build_root}/config/BUILDCONFIG.gn" - -# CHIP uses angle bracket includes. -check_system_includes = true - -default_args = { - target_cpu = "arm" - target_os = "freertos" - chip_enable_wifi = true - import("//build_for_wifi_args.gni") -} diff --git a/examples/lock-app/silabs/SiWx917/with_pw_rpc.gni b/examples/lock-app/silabs/SiWx917/with_pw_rpc.gni index faa281a6a4597c..ff81f847c35cdb 100644 --- a/examples/lock-app/silabs/SiWx917/with_pw_rpc.gni +++ b/examples/lock-app/silabs/SiWx917/with_pw_rpc.gni @@ -17,10 +17,11 @@ import("//build_overrides/chip.gni") import("${chip_root}/config/efr32/lib/pw_rpc/pw_rpc.gni") -import("${chip_root}/examples/platform/silabs/efr32/args.gni") +import("${chip_root}/examples/platform/silabs/Siwx917/args.gni") -efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain") +siwx917_sdk_target = get_label_info(":sdk", "label_no_toolchain") +app_data_model = "${chip_root}/examples/lock-app/lock-common" chip_enable_pw_rpc = true chip_enable_openthread = true chip_openthread_ftd = true diff --git a/examples/lock-app/silabs/efr32/BUILD.gn b/examples/lock-app/silabs/efr32/BUILD.gn index 5e2d2ffe36a85a..10ecbfc88f8181 100644 --- a/examples/lock-app/silabs/efr32/BUILD.gn +++ b/examples/lock-app/silabs/efr32/BUILD.gn @@ -18,8 +18,8 @@ import("//build_overrides/efr32_sdk.gni") import("//build_overrides/pigweed.gni") import("${build_root}/config/defaults.gni") -import("${efr32_sdk_build_root}/efr32_executable.gni") import("${efr32_sdk_build_root}/efr32_sdk.gni") +import("${efr32_sdk_build_root}/silabs_executable.gni") import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni") import("${chip_root}/src/platform/device.gni") @@ -83,7 +83,7 @@ efr32_sdk("sdk") { } } -efr32_executable("lock_app") { +silabs_executable("lock_app") { output_name = "chip-efr32-lock-example.out" include_dirs = [ "include" ] defines = [] diff --git a/examples/platform/silabs/SiWx917/BUILD.gn b/examples/platform/silabs/SiWx917/BUILD.gn index a8d56a0a6bb98a..429233c766ed62 100644 --- a/examples/platform/silabs/SiWx917/BUILD.gn +++ b/examples/platform/silabs/SiWx917/BUILD.gn @@ -14,10 +14,40 @@ import("//build_overrides/chip.gni") import("//build_overrides/efr32_sdk.gni") +import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni") import("${chip_root}/src/lib/lib.gni") import("${chip_root}/src/platform/device.gni") +import("${chip_root}/third_party/silabs/silabs_board.gni") import("${efr32_sdk_build_root}/SiWx917_sdk.gni") +silabs_common_plat_dir = "${chip_root}/examples/platform/silabs" +wifi_sdk_dir = "${chip_root}/src/platform/silabs/SiWx917/wifi" + +declare_args() { + enable_heap_monitoring = false + + # OTA timeout in seconds + ota_periodic_query_timeout_sec = 86400 + + # Wifi related stuff - they are overridden by gn -args="use_wf200=true" + sl_wfx_config_softap = false + sl_wfx_config_scan = true + + # Argument to force enable WPA3 security on rs91x + rs91x_wpa3_only = false + #default WiFi SSID + chip_default_wifi_ssid = "" + + #default Wifi Password + chip_default_wifi_psk = "" +} + +import("${silabs_common_plat_dir}/SiWx917/args.gni") + +# Sanity check +assert(chip_enable_wifi) +import("${chip_root}/src/platform/silabs/SiWx917/args.gni") +wisemcu_sdk_root = "${chip_root}/third_party/silabs/wisemcu-wifi-bt-sdk" silabs_common_plat_dir = "${chip_root}/examples/platform/silabs" config("chip_examples_project_config") { @@ -69,12 +99,19 @@ if (enable_dic) { } } -source_set("efr-matter-shell") { +source_set("siwx917-matter-shell") { if (chip_build_libshell) { defines = [ "ENABLE_CHIP_SHELL" ] - sources = [ "${silabs_common_plat_dir}/matter_shell.cpp" ] - include_dirs = [ "." ] + sources = [ + "${silabs_common_plat_dir}/matter_shell.cpp", + "${wisemcu_sdk_root}/platforms/si91x/drivers/cmsis_driver/UDMA.c", + "${wisemcu_sdk_root}/platforms/si91x/drivers/cmsis_driver/USART.c", + ] + include_dirs = [ + ".", + "${silabs_common_plat_dir}", + ] public_deps = [ "${chip_root}/examples/shell/shell_common:shell_common", @@ -93,7 +130,7 @@ config("attestation-credentials-config") { ] } -source_set("efr32-attestation-credentials") { +source_set("siwx917-attestation-credentials") { sources = [ "${silabs_common_plat_dir}/SilabsDeviceAttestationCreds.cpp", "${silabs_common_plat_dir}/SilabsDeviceAttestationCreds.h", @@ -107,7 +144,7 @@ source_set("efr32-attestation-credentials") { public_configs = [ ":attestation-credentials-config" ] } -source_set("efr32-factory-data-provider") { +source_set("siwx917-factory-data-provider") { sources = [ "SiWx917DeviceDataProvider.cpp", "SiWx917DeviceDataProvider.h", @@ -118,6 +155,146 @@ source_set("efr32-factory-data-provider") { "${chip_root}/src/platform:platform_base", "${chip_root}/src/setup_payload", ] +} + +config("siwx917-common-config") { + defines = [ "OTA_PERIODIC_TIMEOUT=${ota_periodic_query_timeout_sec}" ] - #public_configs = [ "" ] + if (!disable_lcd) { + include_dirs = [ "display" ] + + defines += [ "DISPLAY_ENABLED" ] + } + + if (show_qr_code) { + defines += [ "QR_CODE_ENABLED" ] + } + + if (chip_enable_ota_requestor) { + defines += [ "EFR32_OTA_ENABLED" ] + } + + if (enable_heap_monitoring) { + defines += [ "HEAP_MONITORING" ] + } +} + +config("silabs-wifi-config") { + defines = [] + include_dirs = [] + + if (chip_default_wifi_ssid != "") { + defines += [ + "SL_ONNETWORK_PAIRING=1", + "SL_WIFI_SSID=\"${chip_default_wifi_ssid}\"", + ] + } + if (chip_default_wifi_psk != "") { + assert(chip_default_wifi_ssid != "", + "ssid can't be null if psk is provided") + defines += [ "SL_WIFI_PSK=\"${chip_default_wifi_psk}\"" ] + } + + if (sl_wfx_config_softap) { + defines += [ "SL_WFX_CONFIG_SOFTAP" ] + } + + if (sl_wfx_config_scan) { + defines += [ "SL_WFX_CONFIG_SCAN" ] + } + + if (chip_enable_wifi_ipv4) { + defines += [ "CHIP_DEVICE_CONFIG_ENABLE_IPV4" ] + } + + if (rs91x_wpa3_only) { + defines += [ "WIFI_ENABLE_SECURITY_WPA3=1" ] + } +} + +source_set("siwx917-common") { + deps = [] + public_deps = [] + public_configs = [ + ":siwx917-common-config", + "${efr32_sdk_build_root}:silabs_config", + ] + + include_dirs = [ + ".", + "SiWx917/", + "${wifi_sdk_dir}", + "${wifi_sdk_dir}/hal", + ] + + sources = [ + "${silabs_common_plat_dir}/heap_4_silabs.c", + "${wifi_sdk_dir}/dhcp_client.cpp", + "${wifi_sdk_dir}/ethernetif.cpp", + "${wifi_sdk_dir}/lwip_netif.cpp", + "${wifi_sdk_dir}/wfx_notify.cpp", + "SiWx917/rsi_if.c", + "SiWx917/wfx_rsi_host.c", + "init_ccpPlatform.cpp", + "matter_config.cpp", + "siwx917_utils.cpp", + ] + + if (use_base_app) { + sources += [ "BaseApplication.cpp" ] + } + + if (use_wstk_leds) { + sources += [ "LEDWidget.cpp" ] + } + + if (chip_enable_pw_rpc || chip_build_libshell) { + sources += [ "uart.cpp" ] + } + + if (chip_enable_ota_requestor) { + # TODO: OTA For CCP Platform + } + + if (!disable_lcd) { + sources += [ + "display/demo-ui.c", + "display/lcd.cpp", + ] + + include_dirs += [ "display" ] + public_deps += [ "${chip_root}/examples/common/QRCode" ] + } + + if (enable_heap_monitoring) { + sources += [ "MemMonitoring.cpp" ] + } + + if (chip_enable_wifi) { + public_configs += [ ":silabs-wifi-config" ] + } + + if (chip_build_libshell) { + deps += [ ":siwx917-matter-shell" ] + } + + # Attestation Credentials + if (chip_build_platform_attestation_credentials_provider) { + deps += [ ":siwx917-attestation-credentials" ] + } + + # Factory Data Provider + if (use_efr32_factory_data_provider) { + public_deps += [ ":siwx917-factory-data-provider" ] + } + + public_deps += [ + "${chip_root}/examples/providers:device_info_provider", + "${chip_root}/src/lib", + "${chip_root}/src/setup_payload", + ] + + if (app_data_model != "") { + public_deps += [ app_data_model ] + } } diff --git a/examples/platform/silabs/SiWx917/SiWx917/rs911x.gni b/examples/platform/silabs/SiWx917/SiWx917/rs911x.gni deleted file mode 100644 index 15480cc0b191fe..00000000000000 --- a/examples/platform/silabs/SiWx917/SiWx917/rs911x.gni +++ /dev/null @@ -1,142 +0,0 @@ -import("//build_overrides/chip.gni") -import("//build_overrides/efr32_sdk.gni") -import("//build_overrides/pigweed.gni") - -examples_plat_dir = "${chip_root}/examples/platform/silabs/SiWx917" -wifi_sdk_dir = "${chip_root}/src/platform/silabs/SiWx917/wifi" -wisemcu_sdk_root = "${chip_root}/third_party/silabs/wisemcu-wifi-bt-sdk" -rs911x_cflags = [] - -rs911x_src_plat = [ - "${examples_plat_dir}/SiWx917/rsi_if.c", - "${examples_plat_dir}/SiWx917/wfx_rsi_host.c", - "${wifi_sdk_dir}/wfx_notify.cpp", - - "${examples_plat_dir}/SiWx917/hal/rsi_hal_mcu_timer.c", - "${examples_plat_dir}/SiWx917/hal/rsi_hal_mcu_platform_init.c", - "${examples_plat_dir}/SiWx917/hal/rsi_hal_mcu_m4.c", - "${wisemcu_sdk_root}/platforms/si91x/hal/src/rsi_bootup_config.c", - "${wisemcu_sdk_root}/platforms/si91x/hal/src/rsi_hal_mcu_m4_rom.c", - "${wisemcu_sdk_root}/platforms/si91x/hal/src/rsi_hal_mcu_interrupt.c", -] -rs911x_plat_incs = [ - "${wifi_sdk_dir}", - "${wifi_sdk_dir}/hal", - "${wisemcu_sdk_root}/platforms/si91x/hal/inc", - - "${chip_root}/src/platform/silabs/SiWx917", - "${chip_root}/src/platform/silabs/SiWx917/bluetooth", - "${examples_plat_dir}/SiWx917", - "${wisemcu_sdk_root}/platforms/si91x/hal/inc", -] - -# -# All the stuff from wiseconnect -# -rs911x_src_sapi = [ - "${wisemcu_sdk_root}/sapi/wlan/rsi_wlan_apis.c", - "${wisemcu_sdk_root}/sapi/common/rsi_apis_non_rom.c", - "${wisemcu_sdk_root}/sapi/common/rsi_apis_rom.c", - "${wisemcu_sdk_root}/sapi/common/rsi_common_apis.c", - "${wisemcu_sdk_root}/sapi/common/rsi_device_init_apis.c", - - # "${wisemcu_sdk_root}/sapi/common/rsi_wisemcu_hardware_setup.c", - "${wisemcu_sdk_root}/sapi/driver/device_interface/spi/rsi_spi_frame_rd_wr.c", - "${wisemcu_sdk_root}/sapi/driver/device_interface/spi/rsi_spi_functs.c", - "${wisemcu_sdk_root}/sapi/driver/device_interface/spi/rsi_spi_iface_init.c", - "${wisemcu_sdk_root}/sapi/driver/device_interface/spi/rsi_spi_mem_rd_wr.c", - "${wisemcu_sdk_root}/sapi/driver/device_interface/spi/rsi_spi_reg_rd_wr.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_common.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_device_init.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_driver_event_handlers.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_driver.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_events_rom.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_events.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_iap.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_nwk_rom.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_nwk.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_pkt_mgmt_rom.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_pkt_mgmt.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_queue_rom.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_queue.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_scheduler_rom.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_scheduler.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_setregion_countryinfo.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_timer.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_utils_rom.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_utils.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_wlan.c", - "${wisemcu_sdk_root}/sapi/rtos/freertos_wrapper/rsi_os_wrapper.c", -] - -foreach(src_file, rs911x_src_sapi) { - rs911x_cflags += [ - "-Wno-empty-body", - "-Wno-cpp", - "-Wno-missing-braces", - "-Wno-sign-compare", - "-Wno-error", - "-Wno-unknown-warning-option", - "-Wno-unused-variable", - "-Wno-implicit-function-declaration", - "-Wno-unused-function", - ] -} - -rs911x_inc_plat = [ - "${wifi_sdk_dir}", - "${examples_plat_dir}/SiWx917", - "${examples_plat_dir}/SiWx917/hal", - "${wisemcu_sdk_root}/sapi/include", - - #CCP Platfrom - "${wisemcu_sdk_root}/platforms/si91x/hal/inc", - "${wisemcu_sdk_root}/platforms/si91x/boards/brd4325a/inc", - "${wisemcu_sdk_root}/platforms/si91x/drivers/peripheral_drivers/inc", - "${wisemcu_sdk_root}/platforms/si91x/drivers/systemlevel/inc", - "${wisemcu_sdk_root}/platforms/si91x/core/chip/inc", - "${wisemcu_sdk_root}/platforms/si91x/core/config", - "${wisemcu_sdk_root}/platforms/si91x/drivers/cmsis_driver/config", - "${wisemcu_sdk_root}/platforms/si91x/drivers/rom_driver/inc", - "${wisemcu_sdk_root}/platforms/si91x/drivers/cmsis_driver", - "${wisemcu_sdk_root}/platforms/si91x/drivers/cmsis_driver/CMSIS/Driver/Include", - - "${wisemcu_sdk_root}/platforms/si91x/core/cmsis", - "${wisemcu_sdk_root}/platforms/si91x/service/system/inc", -] - -# Apparently - the rsi library needs this -rs911x_src_sock = [ - "${wisemcu_sdk_root}/sapi/network/socket/rsi_socket.c", - "${wisemcu_sdk_root}/sapi/network/socket/rsi_socket_rom.c", -] -rs911x_sock_inc = [ "${wifi_sdk_dir}/rsi-sockets" ] - -# -# If we use LWIP - not built-in sockets -# -rs911x_src_lwip = [ - "${wifi_sdk_dir}/ethernetif.cpp", - "${wifi_sdk_dir}/dhcp_client.cpp", - "${wifi_sdk_dir}/lwip_netif.cpp", -] -rs911x_defs = [ - "CCP_SI917_BRINGUP=1", - "SL_HEAP_SIZE=32768", - "SL_WIFI=1", - "RS911X_WIFI", - "RSI_WLAN_ENABLE", - "RSI_WITH_OS", - "RSI_M4_INTERFACE", #Enable CCP bus Interface - "RSI_WLAN_API_ENABLE", - "HMAC_512", - "LITTLE_ENDIAN_ORDER", - "_CHIP_9118", - - # "ROM_WIRELESS" - #__CC_ARM DEBUG_UART _CHIP_9118 LITTLE_ENDIAN_ORDER HMAC_512 -] -rs911x_sock_defs = [ - "RS911X_SOCKETS", - "RSI_IPV6_ENABLE", -] diff --git a/examples/platform/silabs/SiWx917/args.gni b/examples/platform/silabs/SiWx917/args.gni index 1726b62a75d86b..47d4cbb5c7bc20 100644 --- a/examples/platform/silabs/SiWx917/args.gni +++ b/examples/platform/silabs/SiWx917/args.gni @@ -19,3 +19,8 @@ chip_device_project_config_include = "" chip_project_config_include = "" chip_inet_project_config_include = "" chip_system_project_config_include = "" + +declare_args() { + app_data_model = "" + use_base_app = true +} diff --git a/examples/platform/silabs/efr32/BUILD.gn b/examples/platform/silabs/efr32/BUILD.gn index b07156d16189e1..64d4cc59454343 100644 --- a/examples/platform/silabs/efr32/BUILD.gn +++ b/examples/platform/silabs/efr32/BUILD.gn @@ -24,7 +24,7 @@ declare_args() { enable_heap_monitoring = false # OTA timeout in seconds - OTA_periodic_query_timeout = 86400 + ota_periodic_query_timeout_sec = 86400 # Wifi related stuff - they are overridden by gn -args="use_wf200=true" sl_wfx_config_softap = false @@ -209,7 +209,7 @@ source_set("efr32-ICD-subscription-callback") { } config("efr32-common-config") { - defines = [ "OTA_PERIODIC_TIMEOUT=${OTA_periodic_query_timeout}" ] + defines = [ "OTA_PERIODIC_TIMEOUT=${ota_periodic_query_timeout_sec}" ] if (!disable_lcd) { include_dirs = [ "display" ] @@ -236,14 +236,14 @@ config("silabs-wifi-config") { if (chip_default_wifi_ssid != "") { defines += [ - "CHIP_ONNETWORK_PAIRING=1", - "CHIP_WIFI_SSID=\"${chip_default_wifi_ssid}\"", + "SL_ONNETWORK_PAIRING=1", + "SL_WIFI_SSID=\"${chip_default_wifi_ssid}\"", ] } if (chip_default_wifi_psk != "") { assert(chip_default_wifi_ssid != "", "ssid can't be null if psk is provided") - defines += [ "CHIP_WIFI_PSK=\"${chip_default_wifi_psk}\"" ] + defines += [ "SL_WIFI_PSK=\"${chip_default_wifi_psk}\"" ] } if (sl_wfx_config_softap) { diff --git a/examples/thermostat/silabs/efr32/BUILD.gn b/examples/thermostat/silabs/efr32/BUILD.gn index d976118d53a905..ac33e5624e5987 100644 --- a/examples/thermostat/silabs/efr32/BUILD.gn +++ b/examples/thermostat/silabs/efr32/BUILD.gn @@ -18,8 +18,8 @@ import("//build_overrides/efr32_sdk.gni") import("//build_overrides/pigweed.gni") import("${build_root}/config/defaults.gni") -import("${efr32_sdk_build_root}/efr32_executable.gni") import("${efr32_sdk_build_root}/efr32_sdk.gni") +import("${efr32_sdk_build_root}/silabs_executable.gni") import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni") import("${chip_root}/src/platform/device.gni") @@ -99,7 +99,7 @@ efr32_sdk("sdk") { } } -efr32_executable("thermostat_app") { +silabs_executable("thermostat_app") { output_name = "chip-efr32-thermostat-example.out" include_dirs = [ "include" ] defines = [] diff --git a/examples/window-app/silabs/SiWx917/.gn b/examples/window-app/silabs/SiWx917/.gn index 4c078f6acefdcc..0adefc6ff99c6a 100644 --- a/examples/window-app/silabs/SiWx917/.gn +++ b/examples/window-app/silabs/SiWx917/.gn @@ -23,7 +23,5 @@ check_system_includes = true default_args = { target_cpu = "arm" target_os = "freertos" - chip_openthread_ftd = true - import("//args.gni") } diff --git a/examples/window-app/silabs/SiWx917/BUILD.gn b/examples/window-app/silabs/SiWx917/BUILD.gn index 4a7b7921d8b91a..a60e9f5bedcaad 100644 --- a/examples/window-app/silabs/SiWx917/BUILD.gn +++ b/examples/window-app/silabs/SiWx917/BUILD.gn @@ -20,7 +20,7 @@ import("//build_overrides/pigweed.gni") import("${build_root}/config/defaults.gni") import("${chip_root}/src/platform/device.gni") import("${efr32_sdk_build_root}/SiWx917_sdk.gni") -import("${efr32_sdk_build_root}/efr32_executable.gni") +import("${efr32_sdk_build_root}/silabs_executable.gni") assert(current_os == "freertos") @@ -28,107 +28,14 @@ project_dir = "${chip_root}/examples/window-app" efr32_project_dir = "${project_dir}/silabs/SiWx917" examples_plat_dir = "${chip_root}/examples/platform/silabs/SiWx917" examples_common_plat_dir = "${chip_root}/examples/platform/silabs" +import("${examples_plat_dir}/args.gni") declare_args() { # Dump memory usage at link time. chip_print_memory_usage = false - - # Monitor & log memory usage at runtime. - enable_heap_monitoring = false - - # Enable Sleepy end device - enable_sleepy_device = false - - # OTA timeout in seconds - OTA_periodic_query_timeout = 86400 - - # Wifi related stuff - they are overridden by gn -args="use_wf200=true" - sl_wfx_config_softap = false - sl_wfx_config_scan = true - - # Argument to force enable WPA3 security - rs91x_wpa3_only = false - - # use commissionable data for SiWx917 - siwx917_commissionable_data = false - - #default WiFi SSID - chip_default_wifi_ssid = "" - - #default Wifi Password - chip_default_wifi_psk = "" } -# Sanity check -assert(!(chip_enable_wifi && chip_enable_openthread)) -assert(!(use_SiWx917 && chip_enable_openthread)) -assert(!(use_wf200 && chip_enable_openthread)) -if (chip_enable_wifi) { - assert(use_SiWx917 || use_wf200) - enable_openthread_cli = false - import("${chip_root}/src/platform/silabs/SiWx917/wifi_args.gni") -} - -# ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD) -if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" || - silabs_board == "BRD2703A" || silabs_board == "BRD4319A") { - show_qr_code = false - disable_lcd = true -} - -defines = [] - -if (siwx917_commissionable_data) { - defines += [ "SIWX917_USE_COMISSIONABLE_DATA=1" ] -} - -# WiFi settings -if (chip_enable_wifi) { - # disabling LCD for MG24 for wifi - if (silabs_board == "BRD4186C" || silabs_board == "BRD4187C") { - show_qr_code = false - disable_lcd = true - } - if (chip_default_wifi_ssid != "") { - defines += [ - "CHIP_ONNETWORK_PAIRING=1", - "CHIP_WIFI_SSID=\"${chip_default_wifi_ssid}\"", - ] - } - if (chip_default_wifi_psk != "") { - assert(chip_default_wifi_ssid != "", - "ssid can't be null if psk is provided") - defines += [ "CHIP_WIFI_PSK=\"${chip_default_wifi_psk}\"" ] - } - wifi_sdk_dir = "${chip_root}/src/platform/silabs/SiWx917/wifi" - efr32_lwip_defs = [ "LWIP_NETIF_API=1" ] - if (lwip_ipv4) { - efr32_lwip_defs += [ - "LWIP_IPV4=1", - - # adds following options to provide - # them to .cpp source files - # flags ported from lwipopts file - # TODO: move lwipopts to one location - "LWIP_ARP=1", - "LWIP_ICMP=1", - "LWIP_IGMP=1", - "LWIP_DHCP=1", - "LWIP_DNS=0", - ] - } else { - efr32_lwip_defs += [ "LWIP_IPV4=0" ] - } - if (lwip_ipv6) { - efr32_lwip_defs += [ "LWIP_IPV6=1" ] - } else { - efr32_lwip_defs += [ "LWIP_IPV6=0" ] - } - - import("${examples_plat_dir}/SiWx917/rs911x.gni") -} - -efr32_sdk("sdk") { +siwx917_sdk("sdk") { sources = [ "${efr32_project_dir}/include/CHIPProjectConfig.h", "${examples_plat_dir}/FreeRTOSConfig.h", @@ -141,42 +48,10 @@ efr32_sdk("sdk") { "${chip_root}/src/lib", "${examples_common_plat_dir}", ] - - defines += [ - "BOARD_ID=${silabs_board}", - "OTA_PERIODIC_TIMEOUT=${OTA_periodic_query_timeout}", - ] - - # WiFi Settings - if (chip_enable_wifi) { - if (use_SiWx917) { - defines += rs911x_defs - include_dirs += rs911x_plat_incs - } else if (use_wf200) { - defines += wf200_defs - include_dirs += wf200_plat_incs - } - - if (use_rs911x_sockets) { - include_dirs += [ "${examples_plat_dir}/wifi/rsi-sockets" ] - defines += rs911x_sock_defs - } else { - # Using LWIP instead of the native TCP/IP stack - defines += efr32_lwip_defs - } - - if (sl_wfx_config_softap) { - defines += [ "SL_WFX_CONFIG_SOFTAP" ] - } - if (sl_wfx_config_scan) { - defines += [ "SL_WFX_CONFIG_SCAN" ] - } - } } -efr32_executable("window_app") { +silabs_executable("window_app") { output_name = "chip-efr32-window-example.out" - public_configs = [ "${efr32_sdk_build_root}:silabs_config" ] output_dir = root_out_dir include_dirs = [ "include", @@ -185,102 +60,22 @@ efr32_executable("window_app") { defines = [] sources = [ - "${examples_common_plat_dir}/heap_4_silabs.c", - "${examples_plat_dir}/init_ccpPlatform.cpp", - "${examples_plat_dir}/matter_config.cpp", - "${examples_plat_dir}/siwx917_utils.cpp", "${project_dir}/common/src/WindowApp.cpp", "${project_dir}/common/src/ZclCallbacks.cpp", "src/WindowAppImpl.cpp", "src/main.cpp", ] - if (use_wstk_leds) { - sources += [ "${examples_plat_dir}/LEDWidget.cpp" ] - } - - if (chip_build_libshell || enable_openthread_cli || use_wf200 || - use_SiWx917) { - #sources += [ "${examples_plat_dir}/uart.cpp" ] + if (!disable_lcd) { + sources += [ "src/LcdPainter.cpp" ] } deps = [ ":sdk", - "${chip_root}/examples/providers:device_info_provider", - "${chip_root}/examples/window-app/common:window-common", - "${chip_root}/src/lib", - "${chip_root}/src/setup_payload", + "${examples_plat_dir}:siwx917-common", + app_data_model, ] - # OpenThread Settings - if (chip_enable_openthread) { - deps += [ - "${chip_root}/third_party/openthread:openthread", - "${chip_root}/third_party/openthread:openthread-platform", - "${examples_plat_dir}:efr-matter-shell", - ] - } - - # if (chip_enable_ota_requestor) { - # defines += [ "EFR32_OTA_ENABLED" ] - # sources += [ "${examples_plat_dir}/OTAConfig.cpp" ] - # } - - # WiFi Settings - if (chip_enable_wifi) { - if (use_SiWx917) { - sources += rs911x_src_plat - - # All the stuff from wiseconnect - sources += rs911x_src_sapi - - # Apparently - the rsi library needs this (though we may not use use it) - sources += rs911x_src_sock - include_dirs += rs911x_inc_plat - - if (use_rs911x_sockets) { - # - # Using native sockets inside RS911x - # - include_dirs += rs911x_sock_inc - } else { - # - # We use LWIP - not built-in sockets - # - sources += rs911x_src_lwip - } - } else if (use_wf200) { - sources += wf200_plat_src - include_dirs += wf200_plat_incs - } - - if (rs91x_wpa3_only) { - # TODO: Change this macro once WF200 support is provided - defines += [ "WIFI_ENABLE_SECURITY_WPA3=1" ] - } - } - - if (!disable_lcd) { - sources += [ - "${examples_plat_dir}/display/demo-ui.c", - "${examples_plat_dir}/display/lcd.cpp", - "src/LcdPainter.cpp", - ] - include_dirs += [ "${examples_plat_dir}/display" ] - defines += [ "DISPLAY_ENABLED" ] - - if (show_qr_code) { - deps += [ "${chip_root}/examples/common/QRCode" ] - defines += [ "QR_CODE_ENABLED" ] - } - } - - if (enable_heap_monitoring) { - defines += [ "HEAP_MONITORING" ] - - sources += [ "${examples_common_plat_dir}/MemMonitoring.cpp" ] - } - ldscript = "${examples_plat_dir}/ldscripts/${silabs_family}.ld" inputs = [ ldscript ] @@ -301,22 +96,12 @@ efr32_executable("window_app") { "-Wl,SILABS_WIFI=1", ] } - - # Attestation Credentials - if (chip_build_platform_attestation_credentials_provider) { - deps += [ "${examples_plat_dir}:SiWx917-attestation-credentials" ] - } - - # Factory Data Provider - if (use_efr32_factory_data_provider) { - deps += [ "${examples_plat_dir}:efr32-factory-data-provider" ] - } } -group("efr32") { +group("siwx917") { deps = [ ":window_app" ] } group("default") { - deps = [ ":efr32" ] + deps = [ ":siwx917" ] } diff --git a/examples/window-app/silabs/SiWx917/args.gni b/examples/window-app/silabs/SiWx917/args.gni index 421090dbc97aae..c4fe64871e74c8 100644 --- a/examples/window-app/silabs/SiWx917/args.gni +++ b/examples/window-app/silabs/SiWx917/args.gni @@ -16,9 +16,9 @@ import("//build_overrides/chip.gni") import("${chip_root}/config/standalone/args.gni") import("${chip_root}/src/platform/silabs/SiWx917/args.gni") -efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain") +siwx917_sdk_target = get_label_info(":sdk", "label_no_toolchain") +app_data_model = "${chip_root}/examples/window-app/common:window-common" chip_enable_ota_requestor = true -chip_enable_openthread = true -openthread_external_platform = - "${chip_root}/third_party/openthread/platforms/efr32:libopenthread-efr32" + +use_base_app = false diff --git a/examples/window-app/silabs/SiWx917/build_for_wifi_args.gni b/examples/window-app/silabs/SiWx917/build_for_wifi_args.gni deleted file mode 100644 index 770c3ab66ebb62..00000000000000 --- a/examples/window-app/silabs/SiWx917/build_for_wifi_args.gni +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright (c) 2020 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import("//build_overrides/chip.gni") - -efr32_sdk_target = get_label_info(":sdk", "label_no_toolchain") -chip_enable_openthread = false -import("${chip_root}/src/platform/silabs/SiWx917/wifi_args.gni") - -chip_enable_ota_requestor = true diff --git a/examples/window-app/silabs/SiWx917/build_for_wifi_gnfile.gn b/examples/window-app/silabs/SiWx917/build_for_wifi_gnfile.gn deleted file mode 100644 index d391814190d09f..00000000000000 --- a/examples/window-app/silabs/SiWx917/build_for_wifi_gnfile.gn +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright (c) 2020 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import("//build_overrides/build.gni") - -# The location of the build configuration file. -buildconfig = "${build_root}/config/BUILDCONFIG.gn" - -# CHIP uses angle bracket includes. -check_system_includes = true - -default_args = { - target_cpu = "arm" - target_os = "freertos" - chip_enable_wifi = true - import("//build_for_wifi_args.gni") -} diff --git a/examples/window-app/silabs/efr32/BUILD.gn b/examples/window-app/silabs/efr32/BUILD.gn index d3feb4a6f8159d..f965dc552c8641 100644 --- a/examples/window-app/silabs/efr32/BUILD.gn +++ b/examples/window-app/silabs/efr32/BUILD.gn @@ -19,8 +19,8 @@ import("//build_overrides/pigweed.gni") import("${build_root}/config/defaults.gni") import("${chip_root}/src/platform/device.gni") -import("${efr32_sdk_build_root}/efr32_executable.gni") import("${efr32_sdk_build_root}/efr32_sdk.gni") +import("${efr32_sdk_build_root}/silabs_executable.gni") assert(current_os == "freertos") @@ -68,7 +68,7 @@ efr32_sdk("sdk") { } } -efr32_executable("window_app") { +silabs_executable("window_app") { output_name = "chip-efr32-window-example.out" output_dir = root_out_dir include_dirs = [ diff --git a/scripts/examples/gn_efr32_example.sh b/scripts/examples/gn_efr32_example.sh index 396f9bc3dcced1..45c2a9cc7c7e14 100755 --- a/scripts/examples/gn_efr32_example.sh +++ b/scripts/examples/gn_efr32_example.sh @@ -95,7 +95,7 @@ if [ "$#" == "0" ]; then Build wifi example with extension board wf200. (Default false) 'import("//with_pw_rpc.gni")' Use to build the example with pigweed RPC - OTA_periodic_query_timeout + ota_periodic_query_timeout_sec Periodic query timeout variable for OTA in seconds rs91x_wpa3_only Support for WPA3 only mode on RS91x @@ -234,10 +234,13 @@ else BUILD_DIR=$OUTDIR/$SILABS_BOARD echo BUILD_DIR="$BUILD_DIR" if [ "$USE_WIFI" == true ]; then + # wifi build + # NCP mode EFR32 + wifi module optArgs+="$ipArgs" gn gen --check --fail-on-unused-args --export-compile-commands --root="$ROOT" --dotfile="$ROOT"/build_for_wifi_gnfile.gn --args="silabs_board=\"$SILABS_BOARD\" $optArgs" "$BUILD_DIR" else - # OpenThread build + # OpenThread/SoC build + # if [ "$USE_DOCKER" == true ]; then optArgs+="openthread_root=\"$GSDK_ROOT/util/third_party/openthread\" " fi diff --git a/src/platform/silabs/BLEManagerImpl.h b/src/platform/silabs/BLEManagerImpl.h index a775439aef4fa3..330aad5a1c4be6 100644 --- a/src/platform/silabs/BLEManagerImpl.h +++ b/src/platform/silabs/BLEManagerImpl.h @@ -25,6 +25,12 @@ #pragma once #if CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE +#ifdef RSI_BLE_ENABLE +#define BLE_MIN_CONNECTION_INTERVAL_MS 45 // 45 msec +#define BLE_MAX_CONNECTION_INTERVAL_MS 45 // 45 msec +#define BLE_SLAVE_LATENCY_MS 0 +#define BLE_TIMEOUT_MS 400 +#endif // RSI_BLE_ENABLE #include "FreeRTOS.h" #include "timers.h" #ifdef RSI_BLE_ENABLE diff --git a/src/platform/silabs/ConnectivityManagerImpl_WIFI.cpp b/src/platform/silabs/ConnectivityManagerImpl_WIFI.cpp index c7335e6a230155..edbff853f34e8f 100644 --- a/src/platform/silabs/ConnectivityManagerImpl_WIFI.cpp +++ b/src/platform/silabs/ConnectivityManagerImpl_WIFI.cpp @@ -285,7 +285,7 @@ void ConnectivityManagerImpl::DriveStationState() // If the WiFi station interface is no longer enabled, or no longer provisioned, // disconnect the station from the AP, unless the WiFi station mode is currently // under application control. -#ifndef CHIP_ONNETWORK_PAIRING +#ifndef SL_ONNETWORK_PAIRING // Incase of station interface disabled & provisioned, wifi_station should not be disconnected. // Device will try to reconnect. if (mWiFiStationMode != kWiFiStationMode_ApplicationControlled && diff --git a/src/platform/silabs/Logging.cpp b/src/platform/silabs/Logging.cpp index 6be071cb8d603a..40d53ea7ce8f81 100644 --- a/src/platform/silabs/Logging.cpp +++ b/src/platform/silabs/Logging.cpp @@ -431,7 +431,6 @@ extern "C" __attribute__((naked)) void HardFault_Handler(void) "bx r1 \n" "debugHardfault_address: .word debugHardfault \n"); } - #endif // HARD_FAULT_LOG_ENABLE && SILABS_LOG_ENABLED #if HARD_FAULT_LOG_ENABLE diff --git a/src/platform/silabs/NetworkCommissioningWiFiDriver.cpp b/src/platform/silabs/NetworkCommissioningWiFiDriver.cpp index f3a745773d8092..5f108213f193ec 100644 --- a/src/platform/silabs/NetworkCommissioningWiFiDriver.cpp +++ b/src/platform/silabs/NetworkCommissioningWiFiDriver.cpp @@ -43,11 +43,11 @@ CHIP_ERROR SlWiFiDriver::Init(NetworkStatusChangeCallback * networkStatusChangeC mpScanCallback = nullptr; mpConnectCallback = nullptr; -#ifdef CHIP_ONNETWORK_PAIRING - memcpy(&mSavedNetwork.ssid[0], CHIP_WIFI_SSID, sizeof(CHIP_WIFI_SSID)); - memcpy(&mSavedNetwork.credentials[0], CHIP_WIFI_PSK, sizeof(CHIP_WIFI_PSK)); - credentialsLen = sizeof(CHIP_WIFI_PSK); - ssidLen = sizeof(CHIP_WIFI_SSID); +#ifdef SL_ONNETWORK_PAIRING + memcpy(&mSavedNetwork.ssid[0], SL_WIFI_SSID, sizeof(SL_WIFI_SSID)); + memcpy(&mSavedNetwork.credentials[0], SL_WIFI_PSK, sizeof(SL_WIFI_PSK)); + credentialsLen = sizeof(SL_WIFI_PSK); + ssidLen = sizeof(SL_WIFI_SSID); mSavedNetwork.credentialsLen = credentialsLen; mSavedNetwork.ssidLen = ssidLen; mStagingNetwork = mSavedNetwork; diff --git a/src/platform/silabs/SiWx917/BLEManagerImpl.cpp b/src/platform/silabs/SiWx917/BLEManagerImpl.cpp index 6a4418ce5c0979..cd8ba47acf628e 100644 --- a/src/platform/silabs/SiWx917/BLEManagerImpl.cpp +++ b/src/platform/silabs/SiWx917/BLEManagerImpl.cpp @@ -121,6 +121,9 @@ void sl_ble_event_handling_task(void) rsi_ble_app_clear_event(RSI_BLE_CONN_EVENT); chip::DeviceLayer::Internal::BLEMgrImpl().HandleConnectEvent(); WFX_RSI_LOG("%s Module got connected", __func__); + // Requests the connection parameters change with the remote device + rsi_ble_conn_params_update(event_msg.resp_enh_conn.dev_addr, BLE_MIN_CONNECTION_INTERVAL_MS, + BLE_MAX_CONNECTION_INTERVAL_MS, BLE_SLAVE_LATENCY_MS, BLE_TIMEOUT_MS); } break; case RSI_BLE_DISCONN_EVENT: { diff --git a/src/platform/silabs/SiWx917/BUILD.gn b/src/platform/silabs/SiWx917/BUILD.gn index e79810a4029093..d92222af9cf738 100644 --- a/src/platform/silabs/SiWx917/BUILD.gn +++ b/src/platform/silabs/SiWx917/BUILD.gn @@ -18,18 +18,27 @@ import("${chip_root}/src/platform/device.gni") import("${chip_root}/build/chip/buildconfig_header.gni") import("${chip_root}/src/crypto/crypto.gni") +import("${chip_root}/third_party/silabs/silabs_board.gni") silabs_platform_dir = "${chip_root}/src/platform/silabs" assert(chip_device_platform == "SiWx917") - -if (chip_enable_openthread) { - import("//build_overrides/openthread.gni") -} - if (chip_crypto == "platform") { import("//build_overrides/mbedtls.gni") } + +config("siwx917-platform-wifi-config") { + include_dirs = [ "wifi" ] + defines = [] + + if (use_rs911x_sockets) { + include_dirs += [ "wifi/rsi-sockets" ] + defines += [ + "RS911X_SOCKETS", + "RSI_IPV6_ENABLE", + ] + } +} static_library("SiWx917") { sources = [ "${silabs_platform_dir}/BLEManagerImpl.h", @@ -81,11 +90,13 @@ static_library("SiWx917") { ] } - if (chip_enable_wifi) { - sources += [ - "${silabs_platform_dir}/ConnectivityManagerImpl_WIFI.cpp", - "${silabs_platform_dir}/NetworkCommissioningWiFiDriver.cpp", - "${silabs_platform_dir}/NetworkCommissioningWiFiDriver.h", - ] - } + sources += [ + "${silabs_platform_dir}/ConnectivityManagerImpl_WIFI.cpp", + "${silabs_platform_dir}/NetworkCommissioningWiFiDriver.cpp", + "${silabs_platform_dir}/NetworkCommissioningWiFiDriver.h", + "wifi/wfx_host_events.h", + "wifi/wfx_msgs.h", + "wifi/wifi_config.h", + ] + public_configs = [ ":siwx917-platform-wifi-config" ] } diff --git a/src/platform/silabs/SiWx917/args.gni b/src/platform/silabs/SiWx917/args.gni index ad6215d2c02d86..52356737e2ae4c 100644 --- a/src/platform/silabs/SiWx917/args.gni +++ b/src/platform/silabs/SiWx917/args.gni @@ -1,4 +1,4 @@ -# Copyright (c) 2020 Project CHIP Authors +# Copyright (c) 2021 Project CHIP Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +import("//build_overrides/build.gni") import("//build_overrides/chip.gni") import("//build_overrides/efr32_sdk.gni") import("//build_overrides/pigweed.gni") @@ -20,37 +21,34 @@ import("${chip_root}/examples/platform/silabs/SiWx917/args.gni") import("${chip_root}/src/crypto/crypto.gni") # ARM architecture flags will be set based on silabs_family. -arm_platform_config = "${efr32_sdk_build_root}/efr32_arm.gni" +arm_platform_config = "${efr32_sdk_build_root}/silabs_arm.gni" mbedtls_target = "${efr32_sdk_build_root}:efr32_sdk" -openthread_external_mbedtls = mbedtls_target - -chip_device_platform = "SiWx917" - -#Net work configuration OpenThread -lwip_platform = "silabs" -chip_mdns = "platform" -chip_inet_config_enable_ipv4 = false -chip_inet_config_enable_tcp_endpoint = false -chip_system_config_use_open_thread_inet_endpoints = true -chip_with_lwip = false - -chip_build_tests = false +chip_crypto = "platform" # Transitional CommissionableDataProvider not used anymore -# examples/platform/silabs/SiWx917/SiWx917DeviceDataProvider is now used. +# examples/platform/efr32/EFR32DeviceDataProvider is now used. chip_use_transitional_commissionable_data_provider = false -openthread_root = "${chip_root}/third_party/openthread/ot-efr32/openthread" -openthread_core_config_platform_check_file = - "openthread-core-efr32-config-check.h" -openthread_project_core_config_file = "OpenThreadConfig.h" -openthread_core_config_deps = [ "${chip_root}/examples/platform/silabs/efr32:openthread_core_config_efr32_chip_examples" ] +# Use GSDK lwip instead of CHIP +lwip_root = "${efr32_sdk_build_root}" -chip_config_memory_management = "platform" +#lwip_platform = "external" +lwip_platform = "silabs" +lwip_ipv6 = true +lwip_ipv4 = true +lwip_api = true +lwip_ethernet = true + +chip_device_platform = "SiWx917" +chip_enable_wifi = true +chip_enable_openthread = false +chip_inet_config_enable_ipv4 = true +chip_inet_config_enable_dns_resolver = false +chip_inet_config_enable_tcp_endpoint = true -pw_build_LINK_DEPS = [ - "$dir_pw_assert:impl", - "$dir_pw_log:impl", -] +chip_build_tests = false +chip_config_memory_management = "platform" +chip_mdns = "minimal" +chip_enable_pw_rpc = false diff --git a/src/platform/silabs/SiWx917/wifi_args.gni b/src/platform/silabs/SiWx917/wifi_args.gni index 756b957e116d4b..c1848ece760416 100644 --- a/src/platform/silabs/SiWx917/wifi_args.gni +++ b/src/platform/silabs/SiWx917/wifi_args.gni @@ -25,7 +25,7 @@ arm_platform_config = "${efr32_sdk_build_root}/efr32_arm.gni" mbedtls_target = "${efr32_sdk_build_root}:efr32_sdk" -chip_crypto = "platform" +chip_crypto = "mbedtls" # Transitional CommissionableDataProvider not used anymore # examples/platform/efr32/EFR32DeviceDataProvider is now used. diff --git a/src/platform/silabs/efr32/args.gni b/src/platform/silabs/efr32/args.gni index abe0aa1870c7c4..c50c77a1c83600 100644 --- a/src/platform/silabs/efr32/args.gni +++ b/src/platform/silabs/efr32/args.gni @@ -20,7 +20,7 @@ import("${chip_root}/examples/platform/silabs/efr32/args.gni") import("${chip_root}/src/crypto/crypto.gni") # ARM architecture flags will be set based on silabs_family. -arm_platform_config = "${efr32_sdk_build_root}/efr32_arm.gni" +arm_platform_config = "${efr32_sdk_build_root}/silabs_arm.gni" mbedtls_target = "${efr32_sdk_build_root}:efr32_sdk" diff --git a/src/platform/silabs/efr32/rs911x/BLEManagerImpl.cpp b/src/platform/silabs/efr32/rs911x/BLEManagerImpl.cpp index c931ee7f35dba7..f29333a93cd618 100644 --- a/src/platform/silabs/efr32/rs911x/BLEManagerImpl.cpp +++ b/src/platform/silabs/efr32/rs911x/BLEManagerImpl.cpp @@ -124,6 +124,9 @@ void sl_ble_event_handling_task(void) rsi_ble_app_clear_event(RSI_BLE_CONN_EVENT); BLEMgrImpl().HandleConnectEvent(); WFX_RSI_LOG("%s Module got connected", __func__); + // Requests the connection parameters change with the remote device + rsi_ble_conn_params_update(event_msg.resp_enh_conn.dev_addr, BLE_MIN_CONNECTION_INTERVAL_MS, + BLE_MAX_CONNECTION_INTERVAL_MS, BLE_SLAVE_LATENCY_MS, BLE_TIMEOUT_MS); } break; case RSI_BLE_DISCONN_EVENT: { diff --git a/src/platform/silabs/efr32/wifi_args.gni b/src/platform/silabs/efr32/wifi_args.gni index 58fce3f77624c3..02959ecceeba1b 100644 --- a/src/platform/silabs/efr32/wifi_args.gni +++ b/src/platform/silabs/efr32/wifi_args.gni @@ -21,7 +21,7 @@ import("${chip_root}/examples/platform/silabs/efr32/args.gni") import("${chip_root}/src/crypto/crypto.gni") # ARM architecture flags will be set based on silabs_family. -arm_platform_config = "${efr32_sdk_build_root}/efr32_arm.gni" +arm_platform_config = "${efr32_sdk_build_root}/silabs_arm.gni" mbedtls_target = "${efr32_sdk_build_root}:efr32_sdk" diff --git a/src/test_driver/efr32/BUILD.gn b/src/test_driver/efr32/BUILD.gn index b4a564aa9fccb0..4d8ca6b8c05464 100644 --- a/src/test_driver/efr32/BUILD.gn +++ b/src/test_driver/efr32/BUILD.gn @@ -18,8 +18,8 @@ import("//build_overrides/efr32_sdk.gni") import("//build_overrides/pigweed.gni") import("${build_root}/config/defaults.gni") -import("${efr32_sdk_build_root}/efr32_executable.gni") import("${efr32_sdk_build_root}/efr32_sdk.gni") +import("${efr32_sdk_build_root}/silabs_executable.gni") import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni") import("${chip_root}/src/platform/device.gni") @@ -63,7 +63,7 @@ efr32_sdk("sdk") { ] } -efr32_executable("efr32_device_tests") { +silabs_executable("efr32_device_tests") { output_name = "chip-efr32-device_tests.out" defines = [ "PW_RPC_ENABLED" ] diff --git a/third_party/silabs/BUILD.gn b/third_party/silabs/BUILD.gn index f266f29543209f..00fde71f0a39ae 100644 --- a/third_party/silabs/BUILD.gn +++ b/third_party/silabs/BUILD.gn @@ -27,154 +27,166 @@ if (silabs_board == "BRD4325B") { # CCP board declare_args() { # Build target to use for efr32 SDK. Use this to set global SDK defines. efr32_sdk_target = "" + siwx917_sdk_target = "" use_thread_coap_lib = false sl_matter_version_str = "" } -assert(efr32_sdk_target != "", "efr32_sdk_target must be specified") - config("silabs_config") { if (sl_matter_version_str != "") { defines = [ "SL_MATTER_VERSION_STRING=\"${sl_matter_version_str}\"" ] } } -group("efr32_sdk") { - public_deps = [ efr32_sdk_target ] - public_configs = [ ":silabs_config" ] +if (silabs_board == "BRD4325B") { # CCP board + assert(siwx917_sdk_target != "", "siwx917_sdk_target must be specified") + group("efr32_sdk") { + public_deps = [ siwx917_sdk_target ] + public_configs = [ ":silabs_config" ] + } +} else { + assert(efr32_sdk_target != "", "efr32_sdk_target must be specified") + group("efr32_sdk") { + public_deps = [ efr32_sdk_target ] + public_configs = [ ":silabs_config" ] + } } -# Openthread GSDK libraries configurations -if (use_silabs_thread_lib) { - config("libopenthread-platform_config") { - include_dirs = [ "${sl_openthread_root}/examples/platforms" ] - - defines = [ "SL_CONFIG_OPENTHREAD_LIB=1" ] - } +if (silabs_board != "BRD4325B") { # CCP board + # Openthread GSDK libraries configurations + if (use_silabs_thread_lib) { + config("libopenthread-platform_config") { + include_dirs = [ "${sl_openthread_root}/examples/platforms" ] - copy("copy_openthread_system") { - sources = [ "${sl_openthread_root}/examples/platforms/openthread-system.h" ] + defines = [ "SL_CONFIG_OPENTHREAD_LIB=1" ] + } - outputs = - [ "${root_gen_dir}/include/openthread/platform/{{source_file_part}}" ] - } + copy("copy_openthread_system") { + sources = + [ "${sl_openthread_root}/examples/platforms/openthread-system.h" ] - source_set("openthread_system") { - sources = - [ "${root_gen_dir}/include/openthread/platform/openthread-system.h" ] - deps = [ ":copy_openthread_system" ] - } + outputs = + [ "${root_gen_dir}/include/openthread/platform/{{source_file_part}}" ] + } - source_set("libopenthread-platform") { - sources = [ "${sl_openthread_root}/examples/platforms/openthread-system.h" ] + source_set("openthread_system") { + sources = + [ "${root_gen_dir}/include/openthread/platform/openthread-system.h" ] + deps = [ ":copy_openthread_system" ] + } - public_deps = [ ":openthread_system" ] + source_set("libopenthread-platform") { + sources = + [ "${sl_openthread_root}/examples/platforms/openthread-system.h" ] - public_configs = [ ":libopenthread-platform_config" ] - } + public_deps = [ ":openthread_system" ] - config("openthread_efr32_config") { - defines = [ - "RADIO_CONFIG_DMP_SUPPORT=1", - "${silabs_board}=1", - "${silabs_mcu}", - "OPENTHREAD_CORE_CONFIG_PLATFORM_CHECK_FILE=\"openthread-core-efr32-config-check.h\"", - ] - - include_dirs = [ - "${chip_root}/examples/platform/silabs/efr32", - "${chip_root}/examples/platform/silabs", - "${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}", - "${sl_ot_efr32_root}", - "${sl_openthread_root}/src/", - ] - - # temporarily disable check until gsdk pulls in a more recent version - cflags = [ "-Wno-format-nonliteral" ] - } + public_configs = [ ":libopenthread-platform_config" ] + } - source_set("openthread_core_config_efr32") { - sources = [ - "${sl_ot_efr32_root}/openthread-core-efr32-config-check.h", - "${sl_ot_efr32_root}/openthread-core-efr32-config.h", - ] + config("openthread_efr32_config") { + defines = [ + "RADIO_CONFIG_DMP_SUPPORT=1", + "${silabs_board}=1", + "${silabs_mcu}", + "OPENTHREAD_CORE_CONFIG_PLATFORM_CHECK_FILE=\"openthread-core-efr32-config-check.h\"", + ] - public_deps = [ - ":libopenthread-platform", - "${efr32_sdk_build_root}:efr32_sdk", - ] + include_dirs = [ + "${chip_root}/examples/platform/silabs/efr32", + "${chip_root}/examples/platform/silabs", + "${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}", + "${sl_ot_efr32_root}", + "${sl_openthread_root}/src/", + ] - public_configs = [ ":openthread_efr32_config" ] - } + # temporarily disable check until gsdk pulls in a more recent version + cflags = [ "-Wno-format-nonliteral" ] + } - source_set("ot-efr32-cert") { - if (enable_openthread_cli) { + source_set("openthread_core_config_efr32") { sources = [ - "${sl_openthread_root}/examples/apps/cli/cli_uart.cpp", - "${sl_openthread_root}/src/cli/cli.cpp", - "${sl_openthread_root}/src/cli/cli.hpp", - "${sl_openthread_root}/src/cli/cli_coap.cpp", - "${sl_openthread_root}/src/cli/cli_coap.hpp", - "${sl_openthread_root}/src/cli/cli_coap_secure.cpp", - "${sl_openthread_root}/src/cli/cli_coap_secure.hpp", - "${sl_openthread_root}/src/cli/cli_commissioner.cpp", - "${sl_openthread_root}/src/cli/cli_commissioner.hpp", - "${sl_openthread_root}/src/cli/cli_config.h", - "${sl_openthread_root}/src/cli/cli_dataset.cpp", - "${sl_openthread_root}/src/cli/cli_dataset.hpp", - "${sl_openthread_root}/src/cli/cli_history.cpp", - "${sl_openthread_root}/src/cli/cli_history.hpp", - "${sl_openthread_root}/src/cli/cli_joiner.cpp", - "${sl_openthread_root}/src/cli/cli_joiner.hpp", - "${sl_openthread_root}/src/cli/cli_network_data.cpp", - "${sl_openthread_root}/src/cli/cli_network_data.hpp", - "${sl_openthread_root}/src/cli/cli_output.cpp", - "${sl_openthread_root}/src/cli/cli_output.hpp", - "${sl_openthread_root}/src/cli/cli_srp_client.cpp", - "${sl_openthread_root}/src/cli/cli_srp_client.hpp", - "${sl_openthread_root}/src/cli/cli_srp_server.cpp", - "${sl_openthread_root}/src/cli/cli_srp_server.hpp", - "${sl_openthread_root}/src/cli/cli_tcp.cpp", - "${sl_openthread_root}/src/cli/cli_tcp.hpp", - "${sl_openthread_root}/src/cli/cli_udp.cpp", - "${sl_openthread_root}/src/cli/cli_udp.hpp", - "${sl_openthread_root}/src/cli/x509_cert_key.hpp", + "${sl_ot_efr32_root}/openthread-core-efr32-config-check.h", + "${sl_ot_efr32_root}/openthread-core-efr32-config.h", ] - } - public_configs = [ - ":openthread_efr32_config", - ":libopenthread-platform_config", - ] - - public_deps = [ - ":libopenthread-platform", - ":openthread_core_config_efr32", - "${segger_rtt_root}:segger_rtt", - "${sl_openthread_root}/include/openthread:openthread", - "${sl_openthread_root}/src/core/:libopenthread_core_headers", - ] - - deps = [ "${efr32_sdk_build_root}:efr32_sdk" ] - - # selected thread device type FTD or MTD - XTD = "ftd" - if (!chip_openthread_ftd) { - XTD = "mtd" - } + public_deps = [ + ":libopenthread-platform", + "${efr32_sdk_build_root}:efr32_sdk", + ] - # Use silabs openthread library stack with or without coap api enabled - COAP_API = "" - if (use_thread_coap_lib) { - COAP_API = "coap_" + public_configs = [ ":openthread_efr32_config" ] } - public_configs += [ "${sl_openthread_root}:openthread_${XTD}_config" ] + source_set("ot-efr32-cert") { + if (enable_openthread_cli) { + sources = [ + "${sl_openthread_root}/examples/apps/cli/cli_uart.cpp", + "${sl_openthread_root}/src/cli/cli.cpp", + "${sl_openthread_root}/src/cli/cli.hpp", + "${sl_openthread_root}/src/cli/cli_coap.cpp", + "${sl_openthread_root}/src/cli/cli_coap.hpp", + "${sl_openthread_root}/src/cli/cli_coap_secure.cpp", + "${sl_openthread_root}/src/cli/cli_coap_secure.hpp", + "${sl_openthread_root}/src/cli/cli_commissioner.cpp", + "${sl_openthread_root}/src/cli/cli_commissioner.hpp", + "${sl_openthread_root}/src/cli/cli_config.h", + "${sl_openthread_root}/src/cli/cli_dataset.cpp", + "${sl_openthread_root}/src/cli/cli_dataset.hpp", + "${sl_openthread_root}/src/cli/cli_history.cpp", + "${sl_openthread_root}/src/cli/cli_history.hpp", + "${sl_openthread_root}/src/cli/cli_joiner.cpp", + "${sl_openthread_root}/src/cli/cli_joiner.hpp", + "${sl_openthread_root}/src/cli/cli_network_data.cpp", + "${sl_openthread_root}/src/cli/cli_network_data.hpp", + "${sl_openthread_root}/src/cli/cli_output.cpp", + "${sl_openthread_root}/src/cli/cli_output.hpp", + "${sl_openthread_root}/src/cli/cli_srp_client.cpp", + "${sl_openthread_root}/src/cli/cli_srp_client.hpp", + "${sl_openthread_root}/src/cli/cli_srp_server.cpp", + "${sl_openthread_root}/src/cli/cli_srp_server.hpp", + "${sl_openthread_root}/src/cli/cli_tcp.cpp", + "${sl_openthread_root}/src/cli/cli_tcp.hpp", + "${sl_openthread_root}/src/cli/cli_udp.cpp", + "${sl_openthread_root}/src/cli/cli_udp.hpp", + "${sl_openthread_root}/src/cli/x509_cert_key.hpp", + ] + } + + public_configs = [ + ":openthread_efr32_config", + ":libopenthread-platform_config", + ] - libs = [ - "${sl_ot_libs_path}/libs/libsl_ot_stack_${XTD}_${COAP_API}${silabs_family}_gcc.a", - "${sl_ot_libs_path}/libs/libsl_platform_${XTD}_dmp_${silabs_family}_gcc.a", - ] + public_deps = [ + ":libopenthread-platform", + ":openthread_core_config_efr32", + "${segger_rtt_root}:segger_rtt", + "${sl_openthread_root}/include/openthread:openthread", + "${sl_openthread_root}/src/core/:libopenthread_core_headers", + ] + + deps = [ "${efr32_sdk_build_root}:efr32_sdk" ] + + # selected thread device type FTD or MTD + XTD = "ftd" + if (!chip_openthread_ftd) { + XTD = "mtd" + } + + # Use silabs openthread library stack with or without coap api enabled + COAP_API = "" + if (use_thread_coap_lib) { + COAP_API = "coap_" + } + + public_configs += [ "${sl_openthread_root}:openthread_${XTD}_config" ] + + libs = [ + "${sl_ot_libs_path}/libs/libsl_ot_stack_${XTD}_${COAP_API}${silabs_family}_gcc.a", + "${sl_ot_libs_path}/libs/libsl_platform_${XTD}_dmp_${silabs_family}_gcc.a", + ] + } } } diff --git a/third_party/silabs/SiWx917_sdk.gni b/third_party/silabs/SiWx917_sdk.gni index 4d4f2e4c0bbf48..1b8f47bee80331 100644 --- a/third_party/silabs/SiWx917_sdk.gni +++ b/third_party/silabs/SiWx917_sdk.gni @@ -16,52 +16,22 @@ import("//build_overrides/chip.gni") import("//build_overrides/efr32_sdk.gni") import("//build_overrides/jlink.gni") import("//build_overrides/mbedtls.gni") +import("${efr32_sdk_build_root}/efr32_sdk.gni") import("${chip_root}/src/lib/lib.gni") import("silabs_board.gni") declare_args() { - # Location of the efr32 SDK. - efr32_sdk_root = "${chip_root}/third_party/silabs/gecko_sdk" - sdk_support_root = "${chip_root}/third_party/silabs/matter_support" - wisemcu_sdk_root = "${chip_root}/third_party/silabs/wiseconnect-wifi-bt-sdk" wisemcu_sdk_root = "${chip_root}/third_party/silabs/wisemcu-wifi-bt-sdk" examples_plat_dir = "${chip_root}/examples/platform/silabs/SiWx917" - - # Build openthread with prebuilt silabs lib - use_silabs_thread_lib = false - enable_openthread_cli = true - - kvs_max_entries = 255 - - # Use Silabs factory data provider example. - # Users can implement their own. - use_efr32_factory_data_provider = true - - # Enable Segger System View - use_system_view = false - - silabs_log_enabled = true - - # Argument to enable IPv4 for wifi - # aligning to match chip_inet_config_enable_ipv4 default configuration - chip_enable_wifi_ipv4 = false } -assert(efr32_sdk_root != "", "efr32_sdk_root must be specified") - -# Defines an efr32 SDK build target. +# Defines an siwx917 SDK build target. # # Parameters: -# efr32_sdk_root - The location of the erf32 SDK. +# wisemcu_sdk_root - The location of the wisemcu SDK. # sources - The sources files to build. -template("efr32_sdk") { - if (defined(invoker.efr32_sdk_root)) { - efr32_sdk_root = invoker.efr32_sdk_root - } - - assert(efr32_sdk_root != "", "efr32_sdk_root must be specified") - +template("siwx917_sdk") { sdk_target_name = target_name config("${sdk_target_name}_config") { @@ -73,10 +43,16 @@ template("efr32_sdk") { # Treat these includes as system includes, so warnings in them are not fatal. _include_dirs = [ + "${chip_root}/examples/platform/silabs/SiWx917/SiWx917", + "${chip_root}/examples/platform/silabs/SiWx917/SiWx917/hal", "${sdk_support_root}/platform/emdrv/nvm3/inc", "${sdk_support_root}/matter/mbedtls/tinycrypt/inc", "${chip_root}/third_party/mbedtls/repo/include", "${chip_root}/third_party/mbedtls/repo/library", + "${wisemcu_sdk_root}/platforms/si91x/hal/inc", + "${wisemcu_sdk_root}/sapi/include", + + "${chip_root}/src/platform/silabs/SiWx917/bluetooth", ### CCP includes ### "${wisemcu_sdk_root}/platforms/si91x/drivers/peripheral_drivers/inc", @@ -88,41 +64,40 @@ template("efr32_sdk") { "${wisemcu_sdk_root}/platforms/si91x/drivers/cmsis_driver", "${wisemcu_sdk_root}/platforms/si91x/drivers/cmsis_driver/CMSIS/Driver/Include", - "${wisemcu_sdk_root}/platforms/si91x/boards/brd4325a/inc", + "${wisemcu_sdk_root}/platforms/si91x/boards/brd4325x/inc", "${wisemcu_sdk_root}/platforms/si91x/core/cmsis", "${wisemcu_sdk_root}/third_party/freertos/include", "${wisemcu_sdk_root}/third_party/freertos/portable/GCC/ARM_CM4F", "${examples_plat_dir}/device/inc", - - "${wisemcu_sdk_root}/sapi/include", - - "${chip_root}/examples/platform/SiWx917/SiWx917", - "${chip_root}/examples/platform/SiWx917/SiWx917/hal", ] # Note that we're setting the mbedTLS and PSA configuration files through a # define. This means the build system by default does not pick up changes in # the content of these, only when changing the filename itself. # To fix this, these files are also manually depended upon in the source set - # declared in efr32_mbedtls_config further down this file. + # declared in siwx917_mbedtls_config further down this file. defines = [ "MBEDTLS_CONFIG_FILE=\"siwx917-chip-mbedtls-config.h\"", "__STARTUP_CLEAR_BSS", "HARD_FAULT_LOG_ENABLE", - "CORTEXM3_EFM32_MICRO", "SILABS_LOG_ENABLED=${silabs_log_enabled}", + "SL_HEAP_SIZE=32768", + "SL_WIFI=1", + "SiWx917_WIFI", + "CCP_SI917_BRINGUP", + "RS911X_WIFI", + "RSI_WLAN_ENABLE", + "RSI_WITH_OS", + "RSI_M4_INTERFACE", #Enable CCP bus Interface + "RSI_WLAN_API_ENABLE", + "LITTLE_ENDIAN_ORDER", + "_CHIP_9118", "NVM3_DEFAULT_NVM_SIZE=40960", "NVM3_DEFAULT_MAX_OBJECT_SIZE=4092", "KVS_MAX_ENTRIES=${kvs_max_entries}", - "EFR32_OPENTHREAD_API", - "PHY=EMBER_PHY_RAIL", - "CORTEXM3", - "MICRO=EMBER_MICRO_CORTEXM3_EFR32", - "PLAT=EMBER_PLATFORM_CORTEXM3", "${silabs_mcu}=1", "${silabs_board}=1", "__HEAP_SIZE=0", - "SL_COMPONENT_CATALOG_PRESENT", "PLATFORM_HEADER=\"platform-header.h\"", "USE_NVM3=1", "RSI_ARM_CM4F", @@ -135,15 +110,35 @@ template("efr32_sdk") { "__error_t_defined", ] - if (use_system_view) { - _include_dirs += [ - "${efr32_sdk_root}/util/third_party/segger/systemview/SEGGER", - "${efr32_sdk_root}/util/third_party/segger/systemview/Sample/FreeRTOSV10/Config/Cortex-M", - "${efr32_sdk_root}/util/third_party/segger/systemview/Sample/FreeRTOSV10", - "${efr32_sdk_root}/util/third_party/segger/systemview/Config/", - ] + if (chip_build_libshell) { + defines += [ "ENABLE_CHIP_SHELL" ] + } - defines += [ "SL_SYSTEM_VIEW=1" ] + if (!use_rs911x_sockets) { + import("${chip_root}/src/platform/silabs/SiWx917/args.gni") + defines += [ "LWIP_NETIF_API=1" ] + if (lwip_ipv4) { + defines += [ + "LWIP_IPV4=1", + + # adds following options to provide + # them to .cpp source files + # flags ported from lwipopts file + # TODO: move lwipopts to one location + "LWIP_ARP=1", + "LWIP_ICMP=1", + "LWIP_IGMP=1", + "LWIP_DHCP=1", + "LWIP_DNS=0", + ] + } else { + defines += [ "LWIP_IPV4=0" ] + } + if (lwip_ipv6) { + defines += [ "LWIP_IPV6=1" ] + } else { + defines += [ "LWIP_IPV6=0" ] + } } defines += board_defines @@ -171,40 +166,11 @@ template("efr32_sdk") { } if (chip_build_libshell) { # matter shell - defines += [ - "ENABLE_CHIP_SHELL", - "OPENTHREAD_CONFIG_CLI_TRANSPORT=OT_CLI_TRANSPORT_CONSOLE", - "CHIP_DEVICE_CONFIG_THREAD_ENABLE_CLI=1", - ] - } else { - if (enable_openthread_cli) { # ot-cli only - defines += [ "CHIP_DEVICE_CONFIG_THREAD_ENABLE_CLI=1" ] - } + defines += [ "ENABLE_CHIP_SHELL" ] } - # USART include files - if ((defined(invoker.chip_enable_pw_rpc) && invoker.chip_enable_pw_rpc) || - chip_build_libshell || enable_openthread_cli || - (defined(invoker.chip_enable_wifi) && invoker.chip_enable_wifi) || - (defined(invoker.show_qr_code) && invoker.show_qr_code) || - (defined(invoker.disable_lcd) && !invoker.disable_lcd) || - (defined(invoker.use_external_flash) && use_external_flash)) { - defines += [ "CONFIG_ENABLE_UART" ] - - if (defined(invoker.use_external_flash) && use_external_flash) { - defines += [ "CONFIG_USE_EXTERNAL_FLASH" ] - - _include_dirs += [ "${efr32_sdk_root}/hardware/driver/mx25_flash_shutdown/inc/sl_mx25_flash_shutdown_usart" ] - } - - _include_dirs += [ - "${efr32_sdk_root}/platform/emdrv/uartdrv/inc", - "${efr32_sdk_root}/platform/emdrv/uartdrv/config", - "${efr32_sdk_root}/hardware/driver/memlcd/inc/memlcd_usart", - ] - if (enable_dic) { - defines += [ "DIC_ENABLE=1" ] - } + if (enable_dic) { + defines += [ "DIC_ENABLE=1" ] } libs += [ "${sdk_support_root}/platform/emdrv/nvm3/lib/libnvm3_CM4_gcc.a" ] @@ -217,27 +183,25 @@ template("efr32_sdk") { cflags += [ "-Wno-maybe-uninitialized", "-Wno-shadow", + "-Wno-empty-body", + "-Wno-cpp", + "-Wno-missing-braces", + "-Wno-sign-compare", + "-Wno-error", + "-Wno-unknown-warning-option", + "-Wno-unused-variable", + "-Wno-implicit-function-declaration", + "-Wno-unused-function", ] - if (silabs_family == "efr32mg24" || silabs_family == "mgm24") { - cflags += [ "-mcmse" ] - } - - if (defined(invoker.use_SiWx917)) { - if (invoker.use_SiWx917 == true) { - #add compilation flags for rs991x build. This will be addressed directly in wiseconnect sdk in the next version release of that sdk - cflags += invoker.rs911x_cflags - } - } - if (defined(invoker.defines)) { defines += invoker.defines } } - source_set("si917_mbedtls_config") { - # We're setting the mbedTLS config flags here as the efr32_sdk target - # acts as the mbedTLS target for EFR32 builds. We need this for the build + source_set("siwx917_mbedtls_config") { + # We're setting the mbedTLS config flags here as the siwx917_sdk target + # acts as the mbedTLS target for SiWx917 builds. We need this for the build # system to recompile mbedTLS (= the SDK) when the mbedTLS config gets # edited. sources = [ @@ -249,26 +213,46 @@ template("efr32_sdk") { source_set(sdk_target_name) { sources = [ - "${examples_plat_dir}/device/src/startup_RS1xxxx.c", - "${sdk_support_root}/platform/emdrv/nvm3/src/ccp_flash_dev.c", - "${sdk_support_root}/platform/emdrv/nvm3/src/ccp_flash_intf.c", - "${sdk_support_root}/platform/emdrv/nvm3/src/ccp_flash_prg.c", - "${sdk_support_root}/platform/emdrv/nvm3/src/nvm3_default.c", - - ### nvm3 for ccp platform ### - "${sdk_support_root}/platform/emdrv/nvm3/src/nvm3_hal_flash_ccp.c", - "${sdk_support_root}/platform/emdrv/nvm3/src/nvm3_lock.c", - - ######## CCP Platform ######### - "${wisemcu_sdk_root}/platforms/si91x/boards/brd4325a/src/rsi_board.c", - - #"${wisemcu_sdk_root}/platforms/si91x/boards/brd4325a/src/syscalls.c", + # sapi + "${wisemcu_sdk_root}/sapi/bluetooth/rsi_ble_gap_apis.c", + "${wisemcu_sdk_root}/sapi/bluetooth/rsi_ble_gatt_apis.c", + "${wisemcu_sdk_root}/sapi/bluetooth/rsi_bt_common_apis.c", + "${wisemcu_sdk_root}/sapi/common/rsi_apis_non_rom.c", + "${wisemcu_sdk_root}/sapi/common/rsi_apis_rom.c", + "${wisemcu_sdk_root}/sapi/common/rsi_common_apis.c", + "${wisemcu_sdk_root}/sapi/common/rsi_device_init_apis.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_bt_ble.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_common.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_device_init.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_driver.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_driver_event_handlers.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_events.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_events_rom.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_iap.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_nwk.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_nwk_rom.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_pkt_mgmt.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_pkt_mgmt_rom.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_queue.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_queue_rom.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_scheduler.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_scheduler_rom.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_setregion_countryinfo.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_timer.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_utils.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_utils_rom.c", + "${wisemcu_sdk_root}/sapi/driver/rsi_wlan.c", + "${wisemcu_sdk_root}/sapi/network/socket/rsi_socket.c", + "${wisemcu_sdk_root}/sapi/network/socket/rsi_socket_rom.c", + "${wisemcu_sdk_root}/sapi/rtos/freertos_wrapper/rsi_os_wrapper.c", + "${wisemcu_sdk_root}/sapi/wlan/rsi_wlan_apis.c", + + # platform + "${wisemcu_sdk_root}/platforms/si91x/boards/brd4325x/src/rsi_board.c", "${wisemcu_sdk_root}/platforms/si91x/core/chip/src/rsi_deepsleep_commonflash.c", "${wisemcu_sdk_root}/platforms/si91x/core/chip/src/rsi_ps_ram_func.c", "${wisemcu_sdk_root}/platforms/si91x/core/chip/src/rsi_system_config.c", "${wisemcu_sdk_root}/platforms/si91x/core/chip/src/system_RS1xxxx.c", - - # Bluetooth "${wisemcu_sdk_root}/platforms/si91x/drivers/peripheral_drivers/src/clock_update.c", "${wisemcu_sdk_root}/platforms/si91x/drivers/peripheral_drivers/src/rsi_comparator.c", "${wisemcu_sdk_root}/platforms/si91x/drivers/peripheral_drivers/src/rsi_egpio.c", @@ -284,10 +268,27 @@ template("efr32_sdk") { "${wisemcu_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_time_period.c", "${wisemcu_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_ulpss_clk.c", "${wisemcu_sdk_root}/platforms/si91x/drivers/systemlevel/src/rsi_wwdt.c", - "${wisemcu_sdk_root}/sapi/bluetooth/rsi_ble_gap_apis.c", - "${wisemcu_sdk_root}/sapi/bluetooth/rsi_ble_gatt_apis.c", - "${wisemcu_sdk_root}/sapi/bluetooth/rsi_bt_common_apis.c", - "${wisemcu_sdk_root}/sapi/driver/rsi_bt_ble.c", + "${wisemcu_sdk_root}/platforms/si91x/hal/src/rsi_bootup_config.c", + "${wisemcu_sdk_root}/platforms/si91x/hal/src/rsi_hal_mcu_interrupt.c", + "${wisemcu_sdk_root}/platforms/si91x/hal/src/rsi_hal_mcu_m4_rom.c", + + # modified hal + "${examples_plat_dir}/SiWx917/hal/rsi_hal_mcu_m4.c", + "${examples_plat_dir}/SiWx917/hal/rsi_hal_mcu_platform_init.c", + "${examples_plat_dir}/SiWx917/hal/rsi_hal_mcu_timer.c", + + # startup + "${examples_plat_dir}/device/src/startup_RS1xxxx.c", + + # nvm3 + "${sdk_support_root}/platform/emdrv/nvm3/src/ccp_flash_dev.c", + "${sdk_support_root}/platform/emdrv/nvm3/src/ccp_flash_intf.c", + "${sdk_support_root}/platform/emdrv/nvm3/src/ccp_flash_prg.c", + "${sdk_support_root}/platform/emdrv/nvm3/src/nvm3_default.c", + "${sdk_support_root}/platform/emdrv/nvm3/src/nvm3_hal_flash_ccp.c", + "${sdk_support_root}/platform/emdrv/nvm3/src/nvm3_lock.c", + + # freertos "${wisemcu_sdk_root}/third_party/freertos/croutine.c", "${wisemcu_sdk_root}/third_party/freertos/event_groups.c", "${wisemcu_sdk_root}/third_party/freertos/list.c", @@ -297,10 +298,6 @@ template("efr32_sdk") { "${wisemcu_sdk_root}/third_party/freertos/tasks.c", "${wisemcu_sdk_root}/third_party/freertos/timers.c", - # USART - "${wisemcu_sdk_root}/platforms/si91x/drivers/cmsis_driver/UDMA.c", - "${wisemcu_sdk_root}/platforms/si91x/drivers/cmsis_driver/USART.c", - # mbedtls "${chip_root}/third_party/mbedtls/repo/library/aes.c", "${chip_root}/third_party/mbedtls/repo/library/asn1parse.c", @@ -339,7 +336,7 @@ template("efr32_sdk") { ] public_deps = [ - ":si917_mbedtls_config", + ":siwx917_mbedtls_config", "${segger_rtt_root}:segger_rtt", "${segger_rtt_root}:segger_rtt_printf", "${segger_rtt_root}:segger_rtt_syscalls", diff --git a/third_party/silabs/efr32_sdk.gni b/third_party/silabs/efr32_sdk.gni index 54f3a02dfc722f..65ea12ddd1a094 100644 --- a/third_party/silabs/efr32_sdk.gni +++ b/third_party/silabs/efr32_sdk.gni @@ -20,7 +20,11 @@ import("//build_overrides/mbedtls.gni") import("${chip_root}/src/lib/lib.gni") import("silabs_board.gni") -wiseconnect_sdk_root = "${chip_root}/third_party/silabs/wiseconnect-wifi-bt-sdk" +if (use_rs9116) { + wifi_sapi_root = "${chip_root}/third_party/silabs/wiseconnect-wifi-bt-sdk" +} else { + wifi_sapi_root = "${chip_root}/third_party/silabs/wisemcu-wifi-bt-sdk" +} declare_args() { # Location of the efr32 SDK. @@ -163,9 +167,7 @@ template("efr32_sdk") { } if (chip_enable_ble_rs911x) { - _include_dirs += [ - "${chip_root}/third_party/silabs/wiseconnect-wifi-bt-sdk/sapi/include", - ] + _include_dirs += [ "${wifi_sapi_root}/sapi/include" ] } # Note that we're setting the mbedTLS and PSA configuration files through a @@ -689,10 +691,10 @@ template("efr32_sdk") { if (chip_enable_ble_rs911x) { sources += [ - "${wiseconnect_sdk_root}/sapi/bluetooth/rsi_ble_gap_apis.c", - "${wiseconnect_sdk_root}/sapi/bluetooth/rsi_ble_gatt_apis.c", - "${wiseconnect_sdk_root}/sapi/bluetooth/rsi_bt_common_apis.c", - "${wiseconnect_sdk_root}/sapi/driver/rsi_bt_ble.c", + "${wifi_sapi_root}/sapi/bluetooth/rsi_ble_gap_apis.c", + "${wifi_sapi_root}/sapi/bluetooth/rsi_ble_gatt_apis.c", + "${wifi_sapi_root}/sapi/bluetooth/rsi_bt_common_apis.c", + "${wifi_sapi_root}/sapi/driver/rsi_bt_ble.c", ] } else { sources += [ diff --git a/third_party/silabs/efr32_arm.gni b/third_party/silabs/silabs_arm.gni similarity index 100% rename from third_party/silabs/efr32_arm.gni rename to third_party/silabs/silabs_arm.gni diff --git a/third_party/silabs/efr32_executable.gni b/third_party/silabs/silabs_executable.gni similarity index 98% rename from third_party/silabs/efr32_executable.gni rename to third_party/silabs/silabs_executable.gni index 4636cb0e468095..5d3c73c0998906 100644 --- a/third_party/silabs/efr32_executable.gni +++ b/third_party/silabs/silabs_executable.gni @@ -17,7 +17,7 @@ import("//build_overrides/chip.gni") import("${build_root}/toolchain/flashable_executable.gni") -template("efr32_executable") { +template("silabs_executable") { output_base_name = get_path_info(invoker.output_name, "name") objcopy_image_name = output_base_name + ".s37" diff --git a/third_party/silabs/wiseconnect-wifi-bt-sdk b/third_party/silabs/wiseconnect-wifi-bt-sdk index e314908eca1197..2be7a5b87fd3be 160000 --- a/third_party/silabs/wiseconnect-wifi-bt-sdk +++ b/third_party/silabs/wiseconnect-wifi-bt-sdk @@ -1 +1 @@ -Subproject commit e314908eca119784699e8e13c4e5b8ac5ddc3f68 +Subproject commit 2be7a5b87fd3be0111cd8bc09585219e104f26f3 From a6dc62c6582de394d3c628f4386defd71b09bee1 Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Thu, 23 Mar 2023 01:54:04 -0400 Subject: [PATCH 06/10] Stop generating weakly-typed enums for the color loop enum types. (#25790) * Stop generating weakly-typed enums for the color loop enum types. * Regenerate generated code. --- .../ameba/main/include/ColorControlCommands.h | 8 ++-- .../color-control-server.cpp | 38 +++++++++---------- .../color-control-server.h | 6 --- src/app/common/templates/config-data.yaml | 3 -- .../zap-generated/cluster-enums-check.h | 15 -------- .../app-common/zap-generated/cluster-enums.h | 14 ------- .../app-common/zap-generated/enums.h | 23 ----------- 7 files changed, 21 insertions(+), 86 deletions(-) diff --git a/examples/all-clusters-app/ameba/main/include/ColorControlCommands.h b/examples/all-clusters-app/ameba/main/include/ColorControlCommands.h index 1e2b1bf02ddd40..a80b5fe02d659d 100644 --- a/examples/all-clusters-app/ameba/main/include/ColorControlCommands.h +++ b/examples/all-clusters-app/ameba/main/include/ColorControlCommands.h @@ -505,8 +505,8 @@ void ProcessColorControlUnicastBindingCommand(BindingCommandData * data, const E case Clusters::ColorControl::Commands::ColorLoopSet::Id: colorLoopSetCommand.updateFlags = static_cast>(data->args[0]); - colorLoopSetCommand.action = static_cast(data->args[1]); - colorLoopSetCommand.direction = static_cast(data->args[2]); + colorLoopSetCommand.action = static_cast(data->args[1]); + colorLoopSetCommand.direction = static_cast(data->args[2]); colorLoopSetCommand.time = static_cast(data->args[3]); colorLoopSetCommand.startHue = static_cast(data->args[4]); colorLoopSetCommand.optionsMask = static_cast(data->args[5]); @@ -708,8 +708,8 @@ void ProcessColorControlGroupBindingCommand(BindingCommandData * data, const Emb case Clusters::ColorControl::Commands::ColorLoopSet::Id: colorLoopSetCommand.updateFlags = static_cast>(data->args[0]); - colorLoopSetCommand.action = static_cast(data->args[1]); - colorLoopSetCommand.direction = static_cast(data->args[2]); + colorLoopSetCommand.action = static_cast(data->args[1]); + colorLoopSetCommand.direction = static_cast(data->args[2]); colorLoopSetCommand.time = static_cast(data->args[3]); colorLoopSetCommand.startHue = static_cast(data->args[4]); colorLoopSetCommand.optionsMask = static_cast(data->args[5]); diff --git a/src/app/clusters/color-control-server/color-control-server.cpp b/src/app/clusters/color-control-server/color-control-server.cpp index f725f35b07678b..6a3d70e62648a7 100644 --- a/src/app/clusters/color-control-server/color-control-server.cpp +++ b/src/app/clusters/color-control-server/color-control-server.cpp @@ -608,7 +608,7 @@ void ColorControlServer::startColorLoop(EndpointId endpoint, uint8_t startFromSt colorHueTransitionState->initialEnhancedHue = startHue; - if (direction) + if (direction == to_underlying(ColorLoopDirection::kIncrementHue)) { colorHueTransitionState->finalEnhancedHue = static_cast(startHue - 1); } @@ -617,7 +617,7 @@ void ColorControlServer::startColorLoop(EndpointId endpoint, uint8_t startFromSt colorHueTransitionState->finalEnhancedHue = static_cast(startHue + 1); } - colorHueTransitionState->up = direction; + colorHueTransitionState->up = (direction == to_underlying(ColorLoopDirection::kIncrementHue)); colorHueTransitionState->repeat = true; colorHueTransitionState->stepsRemaining = static_cast(time * TRANSITION_TIME_1S); @@ -1496,9 +1496,9 @@ bool ColorControlServer::stepSaturationCommand(app::CommandHandler * commandObj, bool ColorControlServer::colorLoopCommand(app::CommandHandler * commandObj, const app::ConcreteCommandPath & commandPath, const Commands::ColorLoopSet::DecodableType & commandData) { - uint8_t updateFlags = commandData.updateFlags.Raw(); - uint8_t action = commandData.action; - uint8_t direction = commandData.direction; + auto updateFlags = commandData.updateFlags; + auto action = commandData.action; + auto direction = commandData.direction; uint16_t time = commandData.time; uint16_t startHue = commandData.startHue; uint8_t optionsMask = commandData.optionsMask; @@ -1512,10 +1512,7 @@ bool ColorControlServer::colorLoopCommand(app::CommandHandler * commandObj, cons VerifyOrExit(colorHueTransitionState != nullptr, status = Status::UnsupportedEndpoint); // Validate the action and direction parameters of the command - if ((action != EMBER_ZCL_COLOR_LOOP_ACTION_DEACTIVATE && - action != EMBER_ZCL_COLOR_LOOP_ACTION_ACTIVATE_FROM_COLOR_LOOP_START_ENHANCED_HUE && - action != EMBER_ZCL_COLOR_LOOP_ACTION_ACTIVATE_FROM_ENHANCED_CURRENT_HUE) || - (direction != DECREMENT_HUE && direction != INCREMENT_HUE)) + if (action == ColorLoopAction::kUnknownEnumValue || direction == ColorLoopDirection::kUnknownEnumValue) { commandObj->AddStatus(commandPath, Status::InvalidCommand); return true; @@ -1529,20 +1526,19 @@ bool ColorControlServer::colorLoopCommand(app::CommandHandler * commandObj, cons Attributes::ColorLoopActive::Get(endpoint, &isColorLoopActive); - deactiveColorLoop = - (updateFlags & EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_ACTION) && (action == EMBER_ZCL_COLOR_LOOP_ACTION_DEACTIVATE); + deactiveColorLoop = updateFlags.Has(ColorLoopUpdateFlags::kUpdateAction) && (action == ColorLoopAction::kDeactivate); - if (updateFlags & EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_DIRECTION) + if (updateFlags.Has(ColorLoopUpdateFlags::kUpdateAction)) { - Attributes::ColorLoopDirection::Set(endpoint, direction); + Attributes::ColorLoopDirection::Set(endpoint, to_underlying(direction)); // Checks if color loop is active and stays active if (isColorLoopActive && !deactiveColorLoop) { - colorHueTransitionState->up = direction; + colorHueTransitionState->up = (direction == ColorLoopDirection::kIncrementHue); colorHueTransitionState->initialEnhancedHue = colorHueTransitionState->currentEnhancedHue; - if (direction) + if (direction == ColorLoopDirection::kIncrementHue) { colorHueTransitionState->finalEnhancedHue = static_cast(colorHueTransitionState->initialEnhancedHue - 1); } @@ -1554,7 +1550,7 @@ bool ColorControlServer::colorLoopCommand(app::CommandHandler * commandObj, cons } } - if (updateFlags & EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_TIME) + if (updateFlags.Has(ColorLoopUpdateFlags::kUpdateTime)) { Attributes::ColorLoopTime::Set(endpoint, time); @@ -1576,14 +1572,14 @@ bool ColorControlServer::colorLoopCommand(app::CommandHandler * commandObj, cons } } - if (updateFlags & EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_START_HUE) + if (updateFlags.Has(ColorLoopUpdateFlags::kUpdateStartHue)) { Attributes::ColorLoopStartEnhancedHue::Set(endpoint, startHue); } - if (updateFlags & EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_ACTION) + if (updateFlags.Has(ColorLoopUpdateFlags::kUpdateAction)) { - if (action == EMBER_ZCL_COLOR_LOOP_ACTION_DEACTIVATE) + if (action == ColorLoopAction::kDeactivate) { if (isColorLoopActive) { @@ -1600,11 +1596,11 @@ bool ColorControlServer::colorLoopCommand(app::CommandHandler * commandObj, cons // Do Nothing since it's not on } } - else if (action == EMBER_ZCL_COLOR_LOOP_ACTION_ACTIVATE_FROM_COLOR_LOOP_START_ENHANCED_HUE) + else if (action == ColorLoopAction::kActivateFromColorLoopStartEnhancedHue) { startColorLoop(endpoint, true); } - else if (action == EMBER_ZCL_COLOR_LOOP_ACTION_ACTIVATE_FROM_ENHANCED_CURRENT_HUE) + else if (action == ColorLoopAction::kActivateFromEnhancedCurrentHue) { startColorLoop(endpoint, false); } diff --git a/src/app/clusters/color-control-server/color-control-server.h b/src/app/clusters/color-control-server/color-control-server.h index b540576c57ea99..d82fabc88fb8e2 100644 --- a/src/app/clusters/color-control-server/color-control-server.h +++ b/src/app/clusters/color-control-server/color-control-server.h @@ -70,12 +70,6 @@ class ColorControlServer using HueMoveMode = chip::app::Clusters::ColorControl::HueMoveMode; using HueDirection = chip::app::Clusters::ColorControl::HueDirection; - enum ColorLoopDirection - { - DECREMENT_HUE = 0x00, - INCREMENT_HUE = 0x01, - }; - enum ColorMode { COLOR_MODE_HSV = 0x00, diff --git a/src/app/common/templates/config-data.yaml b/src/app/common/templates/config-data.yaml index 7a4c0d8e26162f..ad09163530c4d3 100644 --- a/src/app/common/templates/config-data.yaml +++ b/src/app/common/templates/config-data.yaml @@ -4,8 +4,6 @@ WeakEnums: - BarrierControlBarrierPosition - BarrierControlMovingState - ColorControlOptions - - ColorLoopAction - - ColorLoopDirection - ColorMode - EnhancedColorMode - HardwareFaultEnum @@ -25,7 +23,6 @@ DefineBitmaps: # The goal is to drive this down to 0. - BarrierControlCapabilities - BarrierControlSafetyStatus - - ColorLoopUpdateFlags # We need a more configurable way of deciding which clusters have which init functions.... # See https://github.com/project-chip/connectedhomeip/issues/4369 diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h index e94f6982e1904a..2a71da8a24ce08 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h @@ -1701,17 +1701,9 @@ static auto __attribute__((unused)) EnsureKnownEnumValue(ColorControl::ColorLoop using EnumType = ColorControl::ColorLoopAction; switch (val) { -// Need to convert consumers to using the new enum classes, so we -// don't just have casts all over. -#ifdef CHIP_USE_ENUM_CLASS_FOR_IM_ENUM case EnumType::kDeactivate: case EnumType::kActivateFromColorLoopStartEnhancedHue: case EnumType::kActivateFromEnhancedCurrentHue: -#else // CHIP_USE_ENUM_CLASS_FOR_IM_ENUM - case EMBER_ZCL_COLOR_LOOP_ACTION_DEACTIVATE: - case EMBER_ZCL_COLOR_LOOP_ACTION_ACTIVATE_FROM_COLOR_LOOP_START_ENHANCED_HUE: - case EMBER_ZCL_COLOR_LOOP_ACTION_ACTIVATE_FROM_ENHANCED_CURRENT_HUE: -#endif // CHIP_USE_ENUM_CLASS_FOR_IM_ENUM return val; default: return static_cast(3); @@ -1722,15 +1714,8 @@ static auto __attribute__((unused)) EnsureKnownEnumValue(ColorControl::ColorLoop using EnumType = ColorControl::ColorLoopDirection; switch (val) { -// Need to convert consumers to using the new enum classes, so we -// don't just have casts all over. -#ifdef CHIP_USE_ENUM_CLASS_FOR_IM_ENUM case EnumType::kDecrementHue: case EnumType::kIncrementHue: -#else // CHIP_USE_ENUM_CLASS_FOR_IM_ENUM - case EMBER_ZCL_COLOR_LOOP_DIRECTION_DECREMENT_HUE: - case EMBER_ZCL_COLOR_LOOP_DIRECTION_INCREMENT_HUE: -#endif // CHIP_USE_ENUM_CLASS_FOR_IM_ENUM return val; default: return static_cast(2); diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h index 387ce5239b3dc9..dea6a250b6984b 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h @@ -2219,9 +2219,6 @@ namespace ThermostatUserInterfaceConfiguration {} // namespace ThermostatUserInt namespace ColorControl { -// Need to convert consumers to using the new enum classes, so we -// don't just have casts all over. -#ifdef CHIP_USE_ENUM_CLASS_FOR_IM_ENUM // Enum for ColorLoopAction enum class ColorLoopAction : uint8_t { @@ -2234,14 +2231,7 @@ enum class ColorLoopAction : uint8_t // enum value. This specific should never be transmitted. kUnknownEnumValue = 3, }; -#else // CHIP_USE_ENUM_CLASS_FOR_IM_ENUM -using ColorLoopAction = EmberAfColorLoopAction; -static ColorLoopAction __attribute__((unused)) kColorLoopActionkUnknownEnumValue = static_cast(3); -#endif // CHIP_USE_ENUM_CLASS_FOR_IM_ENUM -// Need to convert consumers to using the new enum classes, so we -// don't just have casts all over. -#ifdef CHIP_USE_ENUM_CLASS_FOR_IM_ENUM // Enum for ColorLoopDirection enum class ColorLoopDirection : uint8_t { @@ -2253,10 +2243,6 @@ enum class ColorLoopDirection : uint8_t // enum value. This specific should never be transmitted. kUnknownEnumValue = 2, }; -#else // CHIP_USE_ENUM_CLASS_FOR_IM_ENUM -using ColorLoopDirection = EmberAfColorLoopDirection; -static ColorLoopDirection __attribute__((unused)) kColorLoopDirectionkUnknownEnumValue = static_cast(2); -#endif // CHIP_USE_ENUM_CLASS_FOR_IM_ENUM // Need to convert consumers to using the new enum classes, so we // don't just have casts all over. diff --git a/zzz_generated/app-common/app-common/zap-generated/enums.h b/zzz_generated/app-common/app-common/zap-generated/enums.h index a0a01e89515e8a..f5db3095fa6e28 100644 --- a/zzz_generated/app-common/app-common/zap-generated/enums.h +++ b/zzz_generated/app-common/app-common/zap-generated/enums.h @@ -46,21 +46,6 @@ enum EmberAfColorControlOptions : uint8_t EMBER_ZCL_COLOR_CONTROL_OPTIONS_EXECUTE_IF_OFF = 1, }; -// Enum for ColorLoopAction -enum EmberAfColorLoopAction : uint8_t -{ - EMBER_ZCL_COLOR_LOOP_ACTION_DEACTIVATE = 0, - EMBER_ZCL_COLOR_LOOP_ACTION_ACTIVATE_FROM_COLOR_LOOP_START_ENHANCED_HUE = 1, - EMBER_ZCL_COLOR_LOOP_ACTION_ACTIVATE_FROM_ENHANCED_CURRENT_HUE = 2, -}; - -// Enum for ColorLoopDirection -enum EmberAfColorLoopDirection : uint8_t -{ - EMBER_ZCL_COLOR_LOOP_DIRECTION_DECREMENT_HUE = 0, - EMBER_ZCL_COLOR_LOOP_DIRECTION_INCREMENT_HUE = 1, -}; - // Enum for ColorMode enum EmberAfColorMode : uint8_t { @@ -204,11 +189,3 @@ enum EmberAfStepMode : uint8_t #define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_FAILED_COMMUNICATION_OFFSET (2) #define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE (8) #define EMBER_AF_BARRIER_CONTROL_SAFETY_STATUS_POSITION_FAILURE_OFFSET (3) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_ACTION (1) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_ACTION_OFFSET (0) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_DIRECTION (2) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_DIRECTION_OFFSET (1) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_TIME (4) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_TIME_OFFSET (2) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_START_HUE (8) -#define EMBER_AF_COLOR_LOOP_UPDATE_FLAGS_UPDATE_START_HUE_OFFSET (3) From 7f356db6baec5dbc6481cc6b9ad2e9064028a51d Mon Sep 17 00:00:00 2001 From: Michael Rupp <95718139+mykrupp@users.noreply.github.com> Date: Thu, 23 Mar 2023 10:28:16 -0400 Subject: [PATCH 07/10] Allow configurable build time versioning of efr32 (#25732) * update build script and gn file print software version along with software version string in base app remove extra #defines fix getHardwareVersionString typo fix header * remove debug statement * Restyled by whitespace * Restyled by clang-format * Restyled by gn * add else condition for version str * code review comments * update descriptions --------- Co-authored-by: Restyled.io --- .../SiWx917/include/CHIPProjectConfig.h | 20 --------------- .../silabs/efr32/include/CHIPProjectConfig.h | 20 --------------- .../SiWx917/include/CHIPProjectConfig.h | 20 --------------- .../silabs/efr32/include/CHIPProjectConfig.h | 20 --------------- .../SiWx917/include/CHIPProjectConfig.h | 20 --------------- .../silabs/efr32/include/CHIPProjectConfig.h | 20 --------------- .../silabs/SiWx917/BaseApplication.cpp | 3 ++- .../SiWx917/SiWx917DeviceDataProvider.cpp | 12 ++++----- .../platform/silabs/efr32/BaseApplication.cpp | 3 ++- .../silabs/efr32/EFR32DeviceDataProvider.cpp | 12 ++++----- .../silabs/efr32/include/CHIPProjectConfig.h | 20 --------------- .../SiWx917/include/CHIPProjectConfig.h | 20 --------------- .../silabs/efr32/include/CHIPProjectConfig.h | 20 --------------- scripts/examples/gn_efr32_example.sh | 25 +++++++++++-------- src/include/platform/CHIPDeviceConfig.h | 2 +- .../silabs/CHIPDevicePlatformConfig.h | 21 ++++++++++++++++ third_party/silabs/BUILD.gn | 11 +++++++- 17 files changed, 62 insertions(+), 207 deletions(-) diff --git a/examples/light-switch-app/silabs/SiWx917/include/CHIPProjectConfig.h b/examples/light-switch-app/silabs/SiWx917/include/CHIPProjectConfig.h index 75c8d194f8f319..3141defe9c5133 100644 --- a/examples/light-switch-app/silabs/SiWx917/include/CHIPProjectConfig.h +++ b/examples/light-switch-app/silabs/SiWx917/include/CHIPProjectConfig.h @@ -59,26 +59,6 @@ */ #define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x8004 -/** - * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION - * - * The hardware version number assigned to device or product by the device vendor. This - * number is scoped to the device product id, and typically corresponds to a revision of the - * physical device, a change to its packaging, and/or a change to its marketing presentation. - * This value is generally *not* incremented for device software versions. - */ -#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1 - -/** - * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION - * - * A uint32_t identifying the software version running on the device. - */ -/* The SoftwareVersion attribute of the Basic cluster. */ -#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION -#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION 0x0001 -#endif - /** * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE * diff --git a/examples/light-switch-app/silabs/efr32/include/CHIPProjectConfig.h b/examples/light-switch-app/silabs/efr32/include/CHIPProjectConfig.h index 75c8d194f8f319..3141defe9c5133 100644 --- a/examples/light-switch-app/silabs/efr32/include/CHIPProjectConfig.h +++ b/examples/light-switch-app/silabs/efr32/include/CHIPProjectConfig.h @@ -59,26 +59,6 @@ */ #define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x8004 -/** - * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION - * - * The hardware version number assigned to device or product by the device vendor. This - * number is scoped to the device product id, and typically corresponds to a revision of the - * physical device, a change to its packaging, and/or a change to its marketing presentation. - * This value is generally *not* incremented for device software versions. - */ -#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1 - -/** - * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION - * - * A uint32_t identifying the software version running on the device. - */ -/* The SoftwareVersion attribute of the Basic cluster. */ -#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION -#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION 0x0001 -#endif - /** * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE * diff --git a/examples/lighting-app/silabs/SiWx917/include/CHIPProjectConfig.h b/examples/lighting-app/silabs/SiWx917/include/CHIPProjectConfig.h index 751ebfcff265f2..00df921596102a 100644 --- a/examples/lighting-app/silabs/SiWx917/include/CHIPProjectConfig.h +++ b/examples/lighting-app/silabs/SiWx917/include/CHIPProjectConfig.h @@ -59,26 +59,6 @@ */ #define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x8005 -/** - * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION - * - * The hardware version number assigned to device or product by the device vendor. This - * number is scoped to the device product id, and typically corresponds to a revision of the - * physical device, a change to its packaging, and/or a change to its marketing presentation. - * This value is generally *not* incremented for device software versions. - */ -#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1 - -/** - * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION - * - * A uint32_t identifying the software version running on the device. - */ -/* The SoftwareVersion attribute of the Basic cluster. */ -#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION -#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION 0x0001 -#endif - /** * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE * diff --git a/examples/lighting-app/silabs/efr32/include/CHIPProjectConfig.h b/examples/lighting-app/silabs/efr32/include/CHIPProjectConfig.h index 751ebfcff265f2..00df921596102a 100644 --- a/examples/lighting-app/silabs/efr32/include/CHIPProjectConfig.h +++ b/examples/lighting-app/silabs/efr32/include/CHIPProjectConfig.h @@ -59,26 +59,6 @@ */ #define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x8005 -/** - * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION - * - * The hardware version number assigned to device or product by the device vendor. This - * number is scoped to the device product id, and typically corresponds to a revision of the - * physical device, a change to its packaging, and/or a change to its marketing presentation. - * This value is generally *not* incremented for device software versions. - */ -#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1 - -/** - * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION - * - * A uint32_t identifying the software version running on the device. - */ -/* The SoftwareVersion attribute of the Basic cluster. */ -#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION -#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION 0x0001 -#endif - /** * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE * diff --git a/examples/lock-app/silabs/SiWx917/include/CHIPProjectConfig.h b/examples/lock-app/silabs/SiWx917/include/CHIPProjectConfig.h index 9ebace80dd06d2..1cfb6e7b0ac82c 100644 --- a/examples/lock-app/silabs/SiWx917/include/CHIPProjectConfig.h +++ b/examples/lock-app/silabs/SiWx917/include/CHIPProjectConfig.h @@ -60,26 +60,6 @@ */ #define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x8006 -/** - * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION - * - * The hardware version number assigned to device or product by the device vendor. This - * number is scoped to the device product id, and typically corresponds to a revision of the - * physical device, a change to its packaging, and/or a change to its marketing presentation. - * This value is generally *not* incremented for device software versions. - */ -#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1 - -/** - * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION - * - * A uint32_t identifying the software version running on the device. - */ -/* The SoftwareVersion attribute of the Basic cluster. */ -#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION -#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION 0x0001 -#endif - /** * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE * diff --git a/examples/lock-app/silabs/efr32/include/CHIPProjectConfig.h b/examples/lock-app/silabs/efr32/include/CHIPProjectConfig.h index 9ebace80dd06d2..1cfb6e7b0ac82c 100644 --- a/examples/lock-app/silabs/efr32/include/CHIPProjectConfig.h +++ b/examples/lock-app/silabs/efr32/include/CHIPProjectConfig.h @@ -60,26 +60,6 @@ */ #define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x8006 -/** - * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION - * - * The hardware version number assigned to device or product by the device vendor. This - * number is scoped to the device product id, and typically corresponds to a revision of the - * physical device, a change to its packaging, and/or a change to its marketing presentation. - * This value is generally *not* incremented for device software versions. - */ -#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1 - -/** - * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION - * - * A uint32_t identifying the software version running on the device. - */ -/* The SoftwareVersion attribute of the Basic cluster. */ -#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION -#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION 0x0001 -#endif - /** * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE * diff --git a/examples/platform/silabs/SiWx917/BaseApplication.cpp b/examples/platform/silabs/SiWx917/BaseApplication.cpp index 2c937c90691b69..b0f3809876ab49 100644 --- a/examples/platform/silabs/SiWx917/BaseApplication.cpp +++ b/examples/platform/silabs/SiWx917/BaseApplication.cpp @@ -201,7 +201,8 @@ CHIP_ERROR BaseApplication::Init(Identify * identifyObj) appError(APP_ERROR_CREATE_TIMER_FAILED); } - SILABS_LOG("Current Software Version: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING); + SILABS_LOG("Current Software Version String: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING); + SILABS_LOG("Current Software Version: %d", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); #ifdef ENABLE_WSTK_LEDS sStatusLED.Init(APP_STATE_LED); diff --git a/examples/platform/silabs/SiWx917/SiWx917DeviceDataProvider.cpp b/examples/platform/silabs/SiWx917/SiWx917DeviceDataProvider.cpp index bb19b3e17a6cd9..651d6270574a57 100644 --- a/examples/platform/silabs/SiWx917/SiWx917DeviceDataProvider.cpp +++ b/examples/platform/silabs/SiWx917/SiWx917DeviceDataProvider.cpp @@ -355,13 +355,13 @@ CHIP_ERROR SIWx917DeviceDataProvider::GetHardwareVersionString(char * buf, size_ size_t hardwareVersionStringLen = 0; // without counting null-terminator CHIP_ERROR err = SilabsConfig::ReadConfigValueStr(SilabsConfig::kConfigKey_HardwareVersionString, buf, bufSize, hardwareVersionStringLen); -#if defined(CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING) +#if defined(CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION_STRING) if (err == CHIP_DEVICE_ERROR_CONFIG_NOT_FOUND) { - memcpy(buf, CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING, sizeof(bufSize)); + memcpy(buf, CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION_STRING, sizeof(bufSize)); err = CHIP_NO_ERROR; } -#endif // CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING +#endif // CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION_STRING return err; } @@ -371,13 +371,13 @@ CHIP_ERROR SIWx917DeviceDataProvider::GetHardwareVersion(uint16_t & hardwareVers uint32_t hardwareVersion32; err = SilabsConfig::ReadConfigValue(SilabsConfig::kConfigKey_HardwareVersion, hardwareVersion32); -#if defined(CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION) +#if defined(CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION) if (err == CHIP_DEVICE_ERROR_CONFIG_NOT_FOUND) { - hardwareVersion32 = CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION; + hardwareVersion32 = CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION; err = CHIP_NO_ERROR; } -#endif // defined(CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION) +#endif // defined(CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION) hardwareVersion = static_cast(hardwareVersion32); return err; diff --git a/examples/platform/silabs/efr32/BaseApplication.cpp b/examples/platform/silabs/efr32/BaseApplication.cpp index bcedcf8b2a73d9..4421ca4e313c44 100644 --- a/examples/platform/silabs/efr32/BaseApplication.cpp +++ b/examples/platform/silabs/efr32/BaseApplication.cpp @@ -207,7 +207,8 @@ CHIP_ERROR BaseApplication::Init(Identify * identifyObj) appError(APP_ERROR_CREATE_TIMER_FAILED); } - SILABS_LOG("Current Software Version: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING); + SILABS_LOG("Current Software Version String: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING); + SILABS_LOG("Current Software Version: %d", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION); #if defined(ENABLE_WSTK_LEDS) && defined(SL_CATALOG_SIMPLE_LED_LED1_PRESENT) LEDWidget::InitGpio(); diff --git a/examples/platform/silabs/efr32/EFR32DeviceDataProvider.cpp b/examples/platform/silabs/efr32/EFR32DeviceDataProvider.cpp index 0eec3045d71c25..4a37ada00fa327 100644 --- a/examples/platform/silabs/efr32/EFR32DeviceDataProvider.cpp +++ b/examples/platform/silabs/efr32/EFR32DeviceDataProvider.cpp @@ -224,13 +224,13 @@ CHIP_ERROR EFR32DeviceDataProvider::GetHardwareVersionString(char * buf, size_t size_t hardwareVersionStringLen = 0; // without counting null-terminator CHIP_ERROR err = SilabsConfig::ReadConfigValueStr(SilabsConfig::kConfigKey_HardwareVersionString, buf, bufSize, hardwareVersionStringLen); -#if defined(CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING) +#if defined(CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION_STRING) if (err == CHIP_DEVICE_ERROR_CONFIG_NOT_FOUND) { - memcpy(buf, CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING, sizeof(bufSize)); + memcpy(buf, CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION_STRING, sizeof(bufSize)); err = CHIP_NO_ERROR; } -#endif // CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING +#endif // CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION_STRING return err; } @@ -240,13 +240,13 @@ CHIP_ERROR EFR32DeviceDataProvider::GetHardwareVersion(uint16_t & hardwareVersio uint32_t hardwareVersion32; err = SilabsConfig::ReadConfigValue(SilabsConfig::kConfigKey_HardwareVersion, hardwareVersion32); -#if defined(CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION) +#if defined(CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION) if (err == CHIP_DEVICE_ERROR_CONFIG_NOT_FOUND) { - hardwareVersion32 = CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION; + hardwareVersion32 = CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION; err = CHIP_NO_ERROR; } -#endif // defined(CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION) +#endif // defined(CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION) hardwareVersion = static_cast(hardwareVersion32); return err; diff --git a/examples/thermostat/silabs/efr32/include/CHIPProjectConfig.h b/examples/thermostat/silabs/efr32/include/CHIPProjectConfig.h index 8b26f650aa07a6..614361fb34e9f5 100644 --- a/examples/thermostat/silabs/efr32/include/CHIPProjectConfig.h +++ b/examples/thermostat/silabs/efr32/include/CHIPProjectConfig.h @@ -59,26 +59,6 @@ */ #define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x800E -/** - * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION - * - * The hardware version number assigned to device or product by the device vendor. This - * number is scoped to the device product id, and typically corresponds to a revision of the - * physical device, a change to its packaging, and/or a change to its marketing presentation. - * This value is generally *not* incremented for device software versions. - */ -#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1 - -/** - * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION - * - * A uint32_t identifying the software version running on the device. - */ -/* The SoftwareVersion attribute of the Basic cluster. */ -#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION -#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION 0x0001 -#endif - /** * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE * diff --git a/examples/window-app/silabs/SiWx917/include/CHIPProjectConfig.h b/examples/window-app/silabs/SiWx917/include/CHIPProjectConfig.h index dbf46f0e39e6d7..f1a69277f06079 100644 --- a/examples/window-app/silabs/SiWx917/include/CHIPProjectConfig.h +++ b/examples/window-app/silabs/SiWx917/include/CHIPProjectConfig.h @@ -58,26 +58,6 @@ */ #define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x8010 -/** - * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION - * - * The hardware version number assigned to device or product by the device vendor. This - * number is scoped to the device product id, and typically corresponds to a revision of the - * physical device, a change to its packaging, and/or a change to its marketing presentation. - * This value is generally *not* incremented for device software versions. - */ -#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1 - -/** - * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION - * - * A uint32_t identifying the software version running on the device. - */ -/* The SoftwareVersion attribute of the Basic cluster. */ -#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION -#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION 0x0001 -#endif - /** * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE * diff --git a/examples/window-app/silabs/efr32/include/CHIPProjectConfig.h b/examples/window-app/silabs/efr32/include/CHIPProjectConfig.h index dbf46f0e39e6d7..f1a69277f06079 100644 --- a/examples/window-app/silabs/efr32/include/CHIPProjectConfig.h +++ b/examples/window-app/silabs/efr32/include/CHIPProjectConfig.h @@ -58,26 +58,6 @@ */ #define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x8010 -/** - * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION - * - * The hardware version number assigned to device or product by the device vendor. This - * number is scoped to the device product id, and typically corresponds to a revision of the - * physical device, a change to its packaging, and/or a change to its marketing presentation. - * This value is generally *not* incremented for device software versions. - */ -#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1 - -/** - * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION - * - * A uint32_t identifying the software version running on the device. - */ -/* The SoftwareVersion attribute of the Basic cluster. */ -#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION -#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION 0x0001 -#endif - /** * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE * diff --git a/scripts/examples/gn_efr32_example.sh b/scripts/examples/gn_efr32_example.sh index 45c2a9cc7c7e14..3e0977a0c8d95c 100755 --- a/scripts/examples/gn_efr32_example.sh +++ b/scripts/examples/gn_efr32_example.sh @@ -83,10 +83,6 @@ if [ "$#" == "0" ]; then enable_sleepy_device Enable Sleepy end device. (Default false) Must also set chip_openthread_ftd=false - sl_matter_version_str - Set a Matter sotfware version string for the Silabs examples - Used and formatted by default in this script. - To skip that formatting or use your own version string use --no-version use_rs9116 Build wifi example with extension board rs9116. (Default false) use_SiWx917 @@ -99,6 +95,13 @@ if [ "$#" == "0" ]; then Periodic query timeout variable for OTA in seconds rs91x_wpa3_only Support for WPA3 only mode on RS91x + sl_matter_version + Use provided software version at build time + sl_matter_version_str + Set a Matter sotfware version string for the Silabs examples + Used and formatted by default in this script. + sl_hardware_version + Use provided hardware version at build time siwx917_commissionable_data Build with the commissionable data given in DeviceConfig.h (only for SiWx917) Presets @@ -116,9 +119,6 @@ if [ "$#" == "0" ]; then use the silabs openthread library --use_chip_lwip_lib use the chip lwip library - --no-version - Skip the silabs formating for the Matter software version string - Currently : v1.0-- --release Remove all logs and debugs features (including the LCD). Yield the smallest image size possible --docker @@ -194,10 +194,6 @@ else # optArgs+="openthread_root=\"//third_party/connectedhomeip/third_party/openthread/ot-efr32/openthread\" openthread_efr32_root=\"//third_party/connectedhomeip/third_party/openthread/ot-efr32/src/src\"" # shift # ;; - --no-version) - USE_GIT_SHA_FOR_VERSION=false - shift - ;; --release) optArgs+="is_debug=false disable_lcd=true chip_build_libshell=false enable_openthread_cli=false use_external_flash=false chip_logging=false silabs_log_enabled=false " shift @@ -207,6 +203,13 @@ else USE_DOCKER=true shift ;; + + *"sl_matter_version_str="*) + optArgs+="$1 " + USE_GIT_SHA_FOR_VERSION=false + shift + ;; + *) if [ "$1" =~ *"use_rs9116=true"* ] || [ "$1" =~ *"use_SiWx917=true"* ] || [ "$1" =~ *"use_wf200=true"* ]; then USE_WIFI=true diff --git a/src/include/platform/CHIPDeviceConfig.h b/src/include/platform/CHIPDeviceConfig.h index e5a3b721869f07..d95435954d1ad7 100644 --- a/src/include/platform/CHIPDeviceConfig.h +++ b/src/include/platform/CHIPDeviceConfig.h @@ -264,7 +264,7 @@ * A monothonic number identifying the software version running on the device. */ #ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION -#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION 0 +#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION 1 #endif /** diff --git a/src/platform/silabs/CHIPDevicePlatformConfig.h b/src/platform/silabs/CHIPDevicePlatformConfig.h index ef11e47d1a2820..45f9c83ace6272 100644 --- a/src/platform/silabs/CHIPDevicePlatformConfig.h +++ b/src/platform/silabs/CHIPDevicePlatformConfig.h @@ -40,6 +40,27 @@ #define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING SL_MATTER_VERSION_STRING #endif +/** + * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION + * + * A monothonic number identifying the software version running on the device. + */ +#ifdef SL_MATTER_VERSION +#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION SL_MATTER_VERSION +#endif + +/** + * CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION + * + * The hardware version number assigned to device or product by the device vendor. This + * number is scoped to the device product id, and typically corresponds to a revision of the + * physical device, a change to its packaging, and/or a change to its marketing presentation. + * This value is generally *not* incremented for device software versions. + */ +#ifdef SL_HARDWARE_VERSION +#define CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION SL_HARDWARE_VERSION +#endif + #if defined(SL_WIFI) #define CHIP_DEVICE_CONFIG_ENABLE_WIFI_STATION 1 #else diff --git a/third_party/silabs/BUILD.gn b/third_party/silabs/BUILD.gn index 00fde71f0a39ae..dd967ce5bdc775 100644 --- a/third_party/silabs/BUILD.gn +++ b/third_party/silabs/BUILD.gn @@ -31,11 +31,20 @@ declare_args() { use_thread_coap_lib = false sl_matter_version_str = "" + sl_matter_version = 1 + sl_hardware_version = 1 } config("silabs_config") { + defines = [] if (sl_matter_version_str != "") { - defines = [ "SL_MATTER_VERSION_STRING=\"${sl_matter_version_str}\"" ] + defines += [ "SL_MATTER_VERSION_STRING=\"${sl_matter_version_str}\"" ] + } + if (sl_matter_version != 1) { + defines += [ "SL_MATTER_VERSION=${sl_matter_version}" ] + } + if (sl_hardware_version != 1) { + defines += [ "SL_HARDWARE_VERSION=${sl_hardware_version}" ] } } From ed324437e642b7cf742426fe3beadb37b28db789 Mon Sep 17 00:00:00 2001 From: pankore <86098180+pankore@users.noreply.github.com> Date: Thu, 23 Mar 2023 23:09:58 +0800 Subject: [PATCH 08/10] setdeviceinstanceinfoprovider use factorydataprovider by default (#25706) --- examples/all-clusters-app/ameba/main/chipinterface.cpp | 2 -- examples/chef/ameba/main/chipinterface.cpp | 9 ++++++--- examples/light-switch-app/ameba/main/chipinterface.cpp | 9 ++++++--- examples/lighting-app/ameba/main/chipinterface.cpp | 9 ++++++--- examples/ota-requestor-app/ameba/main/chipinterface.cpp | 8 +++++--- 5 files changed, 23 insertions(+), 14 deletions(-) diff --git a/examples/all-clusters-app/ameba/main/chipinterface.cpp b/examples/all-clusters-app/ameba/main/chipinterface.cpp index 380cf4bd62c117..c0e918e2082a86 100644 --- a/examples/all-clusters-app/ameba/main/chipinterface.cpp +++ b/examples/all-clusters-app/ameba/main/chipinterface.cpp @@ -172,9 +172,7 @@ extern "C" void ChipTest(void) // Set DeviceInstanceInfoProvider after CHIPDeviceManager init // CHIPDeviceManager init will set GenericDeviceInsanceInfoProvider first -#if CONFIG_ENABLE_AMEBA_FACTORY_DATA SetDeviceInstanceInfoProvider(&mFactoryDataProvider); -#endif chip::DeviceLayer::PlatformMgr().ScheduleWork(InitServer, 0); diff --git a/examples/chef/ameba/main/chipinterface.cpp b/examples/chef/ameba/main/chipinterface.cpp index 5a0b3f21d2417a..f68fca04254cf7 100644 --- a/examples/chef/ameba/main/chipinterface.cpp +++ b/examples/chef/ameba/main/chipinterface.cpp @@ -127,11 +127,10 @@ extern "C" void ChipTest(void) initPref(); - // Initialize device attestation, commissionable data and device instance info - // TODO: Use our own DeviceInstanceInfoProvider - // SetDeviceInstanceInfoProvider(&mFactoryDataProvider); + mFactoryDataProvider.Init(); SetCommissionableDataProvider(&mFactoryDataProvider); SetDeviceAttestationCredentialsProvider(&mFactoryDataProvider); + CHIPDeviceManager & deviceMgr = CHIPDeviceManager::GetInstance(); err = deviceMgr.Init(&EchoCallbacks); @@ -144,6 +143,10 @@ extern "C" void ChipTest(void) ChipLogProgress(DeviceLayer, "DeviceManagerInit() - OK\r\n"); } + // Set DeviceInstanceInfoProvider after CHIPDeviceManager init + // CHIPDeviceManager init will set GenericDeviceInsanceInfoProvider first + SetDeviceInstanceInfoProvider(&mFactoryDataProvider); + chip::DeviceLayer::PlatformMgr().ScheduleWork(InitServer, 0); statusLED1.Init(STATUS_LED_GPIO_NUM); diff --git a/examples/light-switch-app/ameba/main/chipinterface.cpp b/examples/light-switch-app/ameba/main/chipinterface.cpp index 24e32a72decf39..85e4c401514d99 100644 --- a/examples/light-switch-app/ameba/main/chipinterface.cpp +++ b/examples/light-switch-app/ameba/main/chipinterface.cpp @@ -132,11 +132,10 @@ extern "C" void ChipTest(void) initPref(); - // Initialize device attestation, commissionable data and device instance info - // TODO: Use our own DeviceInstanceInfoProvider - // SetDeviceInstanceInfoProvider(&mFactoryDataProvider); + mFactoryDataProvider.Init(); SetCommissionableDataProvider(&mFactoryDataProvider); SetDeviceAttestationCredentialsProvider(&mFactoryDataProvider); + CHIPDeviceManager & deviceMgr = CHIPDeviceManager::GetInstance(); err = deviceMgr.Init(&EchoCallbacks); @@ -149,6 +148,10 @@ extern "C" void ChipTest(void) ChipLogProgress(DeviceLayer, "DeviceManagerInit() - OK\r\n"); } + // Set DeviceInstanceInfoProvider after CHIPDeviceManager init + // CHIPDeviceManager init will set GenericDeviceInsanceInfoProvider first + SetDeviceInstanceInfoProvider(&mFactoryDataProvider); + chip::DeviceLayer::PlatformMgr().ScheduleWork(InitServer, 0); statusLED1.Init(STATUS_LED_GPIO_NUM); diff --git a/examples/lighting-app/ameba/main/chipinterface.cpp b/examples/lighting-app/ameba/main/chipinterface.cpp index a45222a1207c30..f46fe7ad320557 100644 --- a/examples/lighting-app/ameba/main/chipinterface.cpp +++ b/examples/lighting-app/ameba/main/chipinterface.cpp @@ -148,11 +148,10 @@ extern "C" void ChipTest(void) initPref(); - // Initialize device attestation, commissionable data and device instance info - // TODO: Use our own DeviceInstanceInfoProvider - // SetDeviceInstanceInfoProvider(&mFactoryDataProvider); + mFactoryDataProvider.Init(); SetCommissionableDataProvider(&mFactoryDataProvider); SetDeviceAttestationCredentialsProvider(&mFactoryDataProvider); + CHIPDeviceManager & deviceMgr = CHIPDeviceManager::GetInstance(); err = deviceMgr.Init(&EchoCallbacks); @@ -165,6 +164,10 @@ extern "C" void ChipTest(void) ChipLogProgress(DeviceLayer, "DeviceManagerInit() - OK\r\n"); } + // Set DeviceInstanceInfoProvider after CHIPDeviceManager init + // CHIPDeviceManager init will set GenericDeviceInsanceInfoProvider first + SetDeviceInstanceInfoProvider(&mFactoryDataProvider); + chip::DeviceLayer::PlatformMgr().ScheduleWork(InitServer, 0); statusLED1.Init(STATUS_LED_GPIO_NUM); diff --git a/examples/ota-requestor-app/ameba/main/chipinterface.cpp b/examples/ota-requestor-app/ameba/main/chipinterface.cpp index 865d98c1a165cd..2dd76a6dba308b 100644 --- a/examples/ota-requestor-app/ameba/main/chipinterface.cpp +++ b/examples/ota-requestor-app/ameba/main/chipinterface.cpp @@ -95,9 +95,7 @@ extern "C" void ChipTest(void) initPref(); - // Initialize device attestation, commissionable data and device instance info - // TODO: Use our own DeviceInstanceInfoProvider - // SetDeviceInstanceInfoProvider(&mFactoryDataProvider); + mFactoryDataProvider.Init(); SetCommissionableDataProvider(&mFactoryDataProvider); SetDeviceAttestationCredentialsProvider(&mFactoryDataProvider); @@ -112,5 +110,9 @@ extern "C" void ChipTest(void) ChipLogProgress(DeviceLayer, "DeviceManagerInit() - OK\r\n"); } + // Set DeviceInstanceInfoProvider after CHIPDeviceManager init + // CHIPDeviceManager init will set GenericDeviceInsanceInfoProvider first + SetDeviceInstanceInfoProvider(&mFactoryDataProvider); + chip::DeviceLayer::PlatformMgr().ScheduleWork(InitServer, 0); } From 1b2ef05e92924239206f9a2938fe4bd430d4574f Mon Sep 17 00:00:00 2001 From: pakls Date: Thu, 23 Mar 2023 23:48:22 +0800 Subject: [PATCH 09/10] [genio] pump mt793x bsp to use non-LTO library (#25775) --- third_party/mt793x_sdk/filogic | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/mt793x_sdk/filogic b/third_party/mt793x_sdk/filogic index c66bf734656152..dc5d8f9a57dc41 160000 --- a/third_party/mt793x_sdk/filogic +++ b/third_party/mt793x_sdk/filogic @@ -1 +1 @@ -Subproject commit c66bf7346561529da0d92c2314e661702d800e0c +Subproject commit dc5d8f9a57dc418f343ef855cc6cc37d9721d162 From bf14eb2ecebb7a5f3b0a0083776ccb3b3c097f68 Mon Sep 17 00:00:00 2001 From: Cliff Chung <116232729+cliffamzn@users.noreply.github.com> Date: Fri, 24 Mar 2023 01:44:09 +0900 Subject: [PATCH 10/10] Adding a darwin smoketest github workflow (#25703) We should build the darwin examples through CI to ensure they work correctly one every PR Fixes: #25702 --- .github/workflows/smoketest-darwin.yaml | 72 +++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 .github/workflows/smoketest-darwin.yaml diff --git a/.github/workflows/smoketest-darwin.yaml b/.github/workflows/smoketest-darwin.yaml new file mode 100644 index 00000000000000..d4b06f4f2d3c89 --- /dev/null +++ b/.github/workflows/smoketest-darwin.yaml @@ -0,0 +1,72 @@ +# Copyright (c) 2023 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Smoke Test - Darwin + +on: + push: + pull_request: + merge_group: + workflow_dispatch: + +concurrency: + group: ${{ github.ref }}-${{ github.workflow }}-${{ (github.event_name == 'pull_request' && github.event.number) || (github.event_name == 'workflow_dispatch' && github.run_number) || github.sha }} + cancel-in-progress: true + +jobs: + darwin: + name: Smoke Run - Darwin + timeout-minutes: 60 + + if: github.actor != 'restyled-io[bot]' + runs-on: macos-latest + + steps: + - uses: Wandalen/wretry.action@v1.0.36 + name: Checkout + with: + action: actions/checkout@v3 + with: | + token: ${{ github.token }} + attempt_limit: 3 + attempt_delay: 2000 + - name: Checkout submodules + run: scripts/checkout_submodules.py --shallow --platform darwin + - name: Setup Environment + run: brew install python@3.9 + + - name: Bootstrap cache + uses: actions/cache@v3 + timeout-minutes: 10 + with: + key: ${{ runner.os }}-env-${{ hashFiles('scripts/setup/*', 'third_party/pigweed/**') }} + path: | + .environment + build_overrides/pigweed_environment.gni + - name: Bootstrap + timeout-minutes: 25 + run: scripts/build/gn_bootstrap.sh + - name: Uploading bootstrap logs + uses: actions/upload-artifact@v3 + if: ${{ always() && !env.ACT }} + with: + name: bootstrap-logs + path: | + .environment/gn_out/.ninja_log + .environment/pigweed-venv/*.log + - name: Build Matter TV Casting Bridge + timeout-minutes: 20 + run: | + xcodebuild -target "MatterTvCastingBridge" -sdk iphoneos + working-directory: examples/tv-casting-app/darwin/MatterTvCastingBridge