From e62ea95c75b0e875fe35bf5d0b6f02c221334216 Mon Sep 17 00:00:00 2001 From: oscgonfer Date: Sat, 21 Feb 2026 20:11:32 +0100 Subject: [PATCH 1/6] Add toggles to enable/disable multisensor node metrics --- meshtastic/admin.proto | 57 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/meshtastic/admin.proto b/meshtastic/admin.proto index 0fbfbe3..c24ae24 100644 --- a/meshtastic/admin.proto +++ b/meshtastic/admin.proto @@ -661,6 +661,11 @@ message SensorConfig { * SCD30 CO2 Sensor configuration */ SCD30_config scd30_config = 3; + + /* + * SFA30 HCHO Sensor configuration + */ + SFA30_config sfa30_config = 4; } message SCD4X_config { @@ -698,6 +703,16 @@ message SCD4X_config { * Power mode for sensor (true for low power, false for normal) */ optional bool set_power_mode = 7; + + /* + * Toggle for enabling CO2 readings + */ + optional bool enable_co2 = 8; + + /* + * Toggle for enabling T/RH readings + */ + optional bool enable_trh = 9; } message SEN5X_config { @@ -710,6 +725,26 @@ message SEN5X_config { * One-shot mode (true for low power - one-shot mode, false for normal - continuous mode) */ optional bool set_one_shot_mode = 2; + + /* + * Toggle for enabling PM readings + */ + optional bool enable_pm = 3; + + /* + * Toggle for enabling PN readings + */ + optional bool enable_pn = 4; + + /* + * Toggle for enabling T/RH readings + */ + optional bool enable_trh = 5; + + /* + * Toggle for enabling IDx readings + */ + optional bool enable_idx = 6; } message SCD30_config { @@ -742,4 +777,26 @@ message SCD30_config { * Perform a factory reset of the sensor */ optional bool soft_reset = 6; + + /* + * Toggle for enabling CO2 readings + */ + optional bool enable_co2 = 7; + + /* + * Toggle for enabling T/RH readings + */ + optional bool enable_trh = 8; } + +message SFA30_config { + /* + * Toggle for enabling HCHO readings + */ + optional bool enable_hcho = 1; + + /* + * Toggle for enabling T/RH readings + */ + optional bool enable_trh = 2; +} \ No newline at end of file From 3395ed0c35471a7ed65b2d09f35397fd7ad0721e Mon Sep 17 00:00:00 2001 From: oscgonfer Date: Sat, 21 Feb 2026 21:30:29 +0100 Subject: [PATCH 2/6] Make disables part of admin options --- meshtastic/admin.proto | 46 +++++-------------------- meshtastic/telemetry.proto | 70 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 37 deletions(-) diff --git a/meshtastic/admin.proto b/meshtastic/admin.proto index c24ae24..63a62d6 100644 --- a/meshtastic/admin.proto +++ b/meshtastic/admin.proto @@ -9,6 +9,7 @@ import "meshtastic/connection_status.proto"; import "meshtastic/device_ui.proto"; import "meshtastic/mesh.proto"; import "meshtastic/module_config.proto"; +import "meshtastic/telemetry.proto"; option csharp_namespace = "Meshtastic.Protobufs"; option go_package = "github.com/meshtastic/go/generated"; @@ -705,14 +706,9 @@ message SCD4X_config { optional bool set_power_mode = 7; /* - * Toggle for enabling CO2 readings + * Disables for SCD4X */ - optional bool enable_co2 = 8; - - /* - * Toggle for enabling T/RH readings - */ - optional bool enable_trh = 9; + optional SCD4XDisables scd4xdisables = 8; } message SEN5X_config { @@ -727,24 +723,10 @@ message SEN5X_config { optional bool set_one_shot_mode = 2; /* - * Toggle for enabling PM readings + * Disables for SEN5X */ - optional bool enable_pm = 3; + optional SEN5XDisables sen5xdisables = 3; - /* - * Toggle for enabling PN readings - */ - optional bool enable_pn = 4; - - /* - * Toggle for enabling T/RH readings - */ - optional bool enable_trh = 5; - - /* - * Toggle for enabling IDx readings - */ - optional bool enable_idx = 6; } message SCD30_config { @@ -779,24 +761,14 @@ message SCD30_config { optional bool soft_reset = 6; /* - * Toggle for enabling CO2 readings + * Disables for SCD30 */ - optional bool enable_co2 = 7; - - /* - * Toggle for enabling T/RH readings - */ - optional bool enable_trh = 8; + optional SCD30Disables scd30disables= 7; } message SFA30_config { /* - * Toggle for enabling HCHO readings + * Disables for SFA30 */ - optional bool enable_hcho = 1; - - /* - * Toggle for enabling T/RH readings - */ - optional bool enable_trh = 2; + optional SFA30Disables sfa30disables = 1; } \ No newline at end of file diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 8889718..86ce0fa 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -917,3 +917,73 @@ message SEN5XState { */ optional fixed64 voc_state_array = 6; } + +/* + * SEN5X disables, for saving to flash + */ +message SEN5XDisables { + /* + * Toggle for enabling PM readings + */ + optional bool disable_pm = 1; + + /* + * Toggle for enabling PN readings + */ + optional bool disable_pn = 2; + + /* + * Toggle for enabling T/RH readings + */ + optional bool disable_trh = 3; + + /* + * Toggle for enabling IDx readings + */ + optional bool disable_idx = 4; +} + +/* + * SCD30 disables, for saving to flash + */ +message SCD30Disables { + /* + * Toggle for enabling CO2 readings + */ + optional bool disable_co2 = 1; + + /* + * Toggle for enabling T/RH readings + */ + optional bool disable_trh = 2; +} + +/* + * SCD4X disables, for saving to flash + */ +message SCD4XDisables { + /* + * Toggle for enabling CO2 readings + */ + optional bool disable_co2 = 1; + + /* + * Toggle for enabling T/RH readings + */ + optional bool disable_trh = 2; +} + +/* + * SFA30 disables, for saving to flash + */ +message SFA30Disables { + /* + * Toggle for enabling HCHO readings + */ + optional bool disable_hcho = 1; + + /* + * Toggle for enabling T/RH readings + */ + optional bool disable_trh = 2; +} \ No newline at end of file From 46d2bbc1f1784436b49b630f5f10e96880230500 Mon Sep 17 00:00:00 2001 From: oscgonfer Date: Sun, 22 Feb 2026 19:13:34 +0100 Subject: [PATCH 3/6] Add more sensors and module config option to store --- meshtastic/admin.proto | 13 +++++++++ meshtastic/module_config.proto | 7 +++++ meshtastic/telemetry.proto | 50 ++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+) diff --git a/meshtastic/admin.proto b/meshtastic/admin.proto index 63a62d6..efaf0f0 100644 --- a/meshtastic/admin.proto +++ b/meshtastic/admin.proto @@ -667,6 +667,11 @@ message SensorConfig { * SFA30 HCHO Sensor configuration */ SFA30_config sfa30_config = 4; + + /* + * PMSA003I HCHO Sensor configuration + */ + PMSA003I_config pmsa003i_config = 5; } message SCD4X_config { @@ -771,4 +776,12 @@ message SFA30_config { * Disables for SFA30 */ optional SFA30Disables sfa30disables = 1; +} + +message PMSA003I_config { + /* + * Disables for PMSA003I + */ + optional PMSA003IDisables pmsa003idisables = 3; + } \ No newline at end of file diff --git a/meshtastic/module_config.proto b/meshtastic/module_config.proto index a8a4307..3f0131a 100644 --- a/meshtastic/module_config.proto +++ b/meshtastic/module_config.proto @@ -2,6 +2,8 @@ syntax = "proto3"; package meshtastic; +import "meshtastic/telemetry.proto"; + option csharp_namespace = "Meshtastic.Protobufs"; option go_package = "github.com/meshtastic/go/generated"; option java_outer_classname = "ModuleConfigProtos"; @@ -705,6 +707,11 @@ message ModuleConfig { * Enable/Disable the air quality telemetry measurement module on-device display */ bool air_quality_screen_enabled = 15; + + /* + * Enable/Disable sensors to save airtime + */ + SensorDisables sensordisables = 16; } /* diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 86ce0fa..39a2028 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -918,6 +918,56 @@ message SEN5XState { optional fixed64 voc_state_array = 6; } +/* + * Sensor disables + */ +message SensorDisables { + /* + * PMSA003I disables + */ + optional PMSA003IDisables pmsa003i = 1; + + /* + * SEN5X disables + */ + optional SEN5XDisables sen5x = 2; + + /* + * SCD30 disables + */ + optional SCD30Disables scd30 = 3; + + /* + * SCD4X disables + */ + optional SCD4XDisables scd4x = 4; + + /* + * SFA30 disables + */ + optional SFA30Disables sfa30 = 5; +} + +/* + * PMSA003I disables, for saving to flash + */ +message PMSA003IDisables { + /* + * Toggle for enabling PM readings + */ + optional bool disable_pm = 1; + + /* + * Toggle for enabling PM environmental readings + */ + optional bool disable_pm_env = 2; + + /* + * Toggle for enabling PN readings + */ + optional bool disable_pn = 3; +} + /* * SEN5X disables, for saving to flash */ From 61d18a440d2f933bb19d17554a619760943ed217 Mon Sep 17 00:00:00 2001 From: oscgonfer Date: Sun, 22 Feb 2026 19:31:28 +0100 Subject: [PATCH 4/6] Fix newline at end of line --- meshtastic/admin.proto | 3 +-- meshtastic/telemetry.proto | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/meshtastic/admin.proto b/meshtastic/admin.proto index efaf0f0..51d41bb 100644 --- a/meshtastic/admin.proto +++ b/meshtastic/admin.proto @@ -783,5 +783,4 @@ message PMSA003I_config { * Disables for PMSA003I */ optional PMSA003IDisables pmsa003idisables = 3; - -} \ No newline at end of file +} diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 39a2028..6ead332 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -1036,4 +1036,4 @@ message SFA30Disables { * Toggle for enabling T/RH readings */ optional bool disable_trh = 2; -} \ No newline at end of file +} From 04991d8faf13ab886a2dd119b45c0ee4d3b00dd4 Mon Sep 17 00:00:00 2001 From: oscgonfer Date: Sun, 22 Feb 2026 19:35:48 +0100 Subject: [PATCH 5/6] Format issues --- meshtastic/admin.proto | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/meshtastic/admin.proto b/meshtastic/admin.proto index 51d41bb..ce64857 100644 --- a/meshtastic/admin.proto +++ b/meshtastic/admin.proto @@ -731,7 +731,6 @@ message SEN5X_config { * Disables for SEN5X */ optional SEN5XDisables sen5xdisables = 3; - } message SCD30_config { @@ -768,7 +767,7 @@ message SCD30_config { /* * Disables for SCD30 */ - optional SCD30Disables scd30disables= 7; + optional SCD30Disables scd30disables = 7; } message SFA30_config { From 97e3120fd4e41175167f364a068cc1f4f9fe8f72 Mon Sep 17 00:00:00 2001 From: oscgonfer Date: Fri, 6 Mar 2026 22:19:00 +0100 Subject: [PATCH 6/6] Fix format --- meshtastic/module_config.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meshtastic/module_config.proto b/meshtastic/module_config.proto index 512ae9d..47d00f6 100644 --- a/meshtastic/module_config.proto +++ b/meshtastic/module_config.proto @@ -2,8 +2,8 @@ syntax = "proto3"; package meshtastic; -import "meshtastic/telemetry.proto"; import "meshtastic/atak.proto"; +import "meshtastic/telemetry.proto"; option csharp_namespace = "Meshtastic.Protobufs"; option go_package = "github.com/meshtastic/go/generated";