diff --git a/meshtastic/module_config.proto b/meshtastic/module_config.proto index 504826e3..5f5bc1eb 100644 --- a/meshtastic/module_config.proto +++ b/meshtastic/module_config.proto @@ -579,6 +579,18 @@ message ModuleConfig { * air quality metrics to the mesh */ bool power_screen_enabled = 10; + + /* + * Preferences for the (Health) Telemetry Module + * Enable/Disable the telemetry measurement module measurement collection + */ + bool health_measurement_enabled = 3; + + /* + * Interval in seconds of how often we should try to send our + * health metrics to the mesh + */ + uint32 health_update_interval = 2; } /* diff --git a/meshtastic/telemetry.options b/meshtastic/telemetry.options index 073412ac..79b1f12c 100644 --- a/meshtastic/telemetry.options +++ b/meshtastic/telemetry.options @@ -6,3 +6,6 @@ *LocalStats.num_online_nodes int_size:16 *LocalStats.num_total_nodes int_size:16 + +*HealthMetrics.heart_bpm int_size:8 +*HealthMetrics.spO2 int_size:8 diff --git a/meshtastic/telemetry.proto b/meshtastic/telemetry.proto index d4e80a8b..799708e3 100644 --- a/meshtastic/telemetry.proto +++ b/meshtastic/telemetry.proto @@ -273,6 +273,26 @@ message LocalStats { uint32 num_total_nodes = 8; } +/* + * Health telemetry metrics + */ + message HealthMetrics { + /* + * Heart rate (beats per minute) + */ + optional uint32 heart_bpm = 1; + + /* + * SpO2 (blood oxygen saturation) level + */ + optional uint32 spO2 = 2; + + /* + * Body temperature in degrees Celsius + */ + optional float temperature = 3; +} + /* * Types of Measurements the telemetry module is equipped to handle */ @@ -307,6 +327,11 @@ message Telemetry { * Local device mesh statistics */ LocalStats local_stats = 6; + + /* + * Health telemetry metrics + */ + HealthMetrics health_metrics = 7; } } @@ -463,6 +488,11 @@ enum TelemetrySensorType { * Custom I2C sensor implementation based on https://github.com/meshtastic/i2c-sensor */ CUSTOM_SENSOR = 29; + + /* + * MAX30102 Pulse Oximeter and Heart-Rate Sensor + */ + MAX30102 = 30; } /*