syntax = "proto3"; option java_package = "com.geeksville.mesh"; option optimize_for = LITE_RUNTIME; option go_package = "github.com/meshtastic/go/generated"; option java_outer_classname = "TelemetryProtos"; option csharp_namespace = "Meshtastic.Protobufs"; /* * Key native device metrics such as battery level */ message DeviceMetrics { /* * 1-100 (0 means powered) */ uint32 battery_level = 1; /* * Voltage measured */ float voltage = 2; /* * Utilization for the current channel, including well formed TX, RX and malformed RX (aka noise). */ float channel_utilization = 3; /* * Percent of airtime for transmission used within the last hour. */ float air_util_tx = 4; } /* * Weather station or other environmental metrics */ message EnvironmentMetrics { /* * Temperature measured */ float temperature = 1; /* * Relative humidity percent measured */ float relative_humidity = 2; /* * Barometric pressure in hPA measured */ float barometric_pressure = 3; /* * Gas resistance in mOhm measured */ float gas_resistance = 4; /* * Voltage measured */ float voltage = 5; /* * Current measured */ float current = 6; } /* * Types of Measurements the telemetry module is equipped to handle */ message Telemetry { /* * This is usually not sent over the mesh (to save space), but it is sent * from the phone so that the local device can set its RTC If it is sent over * the mesh (because there are devices on the mesh without GPS), it will only * be sent by devices which has a hardware GPS clock (IE Mobile Phone). * seconds since 1970 */ fixed32 time = 1; oneof variant { /* * Key native device metrics such as battery level */ DeviceMetrics device_metrics = 2; /* * Weather station or other environmental metrics */ EnvironmentMetrics environment_metrics = 3; } } /* * TODO: REPLACE */ enum TelemetrySensorType { /* * No external telemetry sensor explicitly set */ SENSOR_UNSET = 0; /* * High accuracy temperature, pressure, humidity */ BME280 = 1; /* * High accuracy temperature, pressure, humidity, and air resistance */ BME680 = 2; /* * Very high accuracy temperature */ MCP9808 = 3; /* * Moderate accuracy current and voltage */ INA260 = 4; /* * Moderate accuracy current and voltage */ INA219 = 5; /* * High accuracy temperature and pressure */ BMP280 = 6; /* * High accuracy temperature and humidity */ SHTC3 = 7; /* * High accuracy pressure */ LPS22 = 8; /* * 3-Axis magnetic sensor */ QMC6310 = 9; /* * 6-Axis inertial measurement sensor */ QMI8658 = 10; /* * 3-Axis magnetic sensor */ QMC5883L = 11; /* * High accuracy temperature and humidity */ SHT31 = 12; };