Skip to content

Commit

Permalink
Add concentrator support to router builds (#14)
Browse files Browse the repository at this point in the history
* Add concentrator support.

* Add Identify client cluster.

* Improve ZAP config.
  • Loading branch information
Nerivec authored Nov 7, 2024
1 parent 34ec45e commit e227c42
Show file tree
Hide file tree
Showing 46 changed files with 328 additions and 131 deletions.
4 changes: 3 additions & 1 deletion .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,9 @@ jobs:
--output-dir outputs \
--output gbl \
--output hex \
--output out
--output out \
--repo-owner "$GITHUB_REPOSITORY_OWNER" \
--repo-hash $(git rev-parse --short=8 "$GITHUB_SHA")
# Get the basename of the GBL in `outputs`
output_basename=$(basename -- $(basename -- $(ls -1 outputs/*.gbl | head -n 1)) .gbl)
Expand Down
33 changes: 33 additions & 0 deletions data/silabs-adapter-with-router-firmware-converter.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
const {linkQuality} = require('zigbee-herdsman-converters/lib/modernExtend');
const {factory_reset} = require('zigbee-herdsman-converters/converters/toZigbee');
const {presets, access} = require('zigbee-herdsman-converters/lib/exposes');

const definitions = {
fingerprint: [
{modelID: 'ZGA008', manufacturerName: 'Aeotec'},
{modelID: 'ZB-GW04', manufacturerName: 'easyiot'},
{modelID: 'ZB-GW04-1v1', manufacturerName: 'easyiot'},
{modelID: 'ZB-GW04-1v2', manufacturerName: 'easyiot'},
{modelID: 'SkyConnect', manufacturerName: 'NabuCasa'},
{modelID: 'SLZB-06M', manufacturerName: 'SMLIGHT'},
{modelID: 'SLZB-07', manufacturerName: 'SMLIGHT'},
{modelID: 'SLZB-07MG24', manufacturerName: 'SMLIGHT'},
{modelID: 'DONGLE-E', manufacturerName: 'SONOFF'},
{modelID: 'MGM240P', manufacturerName: 'SparkFun'},
{modelID: 'MGM24', manufacturerName: 'TubesZB'},
{modelID: 'MGM24PB', manufacturerName: 'TubesZB'},
],
model: 'Silabs series 2 router',
vendor: 'Silabs',
description: 'Silabs series 2 adapter with router firmware',
toZigbee: [factory_reset],
exposes: [
presets
.enum('reset', access.SET, ['reset'])
.withDescription('Resets and launches the bootloader for flashing. If USB, ensure the device is already connected to the machine where you intend to flash it before triggering this.'),
],
extend: [linkQuality({reporting: true})],
meta: {disableDefaultResponse: true},
};

module.exports = definitions;
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: ZGA008 OpenThread RCP
name: Aeotec ZGA008 OpenThread RCP
device: EFR32MG21A020F1024IM32
base_project: src/openthread_rcp
filename: "{manifest_name}_{ot_version}_{baudrate}"
Expand Down
2 changes: 1 addition & 1 deletion manifests/aeotec/aeotec_zga008_zigbee_ncp.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: ZGA008 Zigbee
name: Aeotec ZGA008 Zigbee NCP
device: EFR32MG21A020F1024IM32
base_project: src/zigbee_ncp
filename: "{manifest_name}_{ezsp_version}_{baudrate}_{fw_variant}"
Expand Down
23 changes: 14 additions & 9 deletions manifests/aeotec/aeotec_zga008_zigbee_router.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: ZGA008 Zigbee Router
name: Aeotec ZGA008 Zigbee Router
device: EFR32MG21A020F1024IM32
base_project: src/zigbee_router
filename: "{manifest_name}_{ezsp_version}_{baudrate}_{fw_variant}"
Expand All @@ -15,7 +15,7 @@ slcp_defines:
SL_ZIGBEE_ADDRESS_TABLE_SIZE: 32
SL_ZIGBEE_MULTICAST_TABLE_SIZE: 26
SL_ZIGBEE_ROUTE_TABLE_SIZE: 16
SL_ZIGBEE_DISCOVERY_TABLE_SIZE: 8
SL_ZIGBEE_DISCOVERY_TABLE_SIZE: 16

c_defines:
SL_IOSTREAM_USART_VCOM_BAUDRATE: 115200
Expand Down Expand Up @@ -55,15 +55,20 @@ c_defines:
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_CHANNEL_MASK: 0x07fff800
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_RADIO_TX_POWER: 20

SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_CONCENTRATOR_TYPE: HIGH_RAM_CONCENTRATOR
# <1-60>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_MIN_TIME_BETWEEN_BROADCASTS_SECONDS: 10
# <30-300>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_MAX_TIME_BETWEEN_BROADCASTS_SECONDS: 60
# <1-100>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_ROUTE_ERROR_THRESHOLD: 3
# <1-100>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_DELIVERY_FAILURE_THRESHOLD: 1

zap_config:
endpoint_types:
- name: "Centralized"
- name: Centralized
clusters:
- name: "Basic"
attribute_defaults:
"model identifier": ZGA008
"manufacturer name": Aeotec
"date code": template:{now:%Y%m%d%H%M%S}
"sw build id": template:{sdk_version}
- name: Basic
remove:
- "Over the Air Bootloading"
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: ZB-GW04-1v1 OpenThread RCP
name: easyiot ZB-GW04-1v1 OpenThread RCP
device: EFR32MG21A020F768IM32
base_project: src/openthread_rcp
filename: "{manifest_name}_{ot_version}_{baudrate}_{fw_variant}"
Expand Down
2 changes: 1 addition & 1 deletion manifests/easyiot/easyiot_zb-gw04-1v1_zigbee_ncp.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: ZB-GW04-1v1 Zigbee
name: easyiot ZB-GW04-1v1 Zigbee NCP
device: EFR32MG21A020F768IM32
base_project: src/zigbee_ncp
filename: "{manifest_name}_{ezsp_version}_{baudrate}_{fw_variant}"
Expand Down
23 changes: 14 additions & 9 deletions manifests/easyiot/easyiot_zb-gw04-1v1_zigbee_router.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: ZB-GW04-1v1 Zigbee Router
name: easyiot ZB-GW04-1v1 Zigbee Router
device: EFR32MG21A020F768IM32
base_project: src/zigbee_router
filename: "{manifest_name}_{ezsp_version}_{baudrate}_{fw_variant}"
Expand All @@ -15,7 +15,7 @@ slcp_defines:
SL_ZIGBEE_ADDRESS_TABLE_SIZE: 32
SL_ZIGBEE_MULTICAST_TABLE_SIZE: 26
SL_ZIGBEE_ROUTE_TABLE_SIZE: 16
SL_ZIGBEE_DISCOVERY_TABLE_SIZE: 8
SL_ZIGBEE_DISCOVERY_TABLE_SIZE: 16

c_defines:
SL_IOSTREAM_USART_VCOM_BAUDRATE: 115200
Expand Down Expand Up @@ -55,15 +55,20 @@ c_defines:
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_CHANNEL_MASK: 0x07fff800
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_RADIO_TX_POWER: 20

SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_CONCENTRATOR_TYPE: HIGH_RAM_CONCENTRATOR
# <1-60>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_MIN_TIME_BETWEEN_BROADCASTS_SECONDS: 10
# <30-300>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_MAX_TIME_BETWEEN_BROADCASTS_SECONDS: 60
# <1-100>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_ROUTE_ERROR_THRESHOLD: 3
# <1-100>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_DELIVERY_FAILURE_THRESHOLD: 1

zap_config:
endpoint_types:
- name: "Centralized"
- name: Centralized
clusters:
- name: "Basic"
attribute_defaults:
"model identifier": ZB-GW04
"manufacturer name": easyiot
"date code": template:{now:%Y%m%d%H%M%S}
"sw build id": template:{sdk_version}
- name: Basic
remove:
- "Over the Air Bootloading"
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: ZB-GW04-1v2 OpenThread RCP
name: easyiot ZB-GW04-1v2 OpenThread RCP
device: EFR32MG21A020F768IM32
base_project: src/openthread_rcp
filename: "{manifest_name}_{ot_version}_{baudrate}"
Expand Down
2 changes: 1 addition & 1 deletion manifests/easyiot/easyiot_zb-gw04-1v2_zigbee_ncp.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: ZB-GW04-1v2 Zigbee
name: easyiot ZB-GW04-1v2 Zigbee NCP
device: EFR32MG21A020F768IM32
base_project: src/zigbee_ncp
filename: "{manifest_name}_{ezsp_version}_{baudrate}_{fw_variant}"
Expand Down
23 changes: 14 additions & 9 deletions manifests/easyiot/easyiot_zb-gw04-1v2_zigbee_router.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: ZB-GW04-1v2 Zigbee Router
name: easyiot ZB-GW04-1v2 Zigbee Router
device: EFR32MG21A020F768IM32
base_project: src/zigbee_router
filename: "{manifest_name}_{ezsp_version}_{baudrate}_{fw_variant}"
Expand All @@ -15,7 +15,7 @@ slcp_defines:
SL_ZIGBEE_ADDRESS_TABLE_SIZE: 32
SL_ZIGBEE_MULTICAST_TABLE_SIZE: 26
SL_ZIGBEE_ROUTE_TABLE_SIZE: 16
SL_ZIGBEE_DISCOVERY_TABLE_SIZE: 8
SL_ZIGBEE_DISCOVERY_TABLE_SIZE: 16

c_defines:
SL_IOSTREAM_USART_VCOM_BAUDRATE: 115200
Expand Down Expand Up @@ -55,15 +55,20 @@ c_defines:
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_CHANNEL_MASK: 0x07fff800
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_RADIO_TX_POWER: 20

SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_CONCENTRATOR_TYPE: HIGH_RAM_CONCENTRATOR
# <1-60>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_MIN_TIME_BETWEEN_BROADCASTS_SECONDS: 10
# <30-300>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_MAX_TIME_BETWEEN_BROADCASTS_SECONDS: 60
# <1-100>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_ROUTE_ERROR_THRESHOLD: 3
# <1-100>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_DELIVERY_FAILURE_THRESHOLD: 1

zap_config:
endpoint_types:
- name: "Centralized"
- name: Centralized
clusters:
- name: "Basic"
attribute_defaults:
"model identifier": ZB-GW04
"manufacturer name": easyiot
"date code": template:{now:%Y%m%d%H%M%S}
"sw build id": template:{sdk_version}
- name: Basic
remove:
- "Over the Air Bootloading"
2 changes: 1 addition & 1 deletion manifests/easyiot/easyiot_zb-gw04_bootloader.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: ZB-GW04 Bootloader
name: easyiot ZB-GW04 Bootloader
device: EFR32MG21A020F768IM32
base_project: src/bootloader
filename: "{manifest_name}_{gecko_bootloader_version}"
Expand Down
2 changes: 1 addition & 1 deletion manifests/nabucasa/nabucasa_skyconnect_bootloader.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: SkyConnect Bootloader
name: NabuCasa SkyConnect Bootloader
device: EFR32MG21A020F512IM32
base_project: src/bootloader
filename: "{manifest_name}_{gecko_bootloader_version}"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: SkyConnect OpenThread RCP
name: NabuCasa SkyConnect OpenThread RCP
device: EFR32MG21A020F512IM32
base_project: src/openthread_rcp
filename: "{manifest_name}_{ot_version}_{baudrate}"
Expand Down
2 changes: 1 addition & 1 deletion manifests/nabucasa/nabucasa_skyconnect_zigbee_ncp.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: SkyConnect Zigbee
name: NabuCasa SkyConnect Zigbee NCP
device: EFR32MG21A020F512IM32
base_project: src/zigbee_ncp
filename: "{manifest_name}_{ezsp_version}_{baudrate}_{fw_variant}"
Expand Down
23 changes: 14 additions & 9 deletions manifests/nabucasa/nabucasa_skyconnect_zigbee_router.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: SkyConnect Zigbee Router
name: NabuCasa SkyConnect Zigbee Router
device: EFR32MG21A020F512IM32
base_project: src/zigbee_router
filename: "{manifest_name}_{ezsp_version}_{baudrate}_{fw_variant}"
Expand All @@ -15,7 +15,7 @@ slcp_defines:
SL_ZIGBEE_ADDRESS_TABLE_SIZE: 32
SL_ZIGBEE_MULTICAST_TABLE_SIZE: 26
SL_ZIGBEE_ROUTE_TABLE_SIZE: 16
SL_ZIGBEE_DISCOVERY_TABLE_SIZE: 8
SL_ZIGBEE_DISCOVERY_TABLE_SIZE: 16

c_defines:
SL_IOSTREAM_USART_VCOM_BAUDRATE: 115200
Expand Down Expand Up @@ -57,15 +57,20 @@ c_defines:
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_CHANNEL_MASK: 0x07fff800
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_RADIO_TX_POWER: 20

SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_CONCENTRATOR_TYPE: HIGH_RAM_CONCENTRATOR
# <1-60>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_MIN_TIME_BETWEEN_BROADCASTS_SECONDS: 10
# <30-300>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_MAX_TIME_BETWEEN_BROADCASTS_SECONDS: 60
# <1-100>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_ROUTE_ERROR_THRESHOLD: 3
# <1-100>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_DELIVERY_FAILURE_THRESHOLD: 1

zap_config:
endpoint_types:
- name: "Centralized"
- name: Centralized
clusters:
- name: "Basic"
attribute_defaults:
"model identifier": SkyConnect
"manufacturer name": NabuCasa
"date code": template:{now:%Y%m%d%H%M%S}
"sw build id": template:{sdk_version}
- name: Basic
remove:
- "Over the Air Bootloading"
2 changes: 1 addition & 1 deletion manifests/nabucasa/nabucasa_yellow_bootloader.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Yellow Bootloader
name: NabuCasa Yellow Bootloader
device: MGM210PA32JIA
base_project: src/bootloader
filename: "{manifest_name}_{gecko_bootloader_version}"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Yellow OpenThread RCP
name: NabuCasa Yellow OpenThread RCP
device: MGM210PA32JIA
base_project: src/openthread_rcp
filename: "{manifest_name}_{ot_version}_{baudrate}"
Expand Down
2 changes: 1 addition & 1 deletion manifests/nabucasa/nabucasa_yellow_zigbee_ncp.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Yellow Zigbee
name: NabuCasa Yellow Zigbee NCP
device: MGM210PA32JIA
base_project: src/zigbee_ncp
filename: "{manifest_name}_{ezsp_version}_{baudrate}_{fw_variant}"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: SLZB-06M OpenThread RCP
name: SMLIGHT SLZB-06M OpenThread RCP
device: EFR32MG21A020F768IM32
base_project: src/openthread_rcp
filename: "{manifest_name}_{ot_version}_{baudrate}_{fw_variant}"
Expand Down
2 changes: 1 addition & 1 deletion manifests/smlight/smlight_slzb06m_zigbee_ncp.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: SLZB-06M Zigbee
name: SMLIGHT SLZB-06M Zigbee NCP
device: EFR32MG21A020F768IM32
base_project: src/zigbee_ncp
filename: "{manifest_name}_{ezsp_version}_{baudrate}_{fw_variant}"
Expand Down
23 changes: 14 additions & 9 deletions manifests/smlight/smlight_slzb06m_zigbee_router.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: SLZB-06M Zigbee Router
name: SMLIGHT SLZB-06M Zigbee Router
device: EFR32MG21A020F768IM32
base_project: src/zigbee_router
filename: "{manifest_name}_{ezsp_version}_{baudrate}_{fw_variant}"
Expand All @@ -15,7 +15,7 @@ slcp_defines:
SL_ZIGBEE_ADDRESS_TABLE_SIZE: 32
SL_ZIGBEE_MULTICAST_TABLE_SIZE: 26
SL_ZIGBEE_ROUTE_TABLE_SIZE: 16
SL_ZIGBEE_DISCOVERY_TABLE_SIZE: 8
SL_ZIGBEE_DISCOVERY_TABLE_SIZE: 16

c_defines:
SL_IOSTREAM_USART_VCOM_BAUDRATE: 115200
Expand Down Expand Up @@ -55,15 +55,20 @@ c_defines:
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_CHANNEL_MASK: 0x07fff800
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_RADIO_TX_POWER: 20

SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_CONCENTRATOR_TYPE: HIGH_RAM_CONCENTRATOR
# <1-60>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_MIN_TIME_BETWEEN_BROADCASTS_SECONDS: 10
# <30-300>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_MAX_TIME_BETWEEN_BROADCASTS_SECONDS: 60
# <1-100>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_ROUTE_ERROR_THRESHOLD: 3
# <1-100>
SL_ZIGBEE_AF_PLUGIN_CONCENTRATOR_DELIVERY_FAILURE_THRESHOLD: 1

zap_config:
endpoint_types:
- name: "Centralized"
- name: Centralized
clusters:
- name: "Basic"
attribute_defaults:
"model identifier": SLZB-06M
"manufacturer name": SMLIGHT
"date code": template:{now:%Y%m%d%H%M%S}
"sw build id": template:{sdk_version}
- name: Basic
remove:
- "Over the Air Bootloading"
2 changes: 1 addition & 1 deletion manifests/smlight/smlight_slzb07Mg24_bootloader.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: SLZB-07Mg24 Bootloader
name: SMLIGHT SLZB-07MG24 Bootloader
device: EFR32MG24A020F1024IM40
base_project: src/bootloader
filename: "{manifest_name}_{gecko_bootloader_version}"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: SLZB-07Mg24 OpenThread RCP
name: SMLIGHT SLZB-07MG24 OpenThread RCP
device: EFR32MG24A020F1024IM40
base_project: src/openthread_rcp
filename: "{manifest_name}_{ot_version}_{baudrate}"
Expand Down
2 changes: 1 addition & 1 deletion manifests/smlight/smlight_slzb07Mg24_zigbee_ncp.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: SLZB-07Mg24 Zigbee
name: SMLIGHT SLZB-07MG24 Zigbee NCP
device: EFR32MG24A020F1024IM40
base_project: src/zigbee_ncp
filename: "{manifest_name}_{ezsp_version}_{baudrate}_{fw_variant}"
Expand Down
Loading

0 comments on commit e227c42

Please sign in to comment.