diff --git a/meshtastic/admin.proto b/meshtastic/admin.proto index 4b6eff8..d622e0e 100644 --- a/meshtastic/admin.proto +++ b/meshtastic/admin.proto @@ -506,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; } } @@ -635,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/telemetry.proto b/meshtastic/telemetry.proto index 4db51b7..8b70ade 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -816,3 +816,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; +}