PageSourceSearch

https://meshtastic-bice.vercel.app/assets/js/e1599ac2.821c2bb1.js

js meshtastic-bice.vercel.app collected 2026-10-03 07:19:17 UTC 36,960 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkmeshtastic=self.webpackChunkmeshtastic||[]).push([["14199"],{50221(e,t,n){n.r(t),n.d(t,{metadata:()=>r,default:()=>g,frontMatter:()=>x,contentTitle:()=>m,toc:()=>u,assets:()=>j});var r=JSON.parse('{"id":"configuration/module/telemetry","title":"Telemetry Module Configuration","description":"This module allows sharing of Device, Environment, Health, and Air Quality metrics from your Meshtastic device.","source":"@site/docs/configuration/module/telemetry.mdx","sourceDirName":"configuration/module","slug":"/configuration/module/telemetry","permalink":"/docs/configuration/module/telemetry","draft":false,"unlisted":false,"editUrl":"https://github.com/meshtastic/meshtastic/edit/master/docs/configuration/module/telemetry.mdx","tags":[],"version":"current","lastUpdatedBy":"rcarteraz","frontMatter":{"id":"telemetry","title":"Telemetry Module Configuration","sidebar_label":"Telemetry","description":"This module allows sharing of Device, Environment, Health, and Air Quality metrics from your Meshtastic device."},"sidebar":"Sidebar","previous":{"title":"Store & Forward","permalink":"/docs/configuration/module/store-and-forward-module"},"next":{"title":"Traceroute","permalink":"/docs/configuration/module/traceroute"}}'),s=n(91987),i=n(67008),l=n(87622),d=n(67686),c=n(42506),a=n(69671),h=n(82374),o=n(43062);let x={id:"telemetry",title:"Telemetry Module Configuration",sidebar_label:"Telemetry",description:"This module allows sharing of Device, Environment, Health, and Air Quality metrics from your Meshtastic device."},m,j={},u=[{value:"Currently Supported Sensor Types",id:"currently-supported-sensor-types",level:3},{value:"AS3935",id:"as3935",level:4},{value:"SEN5X models",id:"sen5x-models",level:4},{value:"SEN6X models",id:"sen6x-models",level:4},{value:"Module Config Values",id:"module-config-values",level:2},{value:"Environment Telemetry Enabled",id:"environment-telemetry-enabled",level:3},{value:"Environment Metrics Update Interval",id:"environment-metrics-update-interval",level:3},{value:"Device Metrics Update Interval",id:"device-metrics-update-interval",level:3},{value:"Environment Screen Enabled",id:"environment-screen-enabled",level:3},{value:"Display Fahrenheit",id:"display-fahrenheit",level:3},{value:"Air Quality Enabled",id:"air-quality-enabled",level:3},{value:"Air Quality Interval",id:"air-quality-interval",level:3},{value:"Power Metrics Enabled",id:"power-metrics-enabled",level:3},{value:"Power Metrics Interval",id:"power-metrics-interval",level:3},{value:"Health Telemetry Enabled",id:"health-telemetry-enabled",level:3},{value:"Health Telemetry Interval",id:"health-telemetry-interval",level:3},{value:"Telemetry Config Client Availability",id:"telemetry-config-client-availability",level:2},{value:"Android",id:"android",level:3},{value:"Apple",id:"apple",level:3},{value:"CLI",id:"cli",level:3},{value:"Settings",id:"settings",level:2},{value:"Web",id:"web",level:3},{value:"Examples",id:"examples",level:2},{value:"RAK 4631 with BME680 Environment Sensor",id:"rak-4631-with-bme680-environment-sensor",level:3},{value:"Supporting Additional Sensors",id:"supporting-additional-sensors",level:2},{value:"Environment Metrics",id:"environment-metrics",level:3},{value:"Supporting Other Sensor types",id:"supporting-other-sensor-types",level:3}];function y(e){let t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"The Telemetry Module provides four types of data over the mesh: Device metrics (Battery Level, Voltage, Channel Utilization and Airtime) from your Meshtastic device, Environment Metrics, Air Quality Metrics, and Health metrics (Heart rate, Oxygen Saturation and body temperature)."}),"\n",(0,s.jsx)(t.admonition,{type:"note",children:(0,s.jsx)(t.p,{children:"Health telemetry sensor support and configuration options are available only by compiling firmware with the required macros enabled."})}),"\n",(0,s.jsxs)(t.p,{children:["Supported sensors connected to the ",(0,s.jsx)(l.A,{term:"I2C",definition:"A two-wire bus used to attach peripherals such as sensors and displays to a device.",routePath:"/docs/terms/",children:"I2C"})," bus of the device will be automatically detected at startup. The Environment Telemetry, Air Quality, and Health Telemetry modules must be enabled for them to be instrumented and their readings sent over the mesh."]}),"\n",(0,s.jsx)("div",{style:{maxWidth:"800px",margin:"auto"},children:(0,s.jsx)(o.A,{src:"https://youtu.be/6jj1s-fsPlc",controls:!0,width:"100%",height:"400px"})}),"\n",(0,s.jsx)(t.h3,{id:"currently-supported-sensor-types",children:"Currently Supp
1orted Sensor Types"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{style:{textAlign:"center"},children:"Sensor"}),(0,s.jsxs)(t.th,{style:{textAlign:"center"},children:["I",(0,s.jsx)("sup",{children:"2"}),"C Address"]}),(0,s.jsx)(t.th,{style:{textAlign:"center"},children:"Data Points"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"AHT10, AHT20"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x38"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Temperature and humidity"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"BMP085"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x76, 0x77"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Temperature and barometric pressure"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"BMP180"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x76, 0x77"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Temperature and barometric pressure"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"BMP280"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x76, 0x77"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Temperature and barometric pressure"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"BME280"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x76, 0x77"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Temperature, barometric pressure and humidity"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"BMP388"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x76, 0x77"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Barometric pressure, Temperature"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"BMP390"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x76, 0x77"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Barometric pressure, Temperature"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"BME68x"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x76, 0x77"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Temperature, barometric pressure, humidity and air resistance"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"DPS310"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x76, 0x77"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Barometric pressure, Temperature"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"MCP9808"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x18"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Temperature"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"INA219"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x40, 0x41, 0x43"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Current and Voltage"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"INA226"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x40, 0x41, 0x43"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Current and Voltage"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"INA260"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x40, 0x41, 0x43"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Current and Voltage"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"INA3221"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x42"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"3-channel Current and Voltage"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"LPS22"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x5D, 0x5C"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Barometric pressure"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"SHTC3"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x70"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Temperature and humidity"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"SHT31"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x44, 0x45"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Temperature and humidity"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"SHT4X"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x44, 0x45"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Temperature and humidity"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"OPT3001"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x44, 0x45"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Light intensity"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"VEML7700"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x10"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Light intensity"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"TSL2591"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x29"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Light intensity"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"LTR390UV"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x53"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"UV Light intensity"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"RCWL9620"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x57"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Ultrasonic Distance Sensor"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"PMSA003I"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x12"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Concentration units by size and particle counts by size"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"DFROBOT_LARK"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x42"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Temperature, barometric pressure, humidity, wind direction, wind speed"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"DFROBOT_RAIN"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x1d"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Tip Bucket Rain counter"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"RadSens"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x66"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Radio Dosimeter"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"MAX30102"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x57"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Heart Rate, Oxygen Saturation, and body temperature"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"MLX90614"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x5A"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Body temperature"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"MLX90632"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x3A"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Body temperature"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"NAU7802"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x2A"}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:["24-Bit differential ",(0,s.jsx)(l.A,{term:"ADC",definition:"A circuit that turns a varying voltage into a digital value. Devices use one to read sensors and to measure battery voltage.",routePath:"/docs/terms/",children:"ADC"})," for Wheatstone bridge"]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"ADS1X15"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x48, 0x49, 0x4A, 0x4B"}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:[(0,s.jsx)(l.A,{term:"ADC",definition:"A circuit that turns a varying voltage into a digital value. Devices use one to read sensors and to measure battery voltage.",routePath:"/docs/terms/",children:"ADC"})," channel voltages (4 channels per device, 8 with two devices)"]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"AS3935"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x01, 0x02, 0x03"}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:["Lightning strike count in the past hour and estimated storm distance in km (see ",(0,s.jsx)(t.a,{href:"#as3935",children:"AS3935"}),")"]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"BH1750"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x23"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Light intensity"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"DS18B20 (via DS2482-800/DS2484)"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x18\u20130x1F"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Temperature (up to 8 1-Wire probes via DS2482-800, 1 via DS2484)"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"HM330X"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x40"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Concentration units by size"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"MAX17048"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x36"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Battery voltage and charge level"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"PCT2075"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x37"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Temperature"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"SCD30"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x61"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"CO2, temperature and humidity"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"SCD4X"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x62"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"CO2, temperature and humidity"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"SEN5X"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x69"}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:["Particulate matter by size; further metrics vary by model (see ",(0,s.jsx)(t.a,{href:"#sen5x-models",children:"SEN5X models"}),")"]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"SEN6X"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x6B"}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:["Particulate matter by size; further metrics vary by model (see ",(0,s.jsx)(t.a,{href:"#sen6x-models",children:"SEN6X models"}),")"]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"SFA30"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x5D"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Formaldehyde, temperature and humidity"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"SPA06 (Mesh-Tracker-X1 only)"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x76, 0x77"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Barometric pressure, Temperature"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"TSL2561"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"0x29"}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"Light intensity"})]})]})]}),"\n",(0,s.jsx)(t.h4,{id:"as3935",children:"AS3935"}),"\n",(0,s.jsxs)(t.p,{children:["Wire the interrupt (IRQ) pin and define ",(0,s.jsx)(t.code,{children:"AS3935_IRQ"})," in the variant to avoid an ",(0,s.jsx)(l.A,{term:"I2C",definition:"A two-wire bus used to attach peripherals such as sensors and displays to a device.",routePath:"/docs/terms/",children:"I\xb2C"})," read every second."]}),"\n",(0,s.jsx)(t.h4,{id:"sen5x-models",children:"SEN5X models"}),"\n",(0,s.jsxs)(t.p,{children:["All SEN5X models report particulate matter by size. The ",(0,s.jsx)(t.strong,{children:"SEN50"})," is the base model, reporting particulate matter only. The ",(0,s.jsx)(t.strong,{children:"SEN54"})," adds temperature, humidity and ",(0,s.jsx)(l.A,{term:"VOC",definition:"A group of gases measured by some air quality sensors, which report them as an index rather than a concentration.",routePath:"/docs/terms/",children:"VOC"})," index. The ",(0,s.jsx)(t.strong,{children:"SEN55"})," adds temperature, humidity, ",(0,s.jsx)(l.A,{term:"VOC",definition:"A group of gases measured by some air quality sensors, which report them as an index rather than a concentration.",routePath:"/docs/terms/",children:"VOC"})," index and ",(0,s.jsx)(l.A,{term:"NOx",definition:"A group of gases measured by some air quality sensors, which report them as an index rather than a concentration.",routePath:"/docs/terms/",children:"NOx"})," index."]}),"\n",(0,s.jsx)(t.h4,{id:"sen6x-models",children:"SEN6X models"}),"\n",(0,s.jsxs)(t.p,{children:["All SEN6X models report particulate matter by size, temperature and humidity. The ",(0,s.jsx)(t.strong,{children:"SEN62"})," is the base model, reporting no further metrics. The ",(0,s.jsx)(t.strong,{children:"SEN63C"})," adds CO2. The ",(0,s.jsx)(t.strong,{children:"SEN65"})," adds ",(0,s.jsx)(l.A,{term:"VOC",definition:"A group of gases measured by some air quality sensors, which report them as an index rather than a concentration.",routePath:"/docs/terms/",children:"VOC"})," and ",(0,s.jsx)(l.A,{term:"NOx",definition:"A group of gases measured by some air quality sensors, which report them as an index rather than a concentration.",routePath:"/docs/terms/",children:"NOx"})," index. The ",(0,s.jsx)(t.strong,{children:"SEN66"})," adds ",(0,s.jsx)(l.A,{term:"VOC",definition:"A group of gases measured by some air quality sensors, which report them as an index rather than a concentration.",routePath:"/docs/terms/",children:"VOC"})," and ",(0,s.jsx)(l.A,{term:"NOx",definition:"A group of gases measured by some air quality sensors, which report them as an index rather than a concentration.",routePath:"/docs/terms/",children:"NOx"})," index and CO2. The ",(0,s.jsx)(t.strong,{children:"SEN68"})," adds ",(0,s.jsx)(l.A,{term:"VOC",definition:"A group of gases measured by some air quality sensors, which report them as an index rather than a concentration.",routePath:"/docs/terms/",children:"VOC"})," and ",(0,s.jsx)(l.A,{term:"NOx",definition:"A group of gases measured by some air quality sensors, which report them as an index rather than a concentration.",routePath:"/docs/terms/",children:"NOx"})," index and formaldehyde. The ",(0,s.jsx)(t.strong,{children:"SEN69C"})," adds ",(0,s.jsx)(l.A,{term:"VOC",definition:"A group of gases measured by some air quality sensors, which report them as an index rather than a concentration.",routePath:"/docs/terms/",children:"VOC"})," and ",(0,s.jsx)(l.A,{term:"NOx",definition:"A group of gases measured by some air quality sensors, which report them as an index rather than a concentration.",routePath:"/docs/terms/",children:"NOx"})," index, CO2 and formaldehyde."]}),"\n",(0,s.jsx)(t.h2,{id:"module-config-values",children:"Module Config Values"}),"\n",(0,s.jsx)(t.h3,{id:"environment-telemetry-enabled",children:"Environment Telemetry Enabled"}),"\n",(0,s.jsx)(t.p,{children:"Enable the Environment Telemetry (Sensors)."}),"\n",(0,s.jsx)(t.h3,{id:"environment-metrics-update-interval",children:"Environment Metrics Update Interval"}),"\n",(0,s.jsx)(t.p,{children:"How often we should send Environment(Sensor) Metrics over the mesh."}),"\n",(0,s.jsxs)(t.p,{children:["Default is ",(0,s.jsx)(t.code,{children:"1800"}
1)," seconds (30 minutes)."]}),"\n",(0,s.jsx)(t.admonition,{type:"note",children:(0,s.jsx)(t.p,{children:"Health telemetry options are available only when compiling firmware with the required macros enabled."})}),"\n",(0,s.jsx)(t.h3,{id:"device-metrics-update-interval",children:"Device Metrics Update Interval"}),"\n",(0,s.jsx)(t.p,{children:"How often we should send Device Metrics over the mesh."}),"\n",(0,s.jsxs)(t.p,{children:["Default is ",(0,s.jsx)(t.code,{children:"1800"})," seconds (30 minutes)."]}),"\n",(0,s.jsx)(t.p,{children:"Device Metrics to a connected client app will always be sent once per minute, regardless of this setting."}),"\n",(0,s.jsx)(t.h3,{id:"environment-screen-enabled",children:"Environment Screen Enabled"}),"\n",(0,s.jsx)(t.p,{children:"Show the environment telemetry data on the device display."}),"\n",(0,s.jsxs)(t.p,{children:["Default is ",(0,s.jsx)(t.code,{children:"false"}),"."]}),"\n",(0,s.jsx)(t.h3,{id:"display-fahrenheit",children:"Display Fahrenheit"}),"\n",(0,s.jsx)(t.p,{children:"The sensor is always read in Celsius, but the user can opt to display in Fahrenheit (on the device display only) using this setting."}),"\n",(0,s.jsxs)(t.p,{children:["Default is ",(0,s.jsx)(t.code,{children:"false"}),"."]}),"\n",(0,s.jsx)(t.h3,{id:"air-quality-enabled",children:"Air Quality Enabled"}),"\n",(0,s.jsx)(t.p,{children:"This option is used to enable/disable the sending of air quality metrics from an attached supported sensor over the mesh network."}),"\n",(0,s.jsxs)(t.p,{children:["Default is ",(0,s.jsx)(t.code,{children:"false"}),"."]}),"\n",(0,s.jsx)(t.h3,{id:"air-quality-interval",children:"Air Quality Interval"}),"\n",(0,s.jsx)(t.p,{children:"This option is used to configure the interval (in seconds) that should be used to send air quality metrics from an attached supported sensor over the mesh network."}),"\n",(0,s.jsxs)(t.p,{children:["Default is ",(0,s.jsx)(t.code,{children:"1800"})," seconds (30 minutes)."]}),"\n",(0,s.jsx)(t.h3,{id:"power-metrics-enabled",children:"Power Metrics Enabled"}),"\n",(0,s.jsx)(t.p,{children:"This option is used to enable/disable the sending of power telemetry as gathered by an attached supported voltage/current sensor. Note that this does not need to be enabled to monitor the voltage of the battery."}),"\n",(0,s.jsxs)(t.p,{children:["Default is ",(0,s.jsx)(t.code,{children:"false"}),"."]}),"\n",(0,s.jsx)(t.h3,{id:"power-metrics-interval",children:"Power Metrics Interval"}),"\n",(0,s.jsx)(t.p,{children:"This option is used to configure the interval (in seconds) that should be used to send power metrics from an attached supported sensor over the mesh network."}),"\n",(0,s.jsx)(t.h3,{id:"health-telemetry-enabled",children:"Health Telemetry Enabled"}),"\n",(0,s.jsx)(t.p,{children:"This option is used to enable/disable the sending of health data from an attached supported sensor over the mesh network."}),"\n",(0,s.jsxs)(t.p,{children:["Default is ",(0,s.jsx)(t.code,{children:"false"}),"."]}),"\n",(0,s.jsx)(t.h3,{id:"health-telemetry-interval",children:"Health Telemetry Interval"}),"\n",(0,s.jsx)(t.p,{children:"This option is used to configure the interval (in seconds) that should be used to send health data from an attached supported sensor over the mesh network."}),"\n",(0,s.jsxs)(t.p,{children:["Default is ",(0,s.jsx)(t.code,{children:"1800"})," seconds (30 minutes)."]}),"\n",(0,s.jsx)(t.h2,{id:"telemetry-config-client-availability",children:"Telemetry Config Client Availability"}),"\n",(0,s.jsxs)(c.A,{groupId:"settings",defaultValue:"apple",values:[{label:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(h.In,{icon:"mdi:android",height:"1.5rem",style:{marginRight:"0.25rem"}})," Android"]}),value:"android"},{label:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(h.In,{icon:"mdi:apple",height:"1.5rem",style:{marginRight:"0.25rem"}})," Apple"]}),value:"apple"},{label:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(h.In,{icon:"mdi:terminal",height:"1.5rem",style:{marginRight:"0.25rem"}})," CLI"]}),value:"cli"},{label:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(h.In,{icon:"mdi:internet",height:"1.5rem",style:{marginRight:"0.25rem"}})," Web"]}),value:"web"}],children:[(0,s.jsxs)(a.A,{value:"android",children:[(0,s.jsx)(t.h3,{id:"android",children:"Android"}),(0,s.jsxs)(t.admonition,{type:"info",children:[(0,s.jsx)(t.p,{children:"Telemetry Config options are available for Android."}),(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Open the Meshtastic App"}),"\n",(0,s.jsxs)(t.li,{children:["Navigate to: ",(0,s.jsx)(t.strong,{children:"Settings > Telemetry"})]}),"\n"]})]})]}),(0,s.jsxs)(a.A,{value:"apple",children:[(0,s.jsx)(t.h3,{id:"apple",children:"Apple"}),(0,s.jsx)(t.admonition,{type:"info",children:(0,s.jsx)(t.p,{children:"All telemetry module config options are available on iOS, iPadOS and macOS at Settings > Module Configuration > Telemetry (Sensors)."})})]}),(0,s.jsxs)(a.A,{value:"cli",children:[(0,s.jsx)(t.h3,{id:"cli",children:"CLI"}),(0,s.jsx)(t.admonition,{type:"info",children:(0,s.jsx)(t.p,{children:"All telemetry module config options are available in the python CLI. Example commands are below:"})}),(0,s.jsx)(t.h2,{id:"settings",children:"Settings"}),(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{style:{textAlign:"center"},children:"Setting"}),(0,s.jsx)(t.th,{style:{textAlign:"center"},children:"Acceptable Values"}),(0,s.jsx)(t.th,{style:{textAlign:"center"},children:"Default"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"telemetry.device_telemetry_enabled"}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:[(0,s.jsx)(t.code,{children:"true"}),", ",(0,s.jsx)(t.code,{children:"false"})]}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:(0,s.jsx)(t.code,{children:"false"})})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"telemetry.device_update_interval"}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:[(0,s.jsx)(t.code,{children:"integer"})," (seconds)"]}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:["Default ",(0,s.jsx)(t.code,{children:"0"})," is 30 minutes(",(0,s.jsx)(t.code,{children:"1800"})," seconds)."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"telemetry.environment_display_fahrenheit"}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:[(0,s.jsx)(t.code,{children:"true"}),", ",(0,s.jsx)(t.code,{children:"false"})]}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:(0,s.jsx)(t.code,{children:"false"})})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"telemetry.environment_measurement_enabled"}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:[(0,s.jsx)(t.code,{children:"true"}),", ",(0,s.jsx)(t.code,{children:"false"})]}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:(0,s.jsx)(t.code,{children:"false"})})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"telemetry.environment_screen_enabled"}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:[(0,s.jsx)(t.code,{children:"true"}),", ",(0,s.jsx)(t.code,{children:"false"})]}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:(0,s.jsx)(t.code,{children:"false"})})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"telemetry.environment_update_interval"}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:[(0,s.jsx)(t.code,{children:"integer"})," (seconds)"]}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:["Default ",(0,s.jsx)(t.code,{children:"0"})," is 30 minutes(",(0,s.jsx)(t.code,{children:"1800"})," seconds)."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"telemetry.air_quality_enabled"}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:[(0,s.jsx)(t.code,{children:"true"}),", ",(0,s.jsx)(t.code,{children:"false"})]}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:(0,s.jsx)(t.code,{children:"false"})})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"telemetry.air_quality_interval"}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:[(0,s.jsx)(t.code,{children:"integer"})," (seconds)"]}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:["Default ",(0,s.jsx)(t.code,{children:"0"})," is 30 minutes(",(0,s.jsx)(t.code,{children:"1800"})," seconds)."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"telemetry.power_measurement_enabled"}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:[(0,s.jsx)(t.code,{children:"true"}),", ",(0,s.jsx)(t.code,{children:"false"})]}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:(0,s.jsx)(t.code,{children:"false"})})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"telemetry.power_update_interval"}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:[(0,s.jsx)(t.code,{children:"integer"})," (seconds)"]}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:["Default ",(0,s.jsx)(t.code,{children:"0"})," is 30 minutes(",(0,s.jsx)(t.code,{children:"1800"})," seconds)."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"telemetry.health_measurement_enabled"}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:[(0,s.jsx)(t.code,{children:"true"}),", ",(0,s.jsx)(t.code,{children:"false"})]}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:(0,s.jsx)(t.code,{children:"false"})})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"telemetry.health_update_interval"}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:[(0,s.jsx)(t.code,{children:"integer"})," (seconds)"]}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:["Default ",(0,s.jsx)(t.code,{children:"0"})," is 30 minutes(",(0,s.jsx)(t.code,{children:"1800"})," seconds)."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"center"},children:"telemetry.health_screen_enabled"}),(0,s.jsxs)(t.td,{style:{textAlign:"center"},children:[(0,s.jsx)(t.code,{children:"true"}),", ",(0,s.jsx)(t.code,{children:"false"})]}),(0,s.jsx)(t.td,{style:{textAlign:"center"},children:(0,s.jsx)(t.code,{children:"false"})})]})]})]}),(0,s.jsxs)(t.admonition,{type:"tip",children:[(0,s.jsx)(t.p,{children:"Because the device will reboot after each command is sent via CLI, it is recommended when setting multiple values in a config section that commands be chained together as one."}),(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-shell",metastring:'title="Example:"',children:"meshtastic --set telemetry.device_update_interval 0 --set telemetry.environment_update_interval 0\n"})})]}),(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-shell",metastring:'title="Set module update intervals (Default of 0 is 5 Minutes)"',children:"meshtastic --set telemetry.device_update_interval 0\n// Device Metrics Two Minutes\nmeshtastic --set telemetry.device_update_interval 0\n// Environment Metrics Two Minutes\nmeshtastic --set telemetry.environment_update_interval 120\n"})}),(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-shell",metastring:'title="Enable/Disable Environment Module"',children:"meshtastic --set telemetry.environment_measurement_enabled true\nmeshtastic --set telemetry.environment_measurement_enabled false\n"})}),(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-shell",metastring:'title="Enable/Disable on device screen"',children:"meshtastic --set telemetry.environment_screen_enabled true\nmeshtastic --set telemetry.environment_screen_enabled false\n"})}),(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-shell",metastring:'title="Enable / Disable Display Fahrenheit"',children:"meshtastic --set telemetry.environment_display_fahrenheit true\nmeshtastic --set telemetry.environment_display_fahrenheit false\n"})})]}),(0,s.jsxs)(a.A,{value:"web",children:[(0,s.jsx)(t.h3,{id:"web",children:"Web"}),(0,s.jsx)(t.admonition,{type:"info",children:(0,s.jsx)(t.p,{children:"All telemetry module config options are available in the Web UI."})})]})]}),"\n",(0,s.jsx)(t.h2,{id:"examples",children:"Examples"}),"\n",(0,s.jsx)(t.h3,{id:"rak-4631-with-bme680-environment-sensor",children:"RAK 4631 with BME680 Environment Sensor"}),"\n",(0,s.jsx)(t.p,{children:"Setup of a RAK 4631 with Environment Sensor"}),"\n",(0,s.jsx)("a",{href:(0,d.Ay)("/img/hardware/rak/RAK4631_with_EnvSensor.webp"),children:(0,s.jsx)("img",{src:(0,d.Ay)("/img/hardware/rak/RAK4631_with_EnvSensor.webp"),alt:"RAK4631 wired to an environment sensor",style:{zoom:"25%"}})}),"\n",(0,s.jsx)(t.p,{children:"Requirements:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"RAK4631"}),"\n",(0,s.jsx)(t.li,{children:"Environment Sensor"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Steps:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"configure the device:"}),"\n"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-shell",children:"meshtastic --set telemetry.environment_measurement_enabled true --set telemetry.environment_screen_enabled true --set telemetry.environment_display_fahrenheit true\n"})}),"\n",(0,s.jsx)(t.admonition,{type:"tip",children:(0,s.jsx)(t.p,{children:"While the above values serve as an example and can be modified to fit your specific needs, it is advisable to chain multiple commands together, as demonstrated in the example. This approach will minimize the number of necessary reboots."})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Device will reboot after command is sent."}),"\n",(0,s.jsx)(t.li,{children:'When the device boots again it should say "Telemetry" and it may show the sensor data'}),"\n",(0,s.jsx)(t.li,{children:"If this does not appear to have any effects, run:"}),"\n"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-shell",children:"meshtastic --noproto\n"})}),"\n",(0,s.jsx)(t.p,{children:"And examine the serial logs for Telemetry diagnostic information."}),"\n",(0,s.jsx)(t.h2,{id:"supporting-additional-sensors",children:"Supporting Additional Sensors"}),"\n",(0,s.jsx)(t.h3,{id:"environment-metrics",children:"Environment Metrics"}),"\n",(0,s.jsx)(t.p,{children:"The environment metrics in the telemetry module supports a limited amount of fields as they are stored in memory on the device. Support for sensors that provide one or more of the following fields can potentially be added to the main firmware provided there is a GPL licensed library for us to include to supp
1ort it, and the library size is not prohibitive."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Temperature"}),"\n",(0,s.jsx)(t.li,{children:"Relative Humidity"}),"\n",(0,s.jsx)(t.li,{children:"Barometric Pressure"}),"\n",(0,s.jsx)(t.li,{children:"Gas Resistance (AQI)"}),"\n",(0,s.jsx)(t.li,{children:"Voltage"}),"\n",(0,s.jsx)(t.li,{children:"Current"}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"supporting-other-sensor-types",children:"Supporting Other Sensor types"}),"\n",(0,s.jsxs)(t.p,{children:["For other interesting sensor types and use cases we need to add a portnum for more generic telemetry packets and a second ",(0,s.jsx)(l.A,{term:"MCU",definition:"The microcontroller that runs the firmware on a device. The hardware tables list the MCU for each supported board.",routePath:"/docs/terms/",children:"MCU"})," will be required to interact with the sensor and process the data to be sent over the mesh. This data will not be stored in the nodedb on the device."]})]})}function g(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(y,{...e})}):y(e)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.