Files
Meshtastic-Android/main/ru-rRU/user/node-metrics.html
T

2 lines
49 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html> <html lang="en-US"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=Edge"> <link rel="stylesheet" href="/Meshtastic-Android/main/assets/css/just-the-docs-default.css"> <link rel="stylesheet" href="/Meshtastic-Android/main/assets/css/just-the-docs-head-nav.css" id="jtd-head-nav-stylesheet"> <style id="jtd-nav-activation"> .site-nav ul li a { background-image: none; } </style> <script src="/Meshtastic-Android/main/assets/js/vendor/lunr.min.js"></script> <script src="/Meshtastic-Android/main/assets/js/just-the-docs.js"></script> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- Begin Jekyll SEO tag v2.9.0 --> <title>Метрики ноды | Meshtastic Android</title> <meta name="generator" content="Jekyll v4.4.1" /> <meta property="og:title" content="Метрики ноды" /> <meta property="og:locale" content="ru_rRU" /> <meta name="description" content="Панели телеметрии для каждой ноды mesh-сети — состояние устройства, датчики окружающей среды, качество воздуха, качество сигнала, питание, трассировка и история местоположения." /> <meta name="twitter:description" property="og:description" content="Панели телеметрии для каждой ноды mesh-сети — состояние устройства, датчики окружающей среды, качество воздуха, качество сигнала, питание, трассировка и история местоположения." /> <link rel="canonical" href="/Meshtastic-Android/main/ru-rRU/user/node-metrics.html" /> <meta property="og:url" content="/Meshtastic-Android/main/ru-rRU/user/node-metrics.html" /> <meta property="og:site_name" content="Meshtastic Android" /> <meta property="og:type" content="website" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:title" content="Метрики ноды" /> <script type="application/ld+json"> {"@context":"https://schema.org","@type":"WebPage","description":"Панели телеметрии для каждой ноды mesh-сети — состояние устройства, датчики окружающей среды, качество воздуха, качество сигнала, питание, трассировка и история местоположения.","headline":"Метрики ноды","url":"/Meshtastic-Android/main/ru-rRU/user/node-metrics.html"}</script> <!-- End Jekyll SEO tag --> <!-- Inter font from Google Fonts --> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet"> <style> /* M3-inspired typography */ :root { --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; --font-mono: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', ui-monospace, monospace; } body, .site-title, .search-input { font-family: var(--font-sans) !important; } code, pre, .highlight { font-family: var(--font-mono) !important; font-size: 0.875em; } /* M3 surface elevation & rounding */ .main-content table { border-radius: 12px; overflow: hidden; } .main-content blockquote { border-radius: 12px; padding: 1rem 1.25rem; border-left-width: 4px; } .main-content pre { border-radius: 12px; } .main-content code { border-radius: 6px; padding: 0.15em 0.4em; } /* Smooth transitions for theme switching */ body, .side-bar, .main, .main-content, .site-header, .search-input, .search-results, a { transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease; } /* Theme toggle button styling */ .theme-toggle { background: none; border: 1px solid var(--border-color, #D5D6E0); border-radius: 20px; padding: 6px 12px; cursor: pointer; font-family: var(--font-sans); font-size: 0.75rem; font-weight: 500; display: inline-flex; align-items: center; gap: 6px; color: inherit; margin: 0 auto; transition: background-color 0.2s ease, border-color 0.2s ease; } .theme-toggle:hover { background-color: rgba(128, 128, 128, 0.1); } .theme-toggle-wrap { text-align: center; padding: 12px 0 4px; } /* Heading weight refinement */ h1, h2, h3, h4, h5, h6 { font-weight: 600; letter-spacing: -0.01em; } h1 { font-weight: 700; letter-spacing: -0.02em; } /* Smooth anchor scroll */ html { scroll-behavior: smooth; } /* Language switcher */ .language-switcher { display: inline-block; position: relative; margin-left: 8px; } .language-switcher-btn { cursor: pointer; font-size: 0.8rem; font-weight: 500; font-family: var(--font-sans); list-style: none; padding: 4px 10px; border: 1px solid var(--border-color, #D5D6E0); border-radius: 16px; display: inline-flex; align-items: center; gap: 4px; transition: background-color 0.2s ease; } .language-switcher-btn:hover { background-color: rgba(128, 128, 128, 0.1); } .language-switcher[open] .language-switcher-list { display: block; } .language-switcher-list { position: absolute; top: 100%; right: 0; left: auto; z-index: 100; list-style: none; padding: 8px 0; margin: 4px 0 0; min-width: 140px; background: var(--body-background-color, #fff); border: 1px solid var(--border-color, #D5D6E0); border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); } .language-switcher-list li { padding: 0; } .language-switcher-list a { display: block; padding: 6px 16px; text-decoration: none; font-size: 0.85rem; color: inherit; } .language-switcher-list a:hover { background-color: rgba(103, 234, 148, 0.15); } /* Version switcher (shares the language-switcher dropdown styling) */ .version-switcher { margin-left: 8px; } .version-switcher[hidden] { display: none; } /* Link out to the upstream meshtastic.org docs */ .upstream-docs-link { display: inline-flex; align-items: center; margin-left: 8px; padding: 4px 10px; border: 1px solid var(--border-color, #D5D6E0); border-radius: 16px; font-size: 0.8rem; font-weight: 500; font-family: var(--font-sans); text-decoration: none; color: inherit; transition: background-color 0.2s ease; } .upstream-docs-link:hover { background-color: rgba(128, 128, 128, 0.1); } </style> <script> // Respect OS preference on first visit, then remember user choice (function() { var stored = localStorage.getItem('jtd-theme'); if (stored) return; // will be applied by jtd.setTheme below if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { localStorage.setItem('jtd-theme', 'meshtastic-dark'); } })(); </script> </head> <body> <a class="skip-to-main" href="#main-content">Skip to main content</a> <svg xmlns="http://www.w3.org/2000/svg" class="d-none"> <symbol id="svg-link" viewBox="0 0 24 24"> <title>Link</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link"> <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path> </svg> </symbol> <symbol id="svg-menu" viewBox="0 0 24 24"> <title>Menu</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu"> <line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line> </svg> </symbol> <symbol id="svg-arrow-right" viewBox="0 0 24 24"> <title>Expand</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"> <polyline points="9 18 15 12 9 6"></polyline> </svg> </symbol> <!-- Feather. MIT License: https://github.com/feathericons/feather/blob/master/LICENSE --> <symbol id="svg-external-link" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-external-link"> <title id="svg-external-link-title">(external link)</title> <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line> </symbol> <symbol id="svg-doc" viewBox="0 0 24 24"> <title>Document</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file"> <path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline> </svg> </symbol> <symbol id="svg-search" viewBox="0 0 24 24"> <title>Search</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"> <circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line> </svg> </symbol> <!-- Bootstrap Icons. MIT License: https://github.com/twbs/icons/blob/main/LICENSE.md --> <symbol id="svg-copy" viewBox="0 0 16 16"> <title>Copy</title> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard" viewBox="0 0 16 16"> <path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/> <path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/> </svg> </symbol> <symbol id="svg-copied" viewBox="0 0 16 16"> <title>Copied</title> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard-check-fill" viewBox="0 0 16 16"> <path d="M6.5 0A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3Zm3 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3Z"/> <path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1A2.5 2.5 0 0 1 9.5 5h-3A2.5 2.5 0 0 1 4 2.5v-1Zm6.854 7.354-3 3a.5.5 0 0 1-.708 0l-1.5-1.5a.5.5 0 0 1 .708-.708L7.5 10.793l2.646-2.647a.5.5 0 0 1 .708.708Z"/> </svg> </symbol> </svg> <header class="side-bar"> <div class="site-header"> <a href="/Meshtastic-Android/main/" class="site-title lh-tight"> Meshtastic Android </a> <button id="menu-button" class="site-button btn-reset" aria-label="Menu" aria-expanded="false"> <svg viewBox="0 0 24 24" class="icon" aria-hidden="true"><use xlink:href="#svg-menu"></use></svg> </button> </div> <nav aria-label="Main" id="site-nav" class="site-nav"> <ul class="nav-list"><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/" class="nav-list-link">Home</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/" class="nav-list-link">Home</a></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="User Guide submenu" aria-expanded="false"> <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> </button><a href="/Meshtastic-Android/main/en/user.html" class="nav-list-link">User Guide</a><ul class="nav-list"><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/onboarding.html" class="nav-list-link">Getting Started</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/onboarding.html" class="nav-list-link">Getting Started</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/connections.html" class="nav-list-link">Connexions</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/connections.html" class="nav-list-link">Connections</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/messages-and-channels.html" class="nav-list-link">Messages & Channels</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/messages-and-channels.html" class="nav-list-link">Messages & Channels</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/nodes.html" class="nav-list-link">Nœuds</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/nodes.html" class="nav-list-link">Nodes</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/node-metrics.html" class="nav-list-link">Node Metrics</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/node-metrics.html" class="nav-list-link">Node Metrics</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/map-and-waypoints.html" class="nav-list-link">Map & Waypoints</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/map-and-waypoints.html" class="nav-list-link">Map & Waypoints</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/settings-radio-user.html" class="nav-list-link">Settings — Radio & User</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/settings-radio-user.html" class="nav-list-link">Settings — Radio & User</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/settings-module-admin.html" class="nav-list-link">Settings — Modules & Admin</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/settings-module-admin.html" class="nav-list-link">Settings — Modules & Admin</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/tak.html" class="nav-list-link">TAK Integration</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/tak.html" class="nav-list-link">TAK Integration</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/mqtt.html" class="nav-list-link">MQTT</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/mqtt.html" class="nav-list-link">MQTT</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/discovery.html" class="nav-list-link">Découverte de maille locale</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/discovery.html" class="nav-list-link">Local Mesh Discovery</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/firmware.html" class="nav-list-link">Firmware Updates</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/firmware.html" class="nav-list-link">Firmware Updates</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/desktop.html" class="nav-list-link">Desktop App</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/desktop.html" class="nav-list-link">Desktop App</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/signal-meter.html" class="nav-list-link">How the Meshtastic Signal Meter Works</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/signal-meter.html" class="nav-list-link">How the Meshtastic Signal Meter Works</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/units-and-locale.html" class="nav-list-link">Units, Measurement & Locale</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/units-and-locale.html" class="nav-list-link">Units, Measurement & Locale</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/fr-rCA/user/translate.html" class="nav-list-link">Translate the App</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/translate.html" class="nav-list-link">Translate the App</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/app-functions.html" class="nav-list-link">App Functions</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/widget.html" class="nav-list-link">Home Screen Widget</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/help-and-docs.html" class="nav-list-link">Help & In-App Docs</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/user/debug-logs.html" class="nav-list-link">Debug Logs</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="Developer Guide submenu" aria-expanded="false"> <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> </button><a href="/Meshtastic-Android/main/en/developer.html" class="nav-list-link">Developer Guide</a><ul class="nav-list"><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/architecture.html" class="nav-list-link">Architecture</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/codebase.html" class="nav-list-link">Codebase</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/adding-a-feature-module.html" class="nav-list-link">Adding a Feature Module</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/navigation-and-deep-links.html" class="nav-list-link">Navigation & Deep Links</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/transport.html" class="nav-list-link">Transport</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/persistence.html" class="nav-list-link">Persistence</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/testing.html" class="nav-list-link">Testing</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/contributing.html" class="nav-list-link">Contributing</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/measurement.html" class="nav-list-link">Measurement & Formatting</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/test-builds.html" class="nav-list-link">Test Builds & Obtainium</a></li><li class="nav-list-item"><a href="/Meshtastic-Android/main/en/developer/documentation-style.html" class="nav-list-link">Documentation Style</a></li></ul></li></ul> </nav> <div class="d-md-block d-sm-none"> <div class="site-footer"> This site uses <a href="https://github.com/just-the-docs/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll. </div> </div> </header> <div class="main" id="top"> <div id="main-header" class="main-header"> <div class="search" role="search"> <div class="search-input-wrap"> <input type="text" id="search-input" class="search-input" tabindex="0" placeholder="Search Meshtastic Android" autocomplete="off"> <label for="search-input" class="search-label"> <span class="sr-only">Search Meshtastic Android</span> <svg viewBox="0 0 24 24" class="search-icon" aria-hidden="true"><use xlink:href="#svg-search"></use></svg> </label> </div> <div id="search-results" class="search-results"></div> </div> <div class="theme-toggle-wrap"> <button class="theme-toggle" id="theme-toggle" aria-label="Toggle dark mode" title="Toggle light/dark theme" onclick="toggleMeshtasticTheme()"> <span id="theme-icon">🌙</span> <span id="theme-label">Dark</span> </button> <details class="language-switcher version-switcher" id="version-switcher" aria-label="Documentation version" hidden> <summary class="language-switcher-btn" title="Switch documentation version"> 🏷️ <span id="version-current"></span> </summary> <ul class="language-switcher-list" id="version-switcher-list"></ul> </details> <script> (function() { var baseurl = '/Meshtastic-Android/main'; var root = baseurl; var channel = 'latest'; // /main/, /vX.Y.Z/ or a prerelease snapshot like /v2.8.0-open.1/. var match = baseurl.match(/^(.*)\/(main|v\d+\.\d+\.\d+(?:-(?:open|closed)\.\d+)?)$/); if (match) { root = match[1]; channel = match[2]; } fetch(root + '/versions.json') .then(function(res) { return res.ok ? res.json() : Promise.reject(); }) .then(function(data) { var switcher = document.getElementById('version-switcher'); var list = document.getElementById('version-switcher-list'); var current = document.getElementById('version-current'); if (!switcher || !list || !current) return; // Keep the reader on the same page when switching channels; a page // that doesn't exist in the target version lands on the 404 page. var relativePath = location.pathname.slice(baseurl.length) + location.hash; var entries = []; if (data.latest) { entries.push({ id: 'latest', label: 'latest (v' + data.latest + ')', base: root }); } // Prereleases are documented ahead of general availability, so the track // is always spelled out — a reader must not mistake a closed-testing // snapshot for a shipped release. (data.prereleases || []).forEach(function(p) { entries.push({ id: p.dir, label: p.dir.replace(/^v/, 'v') + ' — ' + p.track + ' testing', base: root + '/' + p.dir }); }); if (data.hasMain) { entries.push({ id: 'main', label: 'main (unreleased snapshot)', base: root + '/main' }); } (data.versions || []).forEach(function(v) { entries.push({ id: 'v' + v, label: 'v' + v, base: root + '/v' + v }); }); var currentEntry = entries.filter(function(e) { return e.id === channel; })[0]; current.textContent = currentEntry ? currentEntry.label : channel; var others = entries.filter(function(e) { return e.id !== channel; }); if (others.length === 0) return; others.forEach(function(e) { var li = document.createElement('li'); var a = document.createElement('a'); a.href = e.base + relativePath; a.textContent = e.label; li.appendChild(a); list.appendChild(li); }); switcher.hidden = false; }) .catch(function() { /* no manifest (local build) — leave switcher hidden */ }); })(); </script> <details class="language-switcher" aria-label="Language options"> <summary class="language-switcher-btn" title="View in another language"> 🌐 <span class="lang-current">Русский</span> </summary> <ul class="language-switcher-list"> <li><a href="/Meshtastic-Android/main/en/user/node-metrics" lang="en">English</a></li> <li><a href="/Meshtastic-Android/main/ar-rSA/user/node-metrics" lang="ar-rSA" dir="rtl">العربية</a></li> <li><a href="/Meshtastic-Android/main/be-rBY/user/node-metrics" lang="be-rBY" >Беларуская</a></li> <li><a href="/Meshtastic-Android/main/bg-rBG/user/node-metrics" lang="bg-rBG" >Български</a></li> <li><a href="/Meshtastic-Android/main/ca-rES/user/node-metrics" lang="ca-rES" >Català</a></li> <li><a href="/Meshtastic-Android/main/cs-rCZ/user/node-metrics" lang="cs-rCZ" >Čeština</a></li> <li><a href="/Meshtastic-Android/main/de-rDE/user/node-metrics" lang="de-rDE" >Deutsch</a></li> <li><a href="/Meshtastic-Android/main/el-rGR/user/node-metrics" lang="el-rGR" >Ελληνικά</a></li> <li><a href="/Meshtastic-Android/main/es-rES/user/node-metrics" lang="es-rES" >Español</a></li> <li><a href="/Meshtastic-Android/main/et-rEE/user/node-metrics" lang="et-rEE" >Eesti</a></li> <li><a href="/Meshtastic-Android/main/fi-rFI/user/node-metrics" lang="fi-rFI" >Suomi</a></li> <li><a href="/Meshtastic-Android/main/fr-rFR/user/node-metrics" lang="fr-rFR" >Français</a></li> <li><a href="/Meshtastic-Android/main/ga-rIE/user/node-metrics" lang="ga-rIE" >Gaeilge</a></li> <li><a href="/Meshtastic-Android/main/gl-rES/user/node-metrics" lang="gl-rES" >Galego</a></li> <li><a href="/Meshtastic-Android/main/iw-rIL/user/node-metrics" lang="iw-rIL" dir="rtl">עברית</a></li> <li><a href="/Meshtastic-Android/main/hr-rHR/user/node-metrics" lang="hr-rHR" >Hrvatski</a></li> <li><a href="/Meshtastic-Android/main/ht-rHT/user/node-metrics" lang="ht-rHT" >Kreyòl Ayisyen</a></li> <li><a href="/Meshtastic-Android/main/hu-rHU/user/node-metrics" lang="hu-rHU" >Magyar</a></li> <li><a href="/Meshtastic-Android/main/is-rIS/user/node-metrics" lang="is-rIS" >Íslenska</a></li> <li><a href="/Meshtastic-Android/main/it-rIT/user/node-metrics" lang="it-rIT" >Italiano</a></li> <li><a href="/Meshtastic-Android/main/ja-rJP/user/node-metrics" lang="ja-rJP" >日本語</a></li> <li><a href="/Meshtastic-Android/main/ko-rKR/user/node-metrics" lang="ko-rKR" >한국어</a></li> <li><a href="/Meshtastic-Android/main/lt-rLT/user/node-metrics" lang="lt-rLT" >Lietuvių</a></li> <li><a href="/Meshtastic-Android/main/nl-rNL/user/node-metrics" lang="nl-rNL" >Nederlands</a></li> <li><a href="/Meshtastic-Android/main/no-rNO/user/node-metrics" lang="no-rNO" >Norsk</a></li> <li><a href="/Meshtastic-Android/main/pl-rPL/user/node-metrics" lang="pl-rPL" >Polski</a></li> <li><a href="/Meshtastic-Android/main/pt-rBR/user/node-metrics" lang="pt-rBR" >Português (Brasil)</a></li> <li><a href="/Meshtastic-Android/main/pt-rPT/user/node-metrics" lang="pt-rPT" >Português</a></li> <li><a href="/Meshtastic-Android/main/ro-rRO/user/node-metrics" lang="ro-rRO" >Română</a></li> <li><a href="/Meshtastic-Android/main/sk-rSK/user/node-metrics" lang="sk-rSK" >Slovenčina</a></li> <li><a href="/Meshtastic-Android/main/sl-rSI/user/node-metrics" lang="sl-rSI" >Slovenščina</a></li> <li><a href="/Meshtastic-Android/main/sq-rAL/user/node-metrics" lang="sq-rAL" >Shqip</a></li> <li><a href="/Meshtastic-Android/main/sr-rLatn/user/node-metrics" lang="sr-rLatn" >Српски (Latinica)</a></li> <li><a href="/Meshtastic-Android/main/srp/user/node-metrics" lang="srp" >Српски (Ћирилица)</a></li> <li><a href="/Meshtastic-Android/main/sv-rSE/user/node-metrics" lang="sv-rSE" >Svenska</a></li> <li><a href="/Meshtastic-Android/main/tr-rTR/user/node-metrics" lang="tr-rTR" >Türkçe</a></li> <li><a href="/Meshtastic-Android/main/uk-rUA/user/node-metrics" lang="uk-rUA" >Українська</a></li> <li><a href="/Meshtastic-Android/main/zh-rCN/user/node-metrics" lang="zh-rCN" >中文 (简体)</a></li> <li><a href="/Meshtastic-Android/main/zh-rTW/user/node-metrics" lang="zh-rTW" >中文 (繁體)</a></li> </ul> </details> <a class="upstream-docs-link" href="https://meshtastic.org/docs/" title="Official Meshtastic documentation (meshtastic.org)">Meshtastic Docs ↗</a> </div> <script> function toggleMeshtasticTheme() { var current = localStorage.getItem('jtd-theme') || 'meshtastic'; var next = (current === 'meshtastic-dark') ? 'meshtastic' : 'meshtastic-dark'; if (typeof jtd !== 'undefined' && typeof jtd.setTheme === 'function') { jtd.setTheme(next); } localStorage.setItem('jtd-theme', next); var icon = document.getElementById('theme-icon'); var label = document.getElementById('theme-label'); if (icon && label) { icon.textContent = (next === 'meshtastic-dark') ? '☀️' : '🌙'; label.textContent = (next === 'meshtastic-dark') ? 'Light' : 'Dark'; } } // Apply stored/OS theme on page load (function() { var theme = localStorage.getItem('jtd-theme') || 'meshtastic'; // Sync toggle label immediately var icon = document.getElementById('theme-icon'); var label = document.getElementById('theme-label'); if (icon && label) { icon.textContent = (theme === 'meshtastic-dark') ? '☀️' : '🌙'; label.textContent = (theme === 'meshtastic-dark') ? 'Light' : 'Dark'; } // Apply theme once jtd is ready function tryApply() { if (typeof jtd !== 'undefined' && typeof jtd.setTheme === 'function') { jtd.setTheme(theme); } else { setTimeout(tryApply, 50); } } tryApply(); })(); </script> </div> <div class="main-content-wrap"> <nav aria-label="Breadcrumb" class="breadcrumb-nav"> <ol class="breadcrumb-nav-list"> <li class="breadcrumb-nav-list-item"><span>Метрики ноды</span></li> </ol> </nav> <div id="main-content" class="main-content"> <main> <div class="locale-page-banner" > <p class="locale-notice"> 🌐 <strong>Русский</strong> — Community translation <a href="/Meshtastic-Android/main/en/user/node-metrics">View in English</a> </p> </div> <div lang="ru-rRU"> <h1 id="метрики-ноды"> <a href="#метрики-ноды" class="anchor-heading" aria-labelledby="метрики-ноды"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Метрики ноды </h1> <p>Экран сведений о ноде предоставляет подробную телеметрию и метрики для каждой ноды твоей mesh-сети.</p> <h2 id="просмотр-метрик"> <a href="#просмотр-метрик" class="anchor-heading" aria-labelledby="просмотр-метрик"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Просмотр метрик </h2> <ol> <li>Перейдите в раздел <strong>Ноды</strong>.</li> <li>Нажмите на ноду, которую хотите просмотреть.</li> <li>Scroll to the <strong>Telemetry</strong> section and find the category you want — <strong>Signal Quality</strong>, <strong>Device Metrics</strong>, <strong>Environment Metrics</strong>, <strong>Air-Quality Metrics</strong>, <strong>Power Metrics</strong>, <strong>Position</strong>, and the rest.</li> <li>Tap the refresh button on a row to ask the node for a fresh reading. The chart button beside it opens that category’s history, and appears once the node has reported that kind of telemetry.</li> </ol> <p><img src="../../assets/screenshots/nodes_detail_local.png" alt="Сведения о ноде — локальное устройство" /></p> <p>The <strong>Position</strong> row expands to show location data for nodes that share GPS:</p> <p><img src="../../assets/screenshots/nodes_position.png" alt="Встроенное содержимое о местоположении" /></p> <blockquote> <p>ℹ️ <strong>Note:</strong> Metrics are only available when they have been reported by the remote node. Метрики обновляются с интервалами, настроенными в параметрах телеметрии каждой ноды.</p> </blockquote> <h2 id="интервал-передачи"> <a href="#интервал-передачи" class="anchor-heading" aria-labelledby="интервал-передачи"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Интервал передачи </h2> <p>Основная информация о работе, сообщаемая каждой нодой:</p> <div class="table-wrapper"><table> <thead> <tr> <th>Метрическая</th> <th>Описание</th> </tr> </thead> <tbody> <tr> <td>Уровень заряда</td> <td>Текущий процент заряда батареи</td> </tr> <tr> <td>Напряжение</td> <td>Показания напряжения батареи</td> </tr> <tr> <td>ChUtil</td> <td>Percentage of local airtime in use</td> </tr> <tr> <td>AirUtil</td> <td>Percentage of the last hour this node spent transmitting</td> </tr> <tr> <td>Аптайм</td> <td>Время с момента последней перезагрузки</td> </tr> </tbody> </table></div> <p>Device Metrics has no cards on the node detail screen. Use the chart button on its row to open the Device Metrics screen, where battery level, voltage, ChUtil, and AirUtil are plotted over time and every reading — uptime included — is listed with its timestamp underneath. Pick a time frame at the top of the screen, and use the save icon in the app bar to export the visible history as CSV.</p> <blockquote> <p>💡 <strong>Tip:</strong> Where a category does show cards — Environment, Air Quality, and Power — touch &amp; hold a card to copy its value to the clipboard. On a chart screen, pinch to zoom the time axis.</p> </blockquote> <h2 id="метрики-окружения"> <a href="#метрики-окружения" class="anchor-heading" aria-labelledby="метрики-окружения"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Метрики окружения </h2> <p>Данные датчиков окружающей среды (требуется совместимое оборудование):</p> <div class="table-wrapper"><table> <thead> <tr> <th>Метрическая</th> <th>Примеры сенсоров</th> </tr> </thead> <tbody> <tr> <td>Температура</td> <td>BME280, BME680, SHT31</td> </tr> <tr> <td>Влажность</td> <td>BME280, BME680, SHT31</td> </tr> <tr> <td>Давление на барометре</td> <td>BME280, BMP280</td> </tr> <tr> <td>Сопротивление газа</td> <td>BME680</td> </tr> <tr> <td>IAQ (Качества воздуха)</td> <td>BME680</td> </tr> </tbody> </table></div> <p>Environment metrics are charted over time — temperature, humidity, and pressure each get their own line chart with the measurement unit displayed on the Y axis.</p> <p>Индекс <strong>IAQ (качество воздуха в помещении)</strong> датчика BME680 представляет собой единое значение от 0 до 500+, полученное на основе сопротивления газа, и отображается на цветовой шкале от <strong>“Отлично”</strong> до <strong>“Опасно загрязнён”</strong>:</p> <p><img src="../../assets/screenshots/node-metrics_iaq_scale.png" alt="Шкала индекса IAQ от Отлично до Опасно загрязнён" /></p> <blockquote> <p>💡 <strong>Совет:</strong> Для получения метрик окружающей среды к удалённой ноде должен быть подключён датчик. Не все ноды передают данные об окружающей среде. См. <a href="telemetry-and-sensors">Телеметрия и датчики</a> для получения полного списка поддерживаемых датчиков.</p> </blockquote> <h2 id="метрики-качества-воздуха"> <a href="#метрики-качества-воздуха" class="anchor-heading" aria-labelledby="метрики-качества-воздуха"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Метрики качества воздуха </h2> <p>Качество воздуха — это отдельный экран метрик для нод, оснащённых датчиком взвешенных частиц и/или CO₂. Этот <strong>экран отделён от показателя IAQ датчика BME680</strong>, отображаемого в разделе “Метрики окружающей среды” — IAQ представляет собой единый индекс, основанный на сопротивлении газа, тогда как экран качества воздуха показывает графики исходных измерений взвешенных частиц и CO₂.</p> <div class="table-wrapper"><table> <thead> <tr> <th>Метрическая</th> <th>Единица</th> <th>Описание</th> </tr> </thead> <tbody> <tr> <td>PM1.0</td> <td>мкг/м³</td> <td>Взвешенные частицы размером до 1,0 микрона</td> </tr> <tr> <td>PM2.5</td> <td>мкг/м³</td> <td>Взвешенные частицы размером до 2,5 микрона</td> </tr> <tr> <td>PM10</td> <td>мкг/м³</td> <td>Взвешенные частицы размером до 10 микронов</td> </tr> <tr> <td>AQI</td> <td>Индекс EPA</td> <td>EPA <strong>NowCast</strong> AQI computed from the node’s recent PM2.5 history, with a color-coded severity label. Отображается рядом с PM2.5, как только накопится достаточно показаний.</td> </tr> <tr> <td>CO₂</td> <td>ppm</td> <td>Концентрация углекислого газа</td> </tr> <tr> <td>Температура CO₂</td> <td>°C / °F</td> <td>Температура, сообщаемая самим датчиком CO₂ (например, SCD4x)</td> </tr> <tr> <td>Влажность CO₂</td> <td>%</td> <td>Относительная влажность, сообщаемая датчиком CO₂</td> </tr> </tbody> </table></div> <p>CO₂ readings are color-coded by severity so you can read air quality at a glance:</p> <div class="table-wrapper"><table> <thead> <tr> <th>Диапазон</th> <th>Диапазон CO₂ (ppm)</th> <th>Цвет</th> </tr> </thead> <tbody> <tr> <td>Хороший</td> <td>&lt; 1000</td> <td>Зеленый</td> </tr> <tr> <td>Душно</td> <td>&lt; 2000</td> <td>Янтарный</td> </tr> <tr> <td>Плохо</td> <td>&lt; 5000</td> <td>Оранжевый</td> </tr> <tr> <td>Небезопасно</td> <td>&lt; 30000</td> <td>Красный</td> </tr> <tr> <td>Эвакуация</td> <td>≥ 30000</td> <td>Тёмно-красный</td> </tr> </tbody> </table></div> <p><img src="../../assets/screenshots/node-metrics_air_quality.png" alt="Показания качества воздуха с цветовой кодировкой уровня CO₂" /></p> <p>Кнопка журнала/метрик качества воздуха появляется на экране сведений о ноде <strong>только в том случае, если нода передала телеметрию о качестве воздуха</strong>. В режиме просмотра качества воздуха ты можешь:</p> <ul> <li>Выбрать <strong>временной интервал</strong> для графиков.</li> <li>Фильтровать с помощью <strong>кнопок метрик</strong> — отображаются только те метрики, по которым есть данные.</li> <li><strong>Обновить / запросить</strong> последнюю телеметрию о качестве воздуха.</li> <li><strong>Экспортировать в CSV</strong> для анализа в электронных таблицах.</li> </ul> <blockquote> <p>💡 <strong>Совет:</strong> Для получения метрик качества воздуха на удалённой ноде должен быть установлен совместимый датчик. См. <a href="telemetry-and-sensors">Телеметрия и датчики</a> для получения информации о поддерживаемом оборудовании.</p> </blockquote> <h2 id="качество-сигнала"> <a href="#качество-сигнала" class="anchor-heading" aria-labelledby="качество-сигнала"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Качество сигнала </h2> <p>Информация о качестве радиосигнала:</p> <div class="table-wrapper"><table> <thead> <tr> <th>Метрическая</th> <th>Описание</th> </tr> </thead> <tbody> <tr> <td>Сигнал/шум</td> <td>Отношение сигнал/шум (SNR) (чем выше, тем лучше)</td> </tr> <tr> <td>RSSI</td> <td>Индикатор уровня принимаемого сигнала (Rssi) (чем ближе к 0, тем лучше)</td> </tr> <tr> <td>Уровень собственных шумов</td> <td>Местный фоновый радиочастотный шум в дБм (чем более отрицательное значение, тем тише)</td> </tr> <tr> <td>Количество хопов</td> <td>Количество хопов в mesh-сети для последнего сообщения</td> </tr> </tbody> </table></div> <h3 id="оценка-качества-сигнала"> <a href="#оценка-качества-сигнала" class="anchor-heading" aria-labelledby="оценка-качества-сигнала"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Оценка качества сигнала </h3> <p>Качество сигнала оценивается по <strong>SNR относительно минимального уровня демодуляции активного пресета LoRa-модема</strong>, а не по фиксированным порогам — конкретное значение SNR означает разное на разных пресетах (например, −15 дБ нормально для LongSlow, но неприемлемо для ShortFast). When RSSI and a noise-floor reading are both available, the app also rates their difference against the preset limit and uses the worse rating. Otherwise, RSSI is display-only. In the table, <em>limit</em> is the preset’s SNR limit.</p> <div class="table-wrapper"><table> <thead> <tr> <th>Качество</th> <th>Критерии</th> </tr> </thead> <tbody> <tr> <td>Хороший</td> <td>SNR выше предела пресета</td> </tr> <tr> <td>Средний</td> <td>менее чем на 5,5 дБ ниже предела</td> </tr> <tr> <td>Плохой</td> <td>от 5,5 до 7,5 дБ ниже предела</td> </tr> <tr> <td>Отсутствует</td> <td>более чем на 7,5 дБ ниже предела</td> </tr> </tbody> </table></div> <p>См. <a href="signal-meter">Понимание измерителя сигнала</a> для полного объяснения.</p> <p>Локальная статистика твоего подключённого радио также отображается в разделе “Качество сигнала”, когда она доступна. Эти журналы включают уровень шума, счётчики трафика, счётчики ретрансляций, количество нод в сети и время работы радио. График уровня шума использует пунктирную опорную линию на уровне -85 дБм, чтобы помочь определить загруженность радиоэфира.</p> <ul> <li><strong>Request</strong> — ask the connected radio for a fresh Local Stats telemetry report</li> <li><strong>Clear</strong> — remove Local Stats logs for that node</li> <li><strong>Save</strong> — export the visible Local Stats history as CSV</li> </ul> <h2 id="метрики-питания"> <a href="#метрики-питания" class="anchor-heading" aria-labelledby="метрики-питания"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Метрики питания </h2> <p>Телеметрия управления питанием (требуется датчик INA или совместимое оборудование):</p> <div class="table-wrapper"><table> <thead> <tr> <th>Метрическая</th> <th>Описание</th> </tr> </thead> <tbody> <tr> <td>Напряжение</td> <td>Per-channel voltage reading</td> </tr> <tr> <td>Ток</td> <td>Per-channel draw, in milliamps</td> </tr> </tbody> </table></div> <p>The node detail screen shows cards for channels 1 to 3. Use the chart button on the <strong>Power Metrics</strong> row to open the chart screen, which lists a chip for every channel that reported data — up to eight — and charts the one you select. Use the label field under the chips to give a channel a name of your own, such as Solar or Battery. The app does not derive a wattage figure from voltage and current.</p> <h2 id="трассировка-маршрута"> <a href="#трассировка-маршрута" class="anchor-heading" aria-labelledby="трассировка-маршрута"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Трассировка маршрута </h2> <p>Трассировка показывает путь сообщения через mesh-сеть:</p> <ol> <li>From the node detail screen’s <strong>Telemetry</strong> section, tap the refresh button on the <strong>Traceroute</strong> row. You cannot traceroute your own node, and the button accepts one request every 30 seconds.</li> <li>Приложение отправляет запрос трассировки целевой ноде.</li> <li>Results show each hop with its SNR.</li> </ol> <h3 id="чтение-результатов-трассировки"> <a href="#чтение-результатов-трассировки" class="anchor-heading" aria-labelledby="чтение-результатов-трассировки"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Чтение результатов трассировки </h3> <p>A traceroute is a round trip, so each saved result carries a hop count in each direction — <strong>Forward Hops</strong> and <strong>Return Hops</strong> — and the <strong>Round Trip</strong> time in seconds. A result marked <strong>Direct</strong> reached the target with no relay in between. Tap a result to read the route traced toward the destination and the route traced back to you, with the SNR of every hop. On Android that view offers <strong>View on map</strong>, which draws the same path, as long as the start and destination nodes have both shared a position.</p> <p>A result marked <strong>No Response</strong> means the target never answered. It may be out of range, asleep, or configured not to reply. Wait for the 30-second cooldown to clear and try again; if it keeps failing, send a direct message first to confirm the node is reachable at all.</p> <h2 id="журнал-местоположения"> <a href="#журнал-местоположения" class="anchor-heading" aria-labelledby="журнал-местоположения"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Журнал местоположения </h2> <p>Исторические данные о местоположении для нод, которые делятся своими координатами:</p> <ul> <li>GPS координаты</li> <li>Высота</li> <li>Скорость (при движении)</li> <li>Временная метка для каждого отчёта о местоположении</li> </ul> <h2 id="информация-об-окружении"> <a href="#информация-об-окружении" class="anchor-heading" aria-labelledby="информация-об-окружении"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Информация об окружении </h2> <p>Показывает, какие ноды данная нода может слышать напрямую — полезно для понимания топологии mesh-сети.</p> <h2 id="метрики-хоста"> <a href="#метрики-хоста" class="anchor-heading" aria-labelledby="метрики-хоста"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Метрики хоста </h2> <p>Nodes that run Meshtastic on a Linux host, such as a Raspberry Pi, report the host’s own health — free memory, free disk space, one-, five-, and fifteen-minute load averages, and how long the host has been up. The <strong>Host Metrics</strong> row is always listed; its chart button appears once a node has reported them.</p> <h2 id="метрика-прохожих"> <a href="#метрика-прохожих" class="anchor-heading" aria-labelledby="метрика-прохожих"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Метрика прохожих </h2> <p>A node running the PAX counter module reports how many Wi-Fi and Bluetooth devices it saw nearby, as a crowd-size estimate, and charts the two counts alongside their total. The <strong>PAX Metrics</strong> row is always listed; its chart button appears once a node has reported them. The counts are of devices, not people.</p> <h2 id="связанные-темы"> <a href="#связанные-темы" class="anchor-heading" aria-labelledby="связанные-темы"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Связанные темы </h2> <ul> <li><a href="nodes">Ноды</a> — список нод, фильтрация и сортировка</li> <li><a href="telemetry-and-sensors">Телеметрия и датчики</a> — поддерживаемые датчики и настройка</li> <li><a href="signal-meter">Измеритель сигнал</a> — как рассчитывается качество сигнала на основе SNR и RSSI</li> <li><a href="discovery">Local Mesh Discovery</a> — traceroute details and neighbor info</li> <li><a href="units-and-locale">Единицы измерения и регион</a> — форматы отображения температуры, расстояния и скорости</li> </ul> </div> <style> .locale-page-banner { background: rgba(103, 234, 148, 0.1); border: 1px solid rgba(103, 234, 148, 0.3); border-radius: 12px; padding: 10px 16px; margin-bottom: 1.5rem; font-size: 0.85rem; } .locale-notice a { margin-left: 12px; font-weight: 500; } </style> </main> <hr> <footer> <footer class="site-footer"> Copyright &copy; 2026 Meshtastic LLC. Distributed under the <a href="https://www.gnu.org/licenses/gpl-3.0.html">GPL v3 License.</a> </footer> <div class="d-sm-block d-md-none"> <div class="mt-4 fs-2"> This site uses <a href="https://github.com/just-the-docs/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll. </div> </div> </footer> </div> </div> <div class="search-overlay"></div> </div> </body> </html>