From 25d6954bd398e77a64500be26920127fabc98320 Mon Sep 17 00:00:00 2001 From: Petar Petrov Date: Wed, 18 Jun 2025 08:46:22 +0300 Subject: [PATCH 1/2] Add controller.toggleRF command --- src/lib/controller/command.ts | 1 + src/lib/controller/incoming_message.ts | 7 +++++++ src/lib/controller/message_handler.ts | 4 ++++ src/lib/controller/outgoing_message.ts | 1 + 4 files changed, 13 insertions(+) diff --git a/src/lib/controller/command.ts b/src/lib/controller/command.ts index b72e3f2a9..58da9e8a5 100644 --- a/src/lib/controller/command.ts +++ b/src/lib/controller/command.ts @@ -41,6 +41,7 @@ export enum ControllerCommand { restoreNVM = "controller.restore_nvm", setRFRegion = "controller.set_rf_region", getRFRegion = "controller.get_rf_region", + toggleRF = "controller.toggle_rf", setPowerlevel = "controller.set_powerlevel", getPowerlevel = "controller.get_powerlevel", getState = "controller.get_state", diff --git a/src/lib/controller/incoming_message.ts b/src/lib/controller/incoming_message.ts index 3382fdea3..6929f6fd6 100644 --- a/src/lib/controller/incoming_message.ts +++ b/src/lib/controller/incoming_message.ts @@ -261,6 +261,12 @@ export interface IncomingCommandControllerGetRFRegion command: ControllerCommand.getRFRegion; } +export interface IncomingCommandControllerToggleRF + extends IncomingCommandControllerBase { + command: ControllerCommand.toggleRF; + enabled: boolean; +} + export interface IncomingCommandControllerSetPowerlevel extends IncomingCommandControllerBase { command: ControllerCommand.setPowerlevel; @@ -386,6 +392,7 @@ export type IncomingMessageController = | IncomingCommandControllerRestoreNVM | IncomingCommandControllerSetRFRegion | IncomingCommandControllerGetRFRegion + | IncomingCommandControllerToggleRF | IncomingCommandControllerSetPowerlevel | IncomingCommandControllerGetPowerlevel | IncomingCommandControllerGetState diff --git a/src/lib/controller/message_handler.ts b/src/lib/controller/message_handler.ts index 85f32bdb9..7f430a7d6 100644 --- a/src/lib/controller/message_handler.ts +++ b/src/lib/controller/message_handler.ts @@ -302,6 +302,10 @@ export class ControllerMessageHandler implements MessageHandler { const region = await this.driver.controller.getRFRegion(); return { region }; } + case ControllerCommand.toggleRF: { + const success = await this.driver.controller.toggleRF(message.enabled); + return { success }; + } case ControllerCommand.setPowerlevel: { const success = await this.driver.controller.setPowerlevel( message.powerlevel, diff --git a/src/lib/controller/outgoing_message.ts b/src/lib/controller/outgoing_message.ts index 5d530396e..41c9c5c12 100644 --- a/src/lib/controller/outgoing_message.ts +++ b/src/lib/controller/outgoing_message.ts @@ -57,6 +57,7 @@ export interface ControllerResultTypes { [ControllerCommand.restoreNVM]: Record; [ControllerCommand.setRFRegion]: { success: boolean }; [ControllerCommand.getRFRegion]: { region: RFRegion }; + [ControllerCommand.toggleRF]: { success: boolean }; [ControllerCommand.setPowerlevel]: { success: boolean }; [ControllerCommand.getPowerlevel]: { powerlevel: number; From d72c24f47e6ac861d7bd0a51ce37127a410e4878 Mon Sep 17 00:00:00 2001 From: Petar Petrov Date: Wed, 18 Jun 2025 08:55:19 +0300 Subject: [PATCH 2/2] bump schema --- API_SCHEMA.md | 4 ++++ src/lib/const.ts | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/API_SCHEMA.md b/API_SCHEMA.md index 5bc757ad3..2045b211a 100644 --- a/API_SCHEMA.md +++ b/API_SCHEMA.md @@ -97,3 +97,7 @@ Base schema. # Schema 42 - Added `sdkVersion` property to `NodeState` + +# Schema 43 + +- Added `controller.toggle_rf` command diff --git a/src/lib/const.ts b/src/lib/const.ts index 3b2a36d83..d2ac066c9 100644 --- a/src/lib/const.ts +++ b/src/lib/const.ts @@ -6,7 +6,7 @@ export const version = require("../../package.json").version; export const minSchemaVersion = 0; // maximal/current schema version the server supports -export const maxSchemaVersion = 42; +export const maxSchemaVersion = 43; export const applicationName = "zwave-js-server"; export const dnssdServiceType = applicationName;