kopia lustrzana https://github.com/meshtastic/protobufs
				
				
				
			
		
			
				
	
	
		
			482 wiersze
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
			
		
		
	
	
			482 wiersze
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
| syntax = "proto3";
 | |
| 
 | |
| package meshtastic;
 | |
| 
 | |
| option csharp_namespace = "Meshtastic.Protobufs";
 | |
| option go_package = "github.com/meshtastic/go/generated";
 | |
| option java_outer_classname = "TelemetryProtos";
 | |
| option java_package = "com.geeksville.mesh";
 | |
| option swift_prefix = "";
 | |
| 
 | |
| /*
 | |
|  * Key native device metrics such as battery level
 | |
|  */
 | |
| message DeviceMetrics {
 | |
|   /*
 | |
|    * 0-100 (>100 means powered)
 | |
|    */
 | |
|   optional uint32 battery_level = 1;
 | |
| 
 | |
|   /*
 | |
|    * Voltage measured
 | |
|    */
 | |
|   optional float voltage = 2;
 | |
| 
 | |
|   /*
 | |
|    * Utilization for the current channel, including well formed TX, RX and malformed RX (aka noise).
 | |
|    */
 | |
|   optional float channel_utilization = 3;
 | |
| 
 | |
|   /*
 | |
|    * Percent of airtime for transmission used within the last hour.
 | |
|    */
 | |
|   optional float air_util_tx = 4;
 | |
| 
 | |
|   /*
 | |
|    * How long the device has been running since the last reboot (in seconds)
 | |
|    */
 | |
|   optional uint32 uptime_seconds = 5;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Weather station or other environmental metrics
 | |
|  */
 | |
| message EnvironmentMetrics {
 | |
|   /*
 | |
|    * Temperature measured
 | |
|    */
 | |
|   optional float temperature = 1;
 | |
| 
 | |
|   /*
 | |
|    * Relative humidity percent measured
 | |
|    */
 | |
|   optional float relative_humidity = 2;
 | |
| 
 | |
|   /*
 | |
|    * Barometric pressure in hPA measured
 | |
|    */
 | |
|   optional float barometric_pressure = 3;
 | |
| 
 | |
|   /*
 | |
|    * Gas resistance in MOhm measured
 | |
|    */
 | |
|   optional float gas_resistance = 4;
 | |
| 
 | |
|   /*
 | |
|    * Voltage measured (To be depreciated in favor of PowerMetrics in Meshtastic 3.x)
 | |
|    */
 | |
|   optional float voltage = 5;
 | |
| 
 | |
|   /*
 | |
|    * Current measured (To be depreciated in favor of PowerMetrics in Meshtastic 3.x)
 | |
|    */
 | |
|   optional float current = 6;
 | |
| 
 | |
|   /* 
 | |
|    * relative scale IAQ value as measured by Bosch BME680 . value 0-500.
 | |
|    * Belongs to Air Quality but is not particle but VOC measurement. Other VOC values can also be put in here.
 | |
|    */
 | |
|   optional uint32 iaq = 7;
 | |
| 
 | |
|   /*
 | |
|    * RCWL9620 Doppler Radar Distance Sensor, used for water level detection. Float value in mm.
 | |
|    */
 | |
|   optional float distance = 8;
 | |
| 
 | |
|   /*
 | |
|    * VEML7700 high accuracy ambient light(Lux) digital 16-bit resolution sensor.
 | |
|    */
 | |
|   optional float lux = 9;
 | |
| 
 | |
|   /*
 | |
|    * VEML7700 high accuracy white light(irradiance) not calibrated digital 16-bit resolution sensor.
 | |
|    */
 | |
|   optional float white_lux = 10;
 | |
| 
 | |
|   /*
 | |
|    * Infrared lux
 | |
|    */
 | |
|   optional float ir_lux = 11;
 | |
| 
 | |
|   /*
 | |
|    * Ultraviolet lux
 | |
|    */
 | |
|   optional float uv_lux = 12;
 | |
| 
 | |
|   /*
 | |
|    * Wind direction in degrees
 | |
|    * 0 degrees = North, 90 = East, etc...
 | |
|    */
 | |
|   optional uint32 wind_direction = 13;
 | |
| 
 | |
|   /*
 | |
|    * Wind speed in m/s
 | |
|    */
 | |
|   optional float wind_speed = 14;
 | |
| 
 | |
|   /*
 | |
|    * Weight in KG
 | |
|    */
 | |
|   optional float weight = 15;
 | |
| 
 | |
|   /*
 | |
|    * Wind gust in m/s
 | |
|    */
 | |
|   optional float wind_gust = 16;
 | |
| 
 | |
|   /*
 | |
|    * Wind lull in m/s
 | |
|    */
 | |
|   optional float wind_lull = 17;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Power Metrics (voltage / current / etc)
 | |
|  */
 | |
| message PowerMetrics {
 | |
|   /*
 | |
|    * Voltage (Ch1)
 | |
|    */
 | |
|   optional float ch1_voltage = 1;
 | |
| 
 | |
|   /*
 | |
|    * Current (Ch1)
 | |
|    */
 | |
|   optional float ch1_current = 2;
 | |
| 
 | |
|   /*
 | |
|    * Voltage (Ch2)
 | |
|    */
 | |
|   optional float ch2_voltage = 3;
 | |
| 
 | |
|   /*
 | |
|    * Current (Ch2)
 | |
|    */
 | |
|   optional float ch2_current = 4;
 | |
| 
 | |
|   /*
 | |
|    * Voltage (Ch3)
 | |
|    */
 | |
|   optional float ch3_voltage = 5;
 | |
| 
 | |
|   /*
 | |
|    * Current (Ch3)
 | |
|    */
 | |
|   optional float ch3_current = 6;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Air quality metrics
 | |
|  */
 | |
| message AirQualityMetrics {
 | |
|   /*
 | |
|    * Concentration Units Standard PM1.0
 | |
|    */
 | |
|   optional uint32 pm10_standard = 1;
 | |
| 
 | |
|   /*
 | |
|    * Concentration Units Standard PM2.5
 | |
|    */
 | |
|   optional uint32 pm25_standard = 2;
 | |
| 
 | |
|   /*
 | |
|    * Concentration Units Standard PM10.0
 | |
|    */
 | |
|   optional uint32 pm100_standard = 3;
 | |
| 
 | |
|   /*
 | |
|    * Concentration Units Environmental PM1.0
 | |
|    */
 | |
|   optional uint32 pm10_environmental = 4;
 | |
| 
 | |
|   /*
 | |
|    * Concentration Units Environmental PM2.5
 | |
|    */
 | |
|   optional uint32 pm25_environmental = 5;
 | |
| 
 | |
|   /*
 | |
|    * Concentration Units Environmental PM10.0
 | |
|    */
 | |
|   optional uint32 pm100_environmental = 6;
 | |
| 
 | |
|   /*
 | |
|    * 0.3um Particle Count
 | |
|    */
 | |
|   optional uint32 particles_03um = 7;
 | |
| 
 | |
|   /*
 | |
|    * 0.5um Particle Count
 | |
|    */
 | |
|   optional uint32 particles_05um = 8;
 | |
| 
 | |
|   /*
 | |
|    * 1.0um Particle Count
 | |
|    */
 | |
|   optional uint32 particles_10um = 9;
 | |
| 
 | |
|   /*
 | |
|    * 2.5um Particle Count
 | |
|    */
 | |
|   optional uint32 particles_25um = 10;
 | |
| 
 | |
|   /*
 | |
|    * 5.0um Particle Count
 | |
|    */
 | |
|   optional uint32 particles_50um = 11;
 | |
| 
 | |
|   /*
 | |
|    * 10.0um Particle Count
 | |
|    */
 | |
|   optional uint32 particles_100um = 12;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Local device mesh statistics
 | |
|  */
 | |
| message LocalStats {
 | |
|   /*
 | |
|    * How long the device has been running since the last reboot (in seconds)
 | |
|    */
 | |
|   uint32 uptime_seconds = 1;
 | |
|   /*
 | |
|    * Utilization for the current channel, including well formed TX, RX and malformed RX (aka noise).
 | |
|    */
 | |
|   float channel_utilization = 2;
 | |
|   /*
 | |
|    * Percent of airtime for transmission used within the last hour.
 | |
|    */
 | |
|   float air_util_tx = 3;
 | |
| 
 | |
|   /*
 | |
|    * Number of packets sent
 | |
|    */
 | |
|   uint32 num_packets_tx = 4;
 | |
|   
 | |
|   /*
 | |
|    * Number of packets received good
 | |
|    */
 | |
|   uint32 num_packets_rx = 5;
 | |
| 
 | |
|   /*
 | |
|    * Number of packets received that are malformed or violate the protocol
 | |
|    */
 | |
|   uint32 num_packets_rx_bad = 6;
 | |
| 
 | |
|   /*
 | |
|    * Number of nodes online (in the past 2 hours)
 | |
|    */
 | |
|   uint32 num_online_nodes = 7;
 | |
| 
 | |
|   /*
 | |
|    * Number of nodes total
 | |
|    */
 | |
|   uint32 num_total_nodes = 8;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Types of Measurements the telemetry module is equipped to handle
 | |
|  */
 | |
| message Telemetry {
 | |
|   /*
 | |
|    * Seconds since 1970 - or 0 for unknown/unset
 | |
|    */
 | |
|   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;
 | |
| 
 | |
|     /*
 | |
|      * Air quality metrics
 | |
|      */
 | |
|     AirQualityMetrics air_quality_metrics = 4;
 | |
| 
 | |
|     /*
 | |
|      * Power Metrics
 | |
|      */
 | |
|     PowerMetrics power_metrics = 5;
 | |
| 
 | |
|     /*
 | |
|      * Local device mesh statistics
 | |
|      */
 | |
|     LocalStats local_stats = 6;
 | |
|   }
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Supported I2C Sensors for telemetry in Meshtastic
 | |
|  */
 | |
| 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;
 | |
| 
 | |
|   /*
 | |
|    * PM2.5 air quality sensor
 | |
|    */
 | |
|   PMSA003I = 13;
 | |
| 
 | |
|   /*
 | |
|    * INA3221 3 Channel Voltage / Current Sensor
 | |
|    */
 | |
|   INA3221 = 14;
 | |
| 
 | |
|   /*
 | |
|    * BMP085/BMP180 High accuracy temperature and pressure (older Version of BMP280)
 | |
|    */
 | |
|   BMP085 = 15;
 | |
| 
 | |
|   /*
 | |
|    * RCWL-9620 Doppler Radar Distance Sensor, used for water level detection
 | |
|    */
 | |
|   RCWL9620 = 16;
 | |
| 
 | |
|   /*
 | |
|    * Sensirion High accuracy temperature and humidity
 | |
|    */
 | |
|   SHT4X = 17;
 | |
| 
 | |
|   /*
 | |
|    * VEML7700 high accuracy ambient light(Lux) digital 16-bit resolution sensor.
 | |
|    */
 | |
|   VEML7700 = 18;
 | |
| 
 | |
|   /*
 | |
|    * MLX90632 non-contact IR temperature sensor.
 | |
|    */
 | |
|   MLX90632 = 19;
 | |
| 
 | |
|   /*
 | |
|    * TI OPT3001 Ambient Light Sensor
 | |
|    */
 | |
|   OPT3001 = 20;
 | |
| 
 | |
|   /*
 | |
|    * Lite On LTR-390UV-01 UV Light Sensor
 | |
|    */
 | |
|   LTR390UV = 21;
 | |
| 
 | |
|   /*
 | |
|    * AMS TSL25911FN RGB Light Sensor
 | |
|    */
 | |
|   TSL25911FN = 22;
 | |
|   
 | |
|   /*
 | |
|    * AHT10 Integrated temperature and humidity sensor
 | |
|    */
 | |
|   AHT10 = 23;
 | |
| 
 | |
|   /*
 | |
|    * DFRobot Lark Weather station (temperature, humidity, pressure, wind speed and direction) 
 | |
|    */
 | |
|   DFROBOT_LARK = 24;
 | |
|   
 | |
|   /*
 | |
|    * NAU7802 Scale Chip or compatible
 | |
|    */
 | |
|   NAU7802 = 25;
 | |
| 
 | |
|   /*
 | |
|    * BMP3XX High accuracy temperature and pressure
 | |
|    */
 | |
|   BMP3XX = 26;
 | |
| 
 | |
|   /*
 | |
|    * ICM-20948 9-Axis digital motion processor
 | |
|    */
 | |
|   ICM20948 = 27;
 | |
| 
 | |
|   /*
 | |
|    * MAX17048 1S lipo battery sensor (voltage, state of charge, time to go)
 | |
|    */
 | |
|   MAX17048 = 28;
 | |
| 
 | |
|   /*
 | |
|    * Custom I2C sensor implementation based on https://github.com/meshtastic/i2c-sensor
 | |
|    */
 | |
|   CUSTOM_SENSOR = 29;
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * NAU7802 Telemetry configuration, for saving to flash
 | |
|  */
 | |
| message Nau7802Config {
 | |
|   /*
 | |
|    * The offset setting for the NAU7802
 | |
|    */
 | |
|   int32 zeroOffset = 1;
 | |
| 
 | |
|   /*
 | |
|    * The calibration factor for the NAU7802
 | |
|    */
 | |
|   float calibrationFactor = 2;
 | |
| }
 |