Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -457,10 +457,10 @@ docker compose -f docker-dev/compose.yaml down
- Submit sniffs/captures to help improve compatibility
- Search for `TODO`, `HACK`, `XXX` markers for areas needing work
- Maintain zero production dependencies policy
- Align with Zigbee 3.0 specification
- Zigbee specification (05-3474-23): Revision 23.1
- Base device behavior (16-02828-012): v3.0.1
- ZCL specification (07-5123): Revision 8
- Align with Zigbee 4.0 specification
- Zigbee specification (06-3474-23): Revision 23.2
- Base device behavior (22-65816-030): v3.1
- ZCL specification (07-5123-08): Revision 8
- Green Power specification (14-0563-19): Version 1.1.2
- Use Wireshark property names for consistency

Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ Some quick guidelines to keep the codebase maintainable:
- Ability to no-op expensive "optional" features
- And the usuals...
- Keep MAC/Zigbee property naming mostly in line with Wireshark for easier debugging
- Keep in line with the Zigbee 3.0 specification, but allow optimization due to the host-driven nature and removal of unnecessary features that won't impact compatibility
- Keep in line with the Zigbee 4.0 specification, but allow optimization due to the host-driven nature and removal of unnecessary features that won't impact compatibility
- Focus on "Centralized Trust Center" implementation (at least at first)
2 changes: 1 addition & 1 deletion biome.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "https://biomejs.dev/schemas/2.3.13/schema.json",
"$schema": "https://biomejs.dev/schemas/2.3.14/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
Expand Down
76 changes: 38 additions & 38 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "zigbee-on-host",
"version": "0.2.4",
"version": "0.3.0",
"description": "Zigbee stack designed to run on a host and communicate with a radio co-processor (RCP)",
"engines": {
"node": "^20.19.0 || >=22.12.0"
Expand Down Expand Up @@ -41,11 +41,11 @@
},
"homepage": "https://github.com/Nerivec/zigbee-on-host#readme",
"devDependencies": {
"@biomejs/biome": "^2.3.13",
"@biomejs/biome": "^2.3.14",
"@types/node": "^24.10.9",
"@vitest/coverage-v8": "^4.0.18",
"serialport": "^13.0.0",
"typescript": "^5.9.3",
"vitest": "^4.0.18"
}
}
}
3 changes: 2 additions & 1 deletion src/dev/z2mdata-to-zohsave.ts
Original file line number Diff line number Diff line change
Expand Up @@ -219,8 +219,9 @@ async function convert(dataPath: string): Promise<void> {
authorized: device.interviewState === InterviewState.SUCCESSFUL,
// add support for not knowing this in driver (re-evaluation)
neighbor: backupDevice?.is_child !== true,
lastTransportedNetworkKeySeq: undefined,
lastTransportedNetworkKeySeq: networkKeySequenceNumber,
recentLQAs: [],
lastReceivedRssi: undefined,
incomingNWKFrameCounter: undefined,
endDeviceTimeout: undefined,
linkStatusMisses: 0,
Expand Down
5 changes: 4 additions & 1 deletion src/drivers/ot-rcp-driver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,9 @@ export class OTRCPDriver {
onAPSSendTransportKeyNWK: async (address16, key, keySeqNum, destination64) => {
await this.apsHandler.sendTransportKeyNWK(address16, key, keySeqNum, destination64);
},
onAPSSendStartKeyUpdateRequest: async (nwkDest16, nwkDest64, keyNegotiationProtocol, preSharedSecret) => {
await this.apsHandler.sendStartKeyUpdateRequest(nwkDest16, nwkDest64, keyNegotiationProtocol, preSharedSecret);
},
};

this.nwkHandler = new NWKHandler(this.context, this.macHandler, nwkCallbacks);
Expand Down Expand Up @@ -531,7 +534,7 @@ export class OTRCPDriver {

// #region Network Management

//---- 05-3474-23 #2.5.4.6
//---- 06-3474-23 #2.5.4.6
// Network Discovery, Get, and Set attributes (both requests and confirms) are mandatory
// Zigbee Coordinator:
// - The NWK Formation request and confirm, the NWK Leave request, NWK Leave indication, NWK Leave confirm, NWK Join indication,
Expand Down
8 changes: 4 additions & 4 deletions src/drivers/wip.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { TrustCenterPolicies } from "../zigbee-stack/stack-context";

/**
* see 05-3474-23 #3.6.1.7
* see 06-3474-23 #3.6.1.7
*
* SHALL contain information on every device on the current Zigbee network within transmission range, up to some implementation-dependent limit.
* The neighbor does not store information about potential networks and candidate parents to join or rejoin.
Expand Down Expand Up @@ -153,14 +153,14 @@ export type NeighborTableEntry = {
};

/**
* see 05-3474-23 Table 4-2
* see 06-3474-23 Table 4-2
* TODO
* This set contains the network keying material, which SHOULD be accessible to commissioning applications.
*/
export type NWKSecurityMaterialSet = undefined;

/**
* see 05-3474-23 Table 2-24
* see 06-3474-23 Table 2-24
* TODO
* The binding table for this device. Binding provides a separation of concerns in the sense that applications MAY operate without having to manage recipient address information for the frames they emit. This information can be input at commissioning time without the main application on the device even being aware of it.
*/
Expand All @@ -169,7 +169,7 @@ export type APSBindingTable = {
};

/**
* see 05-3474-23 Table 4-35
* see 06-3474-23 Table 4-35
* A set of key-pair descriptors containing link keys shared with other devices.
*/
export type APSDeviceKeyPairSet = {
Expand Down
1 change: 1 addition & 0 deletions src/utils/types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export type RequiredNonNullable<T> = { [P in keyof T]-?: NonNullable<T[P]> };
Loading