diff --git a/meshtastic/admin.proto b/meshtastic/admin.proto index 176d973..d622e0e 100644 --- a/meshtastic/admin.proto +++ b/meshtastic/admin.proto @@ -152,6 +152,11 @@ message AdminMessage { * TODO: REPLACE */ PAXCOUNTER_CONFIG = 12; + + /* + * TODO: REPLACE + */ + STATUSMESSAGE_CONFIG = 13; } enum BackupLocation { @@ -501,6 +506,11 @@ message AdminMessage { * Tell the node to reset into the OTA Loader */ OTAEvent ota_request = 102; + + /* + * Parameters and sensor configuration + */ + SensorConfig sensor_config = 103; } } @@ -630,3 +640,64 @@ message KeyVerificationAdmin { */ optional uint32 security_number = 4; } + +message SensorConfig { + /* + * SCD4X CO2 Sensor configuration + */ + SCD4X_config scd4x_config = 1; + + /* + * SEN5X PM Sensor configuration + */ + SEN5X_config sen5x_config = 2; +} + +message SCD4X_config { + /* + * Set Automatic self-calibration enabled + */ + optional bool set_asc = 1; + + /* + * Recalibration target CO2 concentration in ppm (FRC or ASC) + */ + optional uint32 set_target_co2_conc = 2; + + /* + * Reference temperature in degC + */ + optional float set_temperature = 3; + + /* + * Altitude of sensor in meters above sea level. 0 - 3000m (overrides ambient pressure) + */ + optional uint32 set_altitude = 4; + + /* + * Sensor ambient pressure in Pa. 70000 - 120000 Pa (overrides altitude) + */ + optional uint32 set_ambient_pressure = 5; + + /* + * Perform a factory reset of the sensor + */ + optional bool factory_reset = 6; + + /* + * Power mode for sensor (true for low power, false for normal) + */ + optional bool set_power_mode = 7; +} + +message SEN5X_config { + /* + * Reference temperature in degC + */ + optional float set_temperature = 1; + + /* + * One-shot mode (true for low power - one-shot mode, false for normal - continuous mode) + */ + optional bool set_one_shot_mode = 2; +} diff --git a/meshtastic/localonly.proto b/meshtastic/localonly.proto index 50e7305..6da79a3 100644 --- a/meshtastic/localonly.proto +++ b/meshtastic/localonly.proto @@ -131,6 +131,11 @@ message LocalModuleConfig { */ ModuleConfig.PaxcounterConfig paxcounter = 14; + /* + * StatusMessage Config + */ + ModuleConfig.StatusMessageConfig statusmessage = 15; + /* * A version integer used to invalidate old save files when we make * incompatible changes This integer is set at build time and is private to diff --git a/meshtastic/mesh.options b/meshtastic/mesh.options index 77479ce..1bae5eb 100644 --- a/meshtastic/mesh.options +++ b/meshtastic/mesh.options @@ -74,6 +74,7 @@ *StoreForwardPlusPlus.root_hash max_size:32 *StoreForwardPlusPlus.message max_size:240 +*StatusMessage.status max_size:80 # MyMessage.name max_size:40 # or fixed_length or fixed_count, or max_count @@ -94,4 +95,4 @@ *ChunkedPayload.chunk_count int_size:16 *ChunkedPayload.chunk_index int_size:16 -*ChunkedPayload.payload_chunk max_size:228 \ No newline at end of file +*ChunkedPayload.payload_chunk max_size:228 diff --git a/meshtastic/mesh.proto b/meshtastic/mesh.proto index ecb8803..aace7d4 100644 --- a/meshtastic/mesh.proto +++ b/meshtastic/mesh.proto @@ -846,7 +846,7 @@ enum HardwareModel { MESHSTICK_1262 = 121; /* - * LilyGo T-Beam 1W + * LilyGo T-Beam 1W */ TBEAM_1_WATT = 122; @@ -1311,6 +1311,13 @@ message Waypoint { fixed32 icon = 8; } +/* + * Message for node status + */ +message StatusMessage { + string status = 1; +} + /* * This message will be proxied over the PhoneAPI for the client to deliver to the MQTT server */ diff --git a/meshtastic/module_config.options b/meshtastic/module_config.options index bf2a5f4..c6158be 100644 --- a/meshtastic/module_config.options +++ b/meshtastic/module_config.options @@ -27,3 +27,5 @@ *DetectionSensorConfig.monitor_pin int_size:8 *DetectionSensorConfig.name max_size:20 *DetectionSensorConfig.detection_trigger_type max_size:8 + +*StatusMessageConfig.node_status max_size:80 diff --git a/meshtastic/module_config.proto b/meshtastic/module_config.proto index 7825937..ac13a56 100644 --- a/meshtastic/module_config.proto +++ b/meshtastic/module_config.proto @@ -769,6 +769,16 @@ message ModuleConfig { uint32 blue = 5; } + /* + * StatusMessage config - Allows setting a status message for a node to periodically rebroadcast + */ + message StatusMessageConfig { + /* + * The actual status string + */ + string node_status = 1; + } + /* * TODO: REPLACE */ @@ -837,6 +847,11 @@ message ModuleConfig { * TODO: REPLACE */ PaxcounterConfig paxcounter = 13; + + /* + * TODO: REPLACE + */ + StatusMessageConfig statusmessage = 14; } } diff --git a/meshtastic/portnums.proto b/meshtastic/portnums.proto index 221f113..918b063 100644 --- a/meshtastic/portnums.proto +++ b/meshtastic/portnums.proto @@ -142,6 +142,14 @@ enum PortNum { */ STORE_FORWARD_PLUSPLUS_APP = 35; + /* + * Node Status module + * ENCODING: protobuf + * This module allows setting an extra string of status for a node. + * Broadcasts on change and on a timer, possibly once a day. + */ + NODE_STATUS_APP = 36; + /* * Provides a hardware serial interface to send and receive from the Meshtastic network. * Connect to the RX/TX pins of a device with 38400 8N1. Packets received from the Meshtastic diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index 12ad55f..21ea1a0 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -439,10 +439,15 @@ message LocalStats { */ uint32 heap_free_bytes = 13; - /* - * Number of packets that were dropped because the transmit queue was full. - */ + /* + * Number of packets that were dropped because the transmit queue was full. + */ uint32 num_tx_dropped = 14; + + /* + * Noise floor value measured in dBm + */ + int32 noise_floor = 15; } /* @@ -816,3 +821,38 @@ message Nau7802Config { */ float calibrationFactor = 2; } + +/* + * SEN5X State, for saving to flash + */ +message SEN5XState { + /* + * Last cleaning time for SEN5X + */ + uint32 last_cleaning_time = 1; + + /* + * Last cleaning time for SEN5X - valid flag + */ + bool last_cleaning_valid = 2; + + /* + * Config flag for one-shot mode (see admin.proto) + */ + bool one_shot_mode = 3; + + /* + * Last VOC state time for SEN55 + */ + optional uint32 voc_state_time = 4; + + /* + * Last VOC state validity flag for SEN55 + */ + optional bool voc_state_valid = 5; + + /* + * VOC state array (8x uint8t) for SEN55 + */ + optional fixed64 voc_state_array = 6; +}