Администрирование Сеть Meshtastic: руководство по командам Python CLI Thu, May 28 2026  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Meshtastic: руководство по командам Python CLI Печать
Добавил(а) microsin   

Пакет python pip установит утилиту командной строки meshtastic, которая отображает пакеты, пересланные через сеть как JSON, и позволит вам получить через последовательный порт отладочную информацию от устройств meshtastic.

Установка утилиты meshtastic выполняется командой:

pip3 install --upgrade "meshtastic"

После этого команда meshtastic может запускаться напрямую из командной строки операционноай системы. В случае, когда команда meshtastic на запускается, проверьте, что python-директория scripts находится в пути поиска исполняемых файлов (переменная окружения PATH). Если вы не очень хорошо разбираетесь в работе с утилитой pip, или сталкиваетесь с проблемами, см. подробные инструкции по установке в статье [2].

Подобный список опций, которые принимает команда meshtastic, можно получить командой:

usage: meshtastic [-h | --version | --support] [--port [PORT] | --host [HOST]
                 | --ble [BLE]] [--ble-scan] [--dest !xxxxxxxx] [--ch-index INDEX]
                 [--configure CONFIGURE] [--export-config [FILE]] [--get FIELD]
                 [--set FIELD VALUE] [--begin-edit] [--commit-edit] [--get-canned-message]
                 [--set-canned-message SET_CANNED_MESSAGE] [--get-ringtone]
                 [--set-ringtone RINGTONE] [--ch-vlongslow] [--ch-longslow]
                 [--ch-longfast] [--ch-medslow] [--ch-medfast] [--ch-shortslow]
                 [--ch-shortfast] [--set-owner SET_OWNER] [--set-owner-short SET_OWNER_SHORT]
                 [--set-ham SET_HAM] [--set-is-unmessageable SET_IS_UNMESSAGEABLE]
                 [--ch-set-url URL] [--ch-add-url URL] [--setalt SETALT] [--setlat SETLAT]
                 [--setlon SETLON] [--remove-position] [--pos-fields [POS_FIELDS ...]]
                 [--ch-add CH_ADD] [--ch-del] [--ch-set FIELD VALUE]
                 [--channel-fetch-attempts ATTEMPTS] [--qr] [--qr-all] [--ch-enable]
                 [--ch-disable] [--info] [--nodes] [--show-fields SHOW_FIELDS]
                 [--sendtext TEXT] [--private] [--traceroute !xxxxxxxx]
                 [--request-telemetry [TYPE]] [--request-position] [--reply]
                 [--reboot | --reboot-ota | --ota-update FIRMWARE_FILE
                 | --enter-dfu | --shutdown | --device-metadata | --factory-reset
                 | --factory-reset-device | --remove-node !xxxxxxxx
                 | --set-favorite-node !xxxxxxxx | --remove-favorite-node !xxxxxxxx
                 | --set-ignored-node !xxxxxxxx | --remove-ignored-node !xxxxxxxx
                 | --reset-nodedb | --set-time [TIMESTAMP]] [--seriallog [LOG_DESTINATION]]
                 [--ack] [--timeout SECONDS] [--no-nodes] [--debug] [--debuglib]
                 [--test] [--wait-to-disconnect [SECONDS]] [--noproto] [--listen] [--no-time]
                 [--power-riden POWER_RIDEN | --power-ppk2-meter | --power-ppk2-supply
                 | --power-sim] [--power-voltage POWER_VOLTAGE] [--power-stress]
                 [--power-wait] [--slog [SLOG]] [--gpio-wrb GPIO_WRB GPIO_WRB]
                 [--gpio-rd GPIO_RD] [--gpio-watch GPIO_WATCH]

Подсказка по использованию:

  -h, --help  покажет список команд и завершит работу
  --version   покажет номер версии программы и завершит работу
  --support   покажет информацию по поддержке (полезно в траблшутинге)

Соединение:

  Необязательные аргументы указывают, как подключаться к устройству Meshtastic.

  --port [PORT], --serial [PORT], -s [PORT]

      Задает порт устройства для подключения, например /dev/ttyUSB0 (для Linux) мли COM4 (для Windows). По умолчанию программа пытается автоматически определить порт подключения.

  --host [HOST], --tcp [HOST], -t [HOST]

      Подключение к устройству с помощью протокола TCP, опционально передается имя хоста или его IP-адрес (по умолчанию используется localhost).

  --ble [BLE], -b [BLE]

      Подключение через BLE, опционально указывается имя устройства (по умолчанию используется 'any').

  --ble-scan

      Сканирование устройств Meshtastic BLE, доступных для подключения.

Выбор: аргументы выбирают используемый канал, узлы назначения и т. д.

  --dest !xxxxxxxx

      Идентификатор узла назначения (node ID) для отправки любых команд. Если не установлено, то подразумевается '^all' или '^local'. Используется node ID с префиксом '!' или '0x', чтобы однозначно указать, что это шестнадцатеричный номер узла.

  --ch-index INDEX

      Установит указанный индекс канала для команд, относящихся к каналам. Каналы начинаются с 0 (0 означает канал PRIMARY).

Импорт/экспорт: аргументы относятся к импорту и экспорту конфигурации устройств Meshtastic.

  --configure CONFIGURE

      Указывает путь до файла yaml(.yml), содержащего желаемые настройки для подключенного устройства.

  --export-config [FILE]

      Экспорт конфигурации устройства как YAML (в stdout, если имя файла не указано).

Конфигурация: аргументы относятся к основной конфигурации устройств Meshtastic.

  --get FIELD

      Получение поля свойств. Используйте недопустимое поле, такое как '0', чтобы получить список всех полей. Можно использовать либо snake_case, либо camelCase формат (пример: 'power.ls_secs' или 'power.lsSecs').

  --set FIELD VALUE

      Set установит поле свойств.  Можно использовать либо snake_case, либо camelCase формат (пример: 'power.ls_secs' или 'power.lsSecs'). Может быть менее надежным, когда устанавливаются свойства из больше чем одной секции конфигурации.

  --begin-edit

      Говорит узлу открыть транзакцию для редактирования настроек.

  --commit-edit

      Команда для подтверждения и сохранения всех изменений настроек в рамках одной "транзакции".

  --get-canned-message

      Используется в CLI Meshtastic для отображения списка предустановленных (canned) сообщений, которые в данный момент загружены в модуль "Canned Message" на вашем устройстве.

  --set-canned-message SET_CANNED_MESSAGE

      Установит canned-сообщение (до 200 символов для всех сообщений).

  --get-ringtone

      Покажет сохраненный рингтон.

  --set-ringtone RINGTONE

      Установит рингтон оповещения (до 230 символов).

  --ch-vlongslow

      Поменяет состояние на предварительную настройку (preset) очень большого расстояния и малой скорости модема.

  --ch-longslow

      Поменяет состояние на предварительную настройку (preset) большого расстояния и малой скорости модема.

  --ch-longfast

      Поменяет состояние на предварительную настройку (preset) большого расстояния быстрой скорости модема.

  --ch-medslow

      Поменяет состояние на предварительную настройку (preset) среднего расстояния и медленной скорости модема.

  --ch-medfast

      Поменяет состояние на предварительную настройку (preset) среднего расстояния и быстрой скорости модема.

  --ch-shortslow

      Поменяет состояние на предварительную настройку (preset) короткого расстояния и медленной скорости модема.

  --ch-shortfast

      Поменяет состояние на предварительную настройку (preset) короткого расстояния и быстрой скорости модема.

  --set-owner SET_OWNER

      Установит имя владельца устройства.

  --set-owner-short SET_OWNER_SHORT

      Установит короткое имя владельца устройства.

  --set-ham SET_HAM

      Установит лицензированный Ham ID и выключит шифрование.

  --set-is-unmessageable SET_IS_UNMESSAGEABLE, --set-is-unmessagable SET_IS_UNMESSAGEABLE

      Эта настройка позволяет разрешить, могут ли другие пользователи в сети отправить вам персональное сообщение "напрямую" или нет.

  --ch-set-url URL, --seturl URL

      Позволяет полностью настроить все радиопараметры и каналы вашего устройства Meshtastic одним действием, используя специальную ссылку.

  --ch-add-url URL

      Добавит вторичные каналы и установит конфигурацию LoRa из предоставленной ссылки.

Конфигурация позиционирования: аргументы позволяют модифицировать позицию и другую связанную с позицией конфигурацию.

  --setalt SETALT

      Установит высоту (altitude) устройства в метрах (можно использовать без GPS), и разрешает фиксированную позицию. Когда предоставляется позиция с `--setlat`, `--setlon` и `--setalt`, пропущенные значения будут установлены в 0.

  --setlat SETLAT

      Установит широту (latitude) устройства (можно использовать без GPS), и разрешает фиксированную позицию. Принимает десятичное значение или целочисленное значение, предварительно умноженное на 1e7. Когда предоставляются позиции с `--setlat`, `--setlon` и `--setalt`, пропущенные значения будут установлены в 0.

  --setlon SETLON

      Установит долготу (longitude) устройства (можно использовать без GPS), и разрешает фиксированную позицию. Принимает десятичное значение или целочисленное значение, предварительно умноженное на 1e7. Когда предоставляются позиции с `--setlat`, `--setlon` и `--setalt`, пропущенные значения будут установлены в 0.

  --remove-position

      Очистит любую существующую фиксированную позицию и запретит фиксированную позицию.

  --pos-fields [POS_FIELDS ...]

      Указывает поля для отправки, когда посылается позиция. Для списка допустимых значений аргументы не требуются. Можно передать несколько значений в виде списка с разделителем пробелом: '--pos-fields ALTITUDE HEADING SPEED'.

Конфигурация канала: аргументы, касающиеся конфигурации каналов.

  --ch-add CH_ADD

      Добавит вторичный канал, вы должны указать имя канала.

  --ch-del

      Удалит канал по индексу.

  --ch-set FIELD VALUE

      Установит параметр канала. Чтобы посмотреть доступные настройки канала: '--ch-set all all --ch-index 0'. Этой командой можно установить 'psk'. Для запрета шифрования на primary-канале: '--ch-set psk none --ch-index 0'. Для установки шифрования с новым случайным ключом на втором канале: '--ch-set psk random --ch-index 1'. Для установки шифрования обратно к состоянию по умолчанию: '--ch-set psk default --ch-index 0'. Для установки шифрования с вашим собственным ключом: '--ch-set psk 0x1a1a1a1a2b2b2b2b1a1a1a1a2b2b2b2b1a1a1a1a2b2b2b2b1a1a1a1a2b2b2b2b --ch-index 0'.

  --channel-fetch-attempts ATTEMPTS

      Определяет, сколько раз CLI будет пытаться получить текущие настройки канала перед тем, как применить изменения через --ch-set, прежде чем сдаться и выдать ошибку. По умолчанию 3.

  --qr

      Отобразит QR-код для primary-канала узла (или всех каналов с --qr-all). Также покажет специальную ссылку, которая содержит все настройки канала в закодированном виде (shareable channel URL).

  --qr-all

      Отобразит QR-код и URL для всех каналов узла.

  --ch-enable

      Разрешит указанный канал. Вместо этого по возможности используйте --ch-add.

  --ch-disable

      Запретит указанный канал. Вместо этого по возможности используйте --ch-del.

Локальные действия: аргументы, которые работают исключительно с тем узлом, к которому вы непосредственно подключены (через USB, Bluetooth или последовательный порт).

  --info

      Чтение и отображение конфигурационной информации radio.

  --nodes

     Печать списка узлов в виде хорошо отформатированной таблицы.

  --show-fields SHOW_FIELDS

      Указывает поля для отображения (разделенные запятой), когда используется --nodes.

Удаленные (remote) действия: аргументы, которые работают либо с локальным (к которому вы подключены через USB, Bluetooth или последовательный порт), либо с удаленным узлом (к которому вы подключены через mesh).

  --sendtext TEXT

      Отправит текстовое сообщение. Можно указать узел назначения '--dest', используя PRIVATE_APP port '--private', и/или индекс канала '--ch-index'.

  --private

      Опциональный аргумент для отправки текстовых сообщений в PRIVATE_APP port. Используйте совместно с --sendtext.

  --traceroute !xxxxxxxx

      Трассировка от подключенного узла к узлу назначения. Необходимо передать в качестве аргумента ID узла назначения, примерно так: '--traceroute !ba4bf9d0' | '--traceroute 0xba4bf9d0'. Могут трассироваться только узлы с общим (shared) каналом.

  --request-telemetry [TYPE]

      Запросит телеметрию из узла. С аргументом запросит телеметрию определенного типа. Вам нужно передать в качестве аргумента ID узла назначения с '--dest'. Для репитеров требуется nodeNum.

  --request-position

      Запросит позицию из узла. Вам нужно передать в качестве аргумента ID узла назначения с '--dest'. Для репитеров требуется nodeNum.

  --reply

      Ответ на принятые сообщения.

Действия по администрированию на удаленных узлах: аргументы, которые взаимодействуют с локальным узлом или удаленными узлами. Необходим администраторский доступ.

  --reboot

      Указание перезагрузиться для узла назначения.

  --reboot-ota

      Указание перезагрузиться в заводское firmware (ESP32, firmware version < 2.7.18).

  --ota-update FIRMWARE_FILE

      Выполнит OTA-обновление на локальном узле (ESP32, firmware version >=2.7.18, пока что только через WiFi/TCP). Указывает путь до файла прошивки.

  --enter-dfu

      Указывает узлу назначения войти в режим программирования DFU (NRF52).

  --shutdown

      Говорит узлу назначения выключиться.

  --device-metadata

      Получение метаданных устройства из узла.

  --factory-reset, --factory-reset-config

      Указывает узлу назначения инсталлировать конфигурацию по умолчанию, с сохранением привязок BLE & и ключей PKI.

  --factory-reset-device

      Указывает узлу назначения инсталлировать конфигурацию по умолчанию, с очисткой привязок BLE & и ключей PKI.

  --remove-node !xxxxxxxx

      Укажет узлу назначения удалить определенный узел из его базы данных (NodeDB). Используйте node ID с префиксом '!' или '0x', или номер узла.

  --set-favorite-node !xxxxxxxx

      Укажет узлу назначения установить определенный узел как фаворит в NodeDB. Используйте node ID с префиксом '!' или '0x', или номер узла.

  --remove-favorite-node !xxxxxxxx

      Укажет узлу назначения установить определенный узел не как фаворит в NodeDB. Используйте node ID с префиксом '!' или '0x', или номер узла.

  --set-ignored-node !xxxxxxxx

      Укажет узлу назначения установить определенный узел для игнорирования в NodeDB. Используйте node ID с префиксом '!' или '0x', или номер узла.

  --remove-ignored-node !xxxxxxxx

      Укажет узлу назначения установить определенный узел как не игнорируемый в NodeDB. Используйте node ID с префиксом '!' или '0x', или номер узла.

  --reset-nodedb

      Укажет узлу назначения очистить список узлов.

  --set-time [TIMESTAMP]

      Установит время в предоставленную метку времени unix epoch timestamp, или в системное текущее время, если время опущено или 0.

Другие аргументы:

  --seriallog [LOG_DESTINATION]

      Записывать вывод с последовательного порта устройства либо в значение 'none', либо в файл с именем, в который будет добавляться запись. По умолчанию используется значение 'stdout', если имя файла не указано.

  --ack

     Используется вместе с совместимыми действиями (например --sendtext) для ожидания подтверждения.

  --timeout SECONDS

      Как долго ждать ответов. По умолчанию 300 секунд.

  --no-nodes

      Оптимизационная настройка, которая говорит узлу Meshtastic не отправлять клиенту полную базу данных узлов (NodeDB) при подключении, что ускоряет startup. Требует 2.3.11+ firmware.

  --debug

      Показать отладочные сообщения библиотеки API.

  --debuglib

      Показать только отладочные сообщения библиотеки API.

  --test

      Запуск стресс=теста по всем подключенным устройствам Meshtastic.

  --wait-to-disconnect [SECONDS]

      Сколько секунд ждать перед отключением от устройства.

  --noproto

      Переключает устройство Meshtastic в режим "глупого" последовательного терминала, полностью отключая API протокол Meshtastic.

  --listen

      Переключает CLI в режим пассивного прослушивания потока Protobuf от устройства Meshtastic, оставаясь активным и показывая все входящие сообщения в реальном времени.

  --no-time

      Устаревшая опция. Оставлена для обратной совместимости в скриптах, но ничего не делает (no-op).

Power Testing: эта группа опций предназначена для тестирования энергопотребления устройств Meshtastic. Она позволяет подключиться к измерительным приборам и автоматизировать сбор данных о том, сколько энергии потребляет устройство в разных режимах работы.

  --power-riden POWER_RIDEN

      Общаться с источником питания Riden. Нужно указать путь к устройству, например /dev/ttyUSBxxx.

  --power-ppk2-meter

     Общаться с Nordic Power Profiler Kit 2 (в режиме измерителя, meter mode).

  --power-ppk2-supply

     Общаться с Nordic Power Profiler Kit 2 (в режиме источника питания, supply mode).

  --power-sim

      Использовать симулированный измеритель мощности (для разработки).

  --power-voltage POWER_VOLTAGE

      Установит указанное напряжение на источнике питания. Будьте ОЧЕНЬ осторожны, можно спалить устройство.

  --power-stress

      Запускает на устройстве Meshtastic автоматический стресс-тест энергопотребления, который циклически переключает устройство через различные режимы работы, чтобы замерить, сколько тока потребляет каждый режим, и сохранить профиль энергопотребления (power consumption profile). Также требует --power-mon.

  --power-wait

      Предписывает CLI приостановить выполнение и запросить у пользователя подтверждение перед тем, как начать поиск последовательного порта устройства. Это необходимо, потому что некоторые платы при сбросе питания полностью отключают USB-порт, из-за чего виртуальный COM-порт временно исчезает из системы.

  --slog [SLOG]

      Сохраняет структурированные логи (slogs) для этого запуска, опционально вы можете указать директорию назначения.

Remote Hardware: эти команды относятся к модулю Remote Hardware (удаленное управление аппаратными портами). Они позволяют читать, записывать и отслеживать состояние GPIO-выводов (General Purpose Input/Output) на удаленных узлах Meshtastic через сеть LoRa.

  --gpio-wrb GPIO_WRB GPIO_WRB

      Установит определенный порт GPIO# в 1 или 0.

  --gpio-rd GPIO_RD

      Чтение из GPIO по маске (например: '0x10')

  --gpio-watch GPIO_WATCH

      Запуск ожидания по маске GPIO на наличие изменений (например: '0x10').

Если не были указаны аргументы для подключения, производится поиск совместимого последовательного устройства, и если ничего не найдено, то делается попытка TCP-соединения на localhost.

[Аргументы для соединения]

--port PORT

Указывается порт подключения к устройству Meshtastic, например /dev/ttyUSB0, /dev/cu.wchusbserial, COM4, и т. д. Если не указано, то meshtastic вытается найти устройство. Важно использовать в случае, когда подключено одновременно несколько узлов, чтобы правильно соединиться с нужным устройством.

Этот аргумент может быть также указан как --serial или -s.

meshtastic --port /dev/ttyUSB0 --info
meshtastic --port COM4 --info
meshtastic -s --info

--host HOST

Задает имя хоста или IP-адрес устройства для подключения (через TCP). Если хост не предоставлен, то CLI будет пытаться подключаться к localhost.

Этот аргумент может быть также указан как --tcp или -t.

meshtastic --host meshtastic.local --info
meshtastic --host --info

--ble BLE

Подключение к устройству Meshtastic с использованием его BLE-адреса или имени. Это опция позволяет беспроводные коммуникации с устройством, подобно опции --host для соединений TCP. Если адрес не предоставлен, то meshtastic попытается найти совместимое устройство, с которым можно соединиться.

Этот аргумент может также указан как -b.

meshtastic --ble "device_name_or_address" --info
meshtastic -b --info

[Дополнительные аргументы]

--export-config

Экспорт конфигурации устройства (это файл, предоставляемый для команды '--configure').

Чтобы создать файл с конфигурацией подключенного устройства, эта команда должна быть перенаправлена в yaml-файл.

meshtastic --export-config > example_config.yaml

--configure

Конфигурирует radio с помощью yaml-файла.

meshtastic --configure example_config.yaml

--seriallog SERIALLOG

Перевод лога последовательного вывода в 'stdout', либо в 'none', либо в файл с указанным именем, в который будут добавляться сообщения лога. По умолчанию используется 'stdout', если не указано имя файла.

meshtastic --port /dev/ttyUSB0 --seriallog
meshtastic -t meshtastic.local --seriallog log.txt

--info

Чтение и отображение конфигурационной информации radio.

meshtastic --port /dev/ttyUSB0 --info

--set-canned-message

Установит сообщения canned message plugin, отделенные друг от друга | (до 200 символов для всех сообщений).

meshtastic --set-canned-message "Кто в сети в Царицыно?|Позвоните мне|Делитесь новостями"

Canned Message Plugin (официальное название — Canned Message Module) — это встроенный модуль Meshtastic, который позволяет отправлять заранее заданные сообщения в mesh-сеть напрямую с устройства, без подключения к нему через телефон или компьютер.

Он особенно полезен в ситуациях, где неудобно или невозможно использовать смартфон: для быстрых ответов, для устройств без дисплея или в качестве резервного канала связи.

Модуль работает по простой логике: вы один раз настраиваете список сообщений (например: "Иду на связь", "Нужна помощь", "Выхожу на связь через 10 минут"), прикрепляете к устройству физический интерфейс для навигации и отправки (кнопка, энкодер, клавиатура) и затем можете отправлять эти сообщения в эфир, не прикасаясь к телефону.

[Основные возможности и настройка]

Основные параметры модуля, которые можно настроить в приложении (Android, iOS) или через CLI:

 

| Параметр | Описание |

| :--- | :--- |

| Enabled | Включение/выключение модуля. |

| Messages | Список сообщений, разделенных символом `|` (вертикальная черта). Общий объем списка — до 200 байт. |

| Input Source | Тип подключаемого устройства (`_any`, `rotEnc1`, `upDownEnc1`, `cardkb`, `scanAndSelect`). |

| Send Bell | Добавляет к сообщению служебный символ "звонок", который может активировать зуммер или уведомление на принимающих устройствах. |

 

Важно: сообщения настраиваются заранее через приложение Meshtastic. В полевых условиях изменить список можно только через телефон.

[Какое устройство ввода нужно?]

Вы можете использовать различные типы периферии в зависимости от модели вашего устройства Meshtastic:

● Энкодеры (Rotary Encoder): вращение для выбора сообщения, нажатие для отправки. Подходит для RAK14006 и самодельных решений.
● Кнопки (Push-button): одна кнопка — короткое нажатие для прокрутки, долгое — для отправки (режим scanAndSelect).
● I2C Клавиатуры: полноценный ввод. Например, M5Stack CardKB позволяет не только выбирать заготовки, но и печатать текст "с нуля". Клавиатура RAK14004 работает в режиме "одна кнопка — одно сообщение".

[Тонкости настройки (подводные камни)]

При настройке через CLI или вручную стоит учитывать несколько технических нюансов:

1. Формат сообщений: используйте вертикальную черту для разделения. Пример команды для CLI:

meshtastic --set-canned-message "Помогите|Координаты позже|Принято|На месте"

2. GPIO: если вы подключаете энкодер к плате (например, TTGO LoRa), вам нужно прописать выводы портов GPIO в настройках. Это строгое указание, к какому контакту платы что припаяно:

canned_message.inputbroker_pin_a — вывод A энкодера.
canned_message.inputbroker_pin_b — вывод B энкодера.
canned_message.inputbroker_pin_press — вывод кнопки нажатия энкодера.

3. Проблема с RAK14004: если у вас матричная клавиатура RAK14004 (3x4), то имейте в виду: четвертый ряд кнопок физически отсутствует, поэтому порядок сообщений сбивается. Например, кнопка 4 отправит 5-е сообщение из списка, а 4-е сообщение вы использовать не сможете.

Сообщество активно обсуждает развитие модуля. В планах — добавление макросов, чтобы вставлять в сообщения текущие координаты (`^L`), имя канала или другие динамические данные. Также ведутся эксперименты по использованию этого модуля на устройствах всего с одной кнопкой (T1000-E), хотя разработчики предупреждают, что это может приводить к случайным отправкам сообщений.

--get-canned-message

Покажет сообщение canned message plugin.

meshtastic --get-canned-message

--set-ringtone RINGTONE

Установит Notification Ringtone (до 230 символов).

meshtastic --set-ringtone "LeisureSuit:d=16,o=6,b=56:f.5,f#.5,g.5,g#5,32a#5,g#5,8c#.,a#5,32c#,a5,c#,d#.,c#"

Команда `--set-ringtone` (через CLI) используется для установки пользовательской мелодии на зуммер (пищалку) вашего устройства Meshtastic. Однако это не просто текст — мелодия должна быть задана в определённом музыкальном формате.

[Основная концепция: формат RTTTL]

В качестве значения RINGTONE вы должны передать строку в формате RTTTL (Ring Tone Transfer Text Language). Это текстовый стандарт, изначально использовавшийся для монофонических рингтонов в старых телефонах Nokia.

Строка RTTTL состоит из трёх частей, разделённых двоеточием: `имя:стандартные_настройки:ноты`.

- `имя`: любое название мелодии (например, `Mario`, `Signal`, `Beep`). Оно ни на что не влияет, кроме идентификации.

- `стандартные_настройки`: задают значения по умолчанию для всех нот, которые идут после. Пишутся через запятую в формате `ключ=значение`:

    - `d=` — длительность по умолчанию (например, `4` — четвертная нота, `8` — восьмая).
    - `o=` — октава по умолчанию (от `4` до `7` или `8`).
    - `b=` — темп в ударах в минуту (BPM).

- `ноты`: последовательность нот, которые нужно сыграть. Ноты могут быть с собственными параметрами (длительность, октава), которые переопределяют настройки по умолчанию.

    - `p` — пауза.
    - `c`, `d`, `e`, `f`, `g`, `a`, `h` (или `b`) — ноты. После ноты можно указать октаву (например, `c6`) и/или длительность перед нотой (например, `16c6`). Решетка `#` после ноты означает диез (например, `c#`).

Пример правильной строки RTTTL:

`Mario:d=4,o=5,b=100:16e6,16e6,32p,8e6,16c6,8e6,8g6,16p,8g,8p,8c6`

[Как использовать команду]

Так как строка RTTTL содержит специальные символы (двоеточия, запятые, решетки), её обязательно нужно заключать в кавычки (двойные или одинарные), чтобы командная строка (Bash, PowerShell и т.д.) правильно её обработала.

Полный пример команды:

meshtastic --set-ringtone "Mario:d=4,o=5,b=100:16e6,16e6,32p,8e6,16c6,8e6,8g6,16p,8g,8p,8c6"

 

[Что нужно, чтобы команда сработала]

Чтобы эта команда имела какой-либо эффект (и вы услышали мелодию), должны быть соблюдены следующие условия:

1. Требуется пассивный PWM-зуммер: к вашему устройству должен быть физически подключен пассивный пьезоизлучатель (PWM-зуммер). Активные зуммеры (которые пищат одним тоном при подаче питания) не подходят, потому что они не могут воспроизводить разные частоты для создания мелодии.

2. Модуль "Внешние уведомления" должен быть включен: эта настройка является частью модуля External Notification. Он должен быть активирован на устройстве.

3. Правильно настроен вывод порта GPIO: вы должны указать, к какому ножке порта GPIO подключен ваш зуммер. Например, для Heltec V4 часто используют пин GPIO 43.

Если вы установили мелодию, но звука нет — скорее всего, проблема в аппаратной части (не тот тип зуммера, не тот порт GPIO, нет питания) или модуль External Notification не включен.

[Альтернативные способы настройки]

Хотя команда `--set-ringtone` существует, основной и самый удобный способ установить мелодию — через мобильное приложение Meshtastic (Android / iOS).

Путь в приложении: `Настройки радио` → `Конфигурация модулей` → `Внешние уведомления` (External Notification) → поле `Мелодия` (Ringtone). Там же можно включить сам модуль и указать вывод зуммера.

Этот способ предпочтительнее для большинства пользователей, так как не требует запоминания синтаксиса RTTTL и работы с командной строкой.

--get-ringtone

Покажет сохраненный рингтон.

meshtastic --get-ringtone

--nodes

Печатает список узлов в виде удобной таблицы.

meshtastic --nodes

--qr

Отобразит URL и QR-код, соответствующие текущему primary-каналу.

Примечание: код Meshtastic QR (или Channel URL) позволяет пользователям быстро обмениваться настройками канала (Channel Configuration) и настройками LoRa (LoRa Configuration), что упрощает конфигурирование нескольких узлов с совместимыми настройками, чтобы организовать обмен сообщениями. Сканирование QR-кода применяет все включенные настройки канала и параметры конфигурации LoRa, поэтому обязательно ознакомьтесь с этими настройками, прежде чем продолжить. Сканируйте QR-коды только из надежных источников. Для дополнительной информации см. [3, 4].

meshtastic --qr

--qr-all

Отобразит URL и QR-код, соответствующие все сконфигурированные каналы на узле.

meshtastic --qr-all

--get [config_section]

Получение информации поля свойств, см. описание значений полей [5].

meshtastic --get lora
meshtastic --get lora.region

Чтобы увидеть все допустимые значения, передайте недопустимое значение, такое как 0:

meshtastic --get 0

--set [config_section].[option]  [value]

Установит значение поля свойств, см. описание значений полей [5].

meshtastic --set lora.region Unset

--seturl SETURL

Установит URL канала, который содержит конфигурацию LoRa плюс конфигурацию каналов. Полностью заменит вашу текущую конфигурацию и каналы.

meshtastic --seturl https://www.meshtastic.org/c/GAMiIE67C6zsNmlWQ-KE1tKt0fRKFciHka-DShI6G7ElvGOiKgZzaGFyZWQ=

--pos-fields POS_FIELDS

Команда --pos-fields в Meshtastic CLI настраивает, какие дополнительные поля будут включены в сообщения с вашей позицией, которые узел транслирует в mesh-сеть. По умолчанию в сообщение позиции входят широта, долгота, альтитуда (высота), скорость, курс (heading) и DOP (точность). Команда --pos-fields позволяет явно указать, какие именно поля из этого списка нужно отправлять, а какие — нет. С указанием 0 для значений выводит список текущих настроек.

meshtastic --pos-fields
meshtastic --pos-fields ALTITUDE HEADING SPEED

--ch-index CH_INDEX

Действует на канале с указанным индексом. Применяется к опциям, которые конфигурируют каналы (такие как --ch-set и --ch-del), а так же к опциям, которые посылают сообщения в mesh (такие как --sendtext и --traceroute).

meshtastic --ch-index 1 --ch-disable

--ch-add CH_ADD

Добавит вторичный канал, вы должны указать имя канала. Несовместимо с --ch-index. Если вы передали --ch-add, то любые последующие --ch-set и другие команды, которые используют канал, будут использовать индекс нового добавленного канала.

meshtastic --ch-add testing-channel

--ch-del

Удалит канал, указанный --ch-index.

meshtastic --ch-index 1 --ch-del

--ch-enable (устарело)

Эта опция устарела. Использование --ch-add является предпочтительным, чтобы гарантировать отсутствие промежутков в списке каналов. Разрешит канал, указанный --ch-index.

meshtastic --ch-index 1 --ch-enable

--ch-disable (устарело)

Эта опция устарела. Использование --ch-del является предпочтительным, чтобы гарантировать отсутствие промежутков в списке каналов. Запретит канал, указанный --ch-index.

meshtastic --ch-index 1 --ch-disable

--ch-set CH_SET CH_SET

Установит параметр канала на канале, указанном --ch-index.

meshtastic --ch-set id 1234 --ch-index 0

--ch-vlongslow

Изменит предварительную настройку модема (modem preset) на VERY_LONG_SLOW.

meshtastic --ch-vlongslow

--ch-longslow

Изменит предварительную настройку модема (modem preset) на LONG_SLOW.

meshtastic --ch-longslow

--ch-longfast

Изменит предварительную настройку модема (modem preset) на LONG_FAST (значение по умолчанию).

meshtastic --ch-longfast

--ch-medslow

Изменит предварительную настройку модема (modem preset) на MEDIUM_SLOW.

meshtastic --ch-medslow

--ch-medfast

Изменит предварительную настройку модема (modem preset) на MEDIUM_FAST.

meshtastic --ch-medfast

--ch-shortslow

Изменит предварительную настройку модема (modem preset) на SHORT_SLOW.

meshtastic --ch-shortslow

--ch-shortfast

Изменит предварительную настройку модема (modem preset) на SHORT_FAST.

meshtastic --ch-shortfast

--set-owner SET_OWNER

Установит имя владельца устройства, иногда это имя называется длинным именем (long name).

meshtastic --set-owner "MeshyJohn"

--set-owner-short SET_OWNER_SHORT

Установит короткое имя владельца устройства (short name, максимум 4 символа).

meshtastic --set-owner-short "MJ"

--set-ham SET_HAM

Установит лицензированный Ham ID (установкой имени владельца) и выключит шифрование на primary-канале. Чтобы запретить режим Ham, используйте --set-owner и --set-owner-short для сброса имен владельца, и используйте команды --seturl или --ch-set для конфигурирования каналов с именем и шифрованием, которые вы хотите использовать. Или используйте --factory-reset для сброса в значения по умолчанию.

meshtastic --set-ham KI1345

--dest DEST

Идентификатор узла назначения (node ID) для любых команд отправки, если этот идентификатор не передан другим способом. Используется для удаленного администрирования узла (Remote Node Administration). В многих шеллах (интерпретаторах командной строки) восклицательные знаки, если они не заключены в одинарные кавычки, вызывают особое поведение.

meshtastic --dest '!28979058' --set-owner "MeshyJohn"

--sendtext SENDTEXT

Отправит текстовое сообщение. Можно указать индекс канала (--ch-index) и/или узел назначения, получателя (--dest).

meshtastic --sendtext 'Hello Mesh!'
meshtastic --ch-index 1 --sendtext 'Hello secondary channel!'

--traceroute TRACEROUTE

Трассировка маршрута от подключенного узла к узлу назначения. Вам нужно передать ID узла назначения в качестве аргумента, и можно передать --ch-index для указания канала. Узел, который вы трассируете, должен быть настроен на тот же канал (с тем же ключом шифрования). Только узлы, разделяющие этот канал, будут идентифицировать себя в ответе. На прошивке недостаточно новой (или в определенных режимах), другие узлы могут быть включены в ответ как !ffffffff, но не с их реальным ID.

meshtastic --traceroute '!ba4bf9d0'

--request-telemetry

Запрашивает телеметрию из узла. Вам нужно передать ID узла назначения с помощью --dest. Для ретрансляторов использование десятичного ID узла может быть более эффективным, но шестнадцатеричный ID также должен работать.

meshtastic --request-telemetry --dest '!ba4bf9d0'
meshtastic --request-telemetry --dest 1828779180

--request-position

Запрашивает позицию узла. Вам нужно передать ID узла назначения с помощью --dest.

meshtastic --request-position --dest '!ba4bf9d0' --ch-index 1

--ack

Используется совместно с --sendtext и другими командами для ожидания подтверждения. Не все команды будут способны возвратить подтверждение. Лучше всего использовать для команд, которые указывают один узел назначения.

meshtastic --sendtext 'Hello Mesh!' --dest '!28979058' --ack

--reboot

Указание узлу перезагрузиться.

meshtastic --reboot

--shutdown

Указание узлу выключиться.

meshtastic --shutdown

--factory-reset

Указание узлу инсталлировать конфигурацию по умолчанию.

meshtastic --factory-reset

--reset-nodedb

Указание узлу очистить свой список узлов (NodeDB).

meshtastic --reset-nodedb

--remove-node NODE

Указание узлу удалить указанный узел из базы данных узлов (NodeDB).

meshtastic --remove-node '!48759737'

--reply

Команда --reply включает на устройстве режим "эхо-ретранслятора" (или "болвана"). Когда эта команда активна, устройство слушает эфир, и при получении любого сообщения (в первичном канале) оно автоматически отправляет обратно в этот же канал повтор этого сообщения, добавляя к нему некоторую служебную информацию.

meshtastic --reply

--no-time

Подавление отправки текущего времени в mesh при старте (startup). Может улучшить надежность и уменьшить время запуска.

meshtastic --port /dev/ttyUSB0 --no-time

--no-nodes

Инструктирует узел не посылать при старте информацию об узлах их NodeDB. Требует наличия firmware достаточно высокой версии. Команды, использующие информацию об узлах, могут работать непредсказуемо, но это может повысить эффективность для команд, которые не используют информацию об узлах.

meshtastic --no-nodes --no-time --sendtext "Firing off a quick message"

--wait-to-disconnect WAIT_TO_DISCONNECT

Указывает устройству подождать указанное количество секунд после выполнения всех остальных команд перед тем, как разорвать последовательное (USB/Serial) соединение. Добавление времени ожидания может улучшить надежность работы. По умолчанию 5 секунд, если время ожидания не указано.

meshtastic --set lora.channel_num 20 --wait-to-disconnect 10

--setalt SETALT

Установит высоту (altitude, что позволяет узнать высоту без использования GPS), и разрешает режим фиксированного расположения. Может использоваться только для локальных узлов, не вместе с --dest.

meshtastic --setalt 120

--setlat SETLAT

Установит широту (latitude) устройства (можно использовать без GPS), и разрешает фиксированную позицию. Может использоваться только для локальных узлов, не вместе с --dest.

meshtastic --setlat 25.2

--setlon SETLON

Установит долготу (longitude) устройства (можно использовать без GPS), и разрешает фиксированную позицию. Может использоваться только для локальных узлов, не вместе с --dest.

meshtastic --setlon -16.8

--remove-position

Очисти текущую установленную фиксированную позицию и запретит режим фиксированного позиционирования. Может использоваться только для локальных узлов, не вместе с --dest.

meshtastic --remove-position

--debug

Покажет отладочные сообщения лога библиотеки API.

meshtastic --debug --info

--listen

Переводит CLI в режим непрерывного прослушивания потока сообщений от устройства. Вместо того чтобы выполнить одну команду и завершиться, CLI остается открытым и в реальном времени отображает все входящие сообщения в формате Protocol Buffer (protobuf). Разрешает --debug, даже если это не было дополнительно предоставлено вместе с --listen.

meshtastic --listen

--test

Запустит стресс-тест на всех подключенных устройствах Meshtastic.

meshtastic --test

--ble-scan

Сканирует наличие доступных устройств Meshtastic с помощью BLE. Эта команда перечислит обнаруженные устройства, предоставляя удобный метод идентификации устройств для соединения через BLE.

meshtastic --ble-scan

--noproto

Не запускать API, переводит CLI в режим "глупого" последовательного терминала. В этом режиме CLI НЕ запускает API Meshtastic и НЕ интерпретирует сообщения в формате Protocol Buffer. Вместо этого он просто открывает сырое последовательное соединение и передает всё, что приходит от устройства, напрямую в stdout (обычно в виде байтов или текста). Команда зависит от физического последовательного соединения. Она выполнит подключение, но не будет показывать информацию при подключении через сеть (--host) или Bluetooth (--ble).

meshtastic --noproto

[Аргументы Remote Hardware]

--gpio-wrb GPIO_WRB GPIO_WRB

Установит уровень определенного порта GPIO# в 1 или 0.

meshtastic --port /dev/ttyUSB0 --gpio-wrb 4 1 --dest '!28979058'

--gpio-rd GPIO_RD

Прочитает значение из GPIO по маске.

meshtastic --port /dev/ttyUSB0 --gpio-rd 0x10 --dest '!28979058'

--gpio-watch GPIO_WATCH

Запустит отслеживание изменений GPIO по маске.

meshtastic --port /dev/ttyUSB0 --gpio-watch 0x10 --dest '!28979058'

[Аргументы туннеля]

--tunnel

Предназначено только для Linux, очень экспериментальная команда. Низкая полоса пропускания и низкая надежность. Создаст устройство туннеля TUN для перенаправления IP-пакетов через mesh.

[Ссылки]

1. Meshtastic Python CLI Guide.
2. Meshtastic Python CLI installation.
3. Meshtastic Channel Configuration.
4. Meshtastic LoRa Configuration.
5. Meshtastic: описание значений полей конфигурации.

 

Добавить комментарий


Защитный код
Обновить

Top of Page