usage

Этот раздел описывает использование исполняемого файла командной строки «meshtastic», который отображает пакеты, отправленные по сети, в формате JSON, и позволяет просматривать информацию отладки последовательного порта от устройств Meshtastic.

:::note Команда meshtastic не запускается внутри python, а является скриптом, запускаемым из приглашения оболочки вашей операционной системы. Когда вы вводите «meshtastic» и приглашение не может найти команду в Windows, проверьте, что директория «scripts» python находится в вашем PATH. :::

Просмотр последовательного вывода

Команда --noproto в Meshtastic Python CLI используется для отключения API и работы просто как «глупый последовательный терминал». Этот режим работы позволяет API и функциям устройства оставаться доступными для обычного использования, одновременно предоставляя окно в сырой последовательный вывод. Эта функция может быть особенно полезна для отладки, разработки или понимания низкоуровневой связи между устройствами. Зависит от физического кабельного последовательного соединения. Она подключится, но не отобразит информацию по сети (--host) или Bluetooth (--ble) соединению.

```shellsession title="Example Usage" user@host % meshtastic --noproto

You should see results similar to this:

WARNING file:mesh_interface.py _sendToRadio line:681 Not sending packet because protocol use is disabled by noProto Connected to radio WARNING file:mesh_interface.py _sendPacket line:531 Not sending packet because protocol use is disabled by noProto INFO | 18:38:04 711 [DeviceTelemetryModule] (Sending): air_util_tx=0.116361, channel_utilization=1.916667, battery_level=101, voltage=4.171000 DEBUG | 18:38:04 711 [DeviceTelemetryModule] updateTelemetry LOCAL DEBUG | 18:38:04 711 [DeviceTelemetryModule] Node status update: 2 online, 4 total INFO | 18:38:04 711 [DeviceTelemetryModule] Sending packet to phone INFO | 18:38:04 711 Telling client we have new packets 28


## Получение списка пользовательских предпочтений

Вы можете получить список пользовательских предпочтений, запустив `--get` с недопустимым атрибутом, таким как `all`.

```shell
meshtastic --get all

Изменение настроек

Вы также можете использовать эту утилиту для установки любых параметров устройства, которые хранятся в постоянном хранилище. Например, вот как установить устройство так, чтобы оно поддерживало соединение Bluetooth активным в течение восьми часов (любое использование протокола Bluetooth с вашего телефона сбросит этот таймер)

```shell title="Expected Output"

You should see a result similar to this:

mydir$ meshtastic --set power.wait_bluetooth_secs 28800 Connected to radio... Setting power.wait_bluetooth_secs to 28800 Writing modified preferences to device...


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

```shell
meshtastic --setlat 25.2 --setlon -16.8 --setalt 120

Или чтобы настроить плату на базе ESP32 для подключения к WiFi-сети в качестве станции:

meshtastic --set network.wifi_ssid mywifissid --set network.wifi_psk mywifipsw --set network.wifi_enabled 1

:::note Полный список предпочтений, которые можно установить (и их документацию), можно найти в protobuf'ах. :::

Изменение настроек канала

Настройки канала также можно изменить, используя стандартный (делимый) URL meshtastic или установить конкретный параметр канала (для продвинутых пользователей).

:::warning Meshtastic кодирует радиоканал и PSK в URL канала. Все узлы должны подключиться к каналу заново, используя предоставленный URL после изменения в этом разделе, выполнив переключатель --info. :::

meshtastic --ch-set name mychan --ch-index 1 --info

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

meshtastic --ch-index 1 --ch-set psk 0x1a1a1a1a2b2b2b2b1a1a1a1a2b2b2b2b1a1a1a1a2b2b2b2b1a1a1a1a2b2b2b2b --info

Используйте --ch-set psk none --ch-index 0, чтобы отключить шифрование.

Используйте --ch-set psk random --ch-index 0, чтобы назначить новый (высококачественный) случайный ключ AES256 основному каналу (аналогично тому, что делает Android-приложение при создании новых каналов).

Используйте --ch-set psk default --ch-index 0, чтобы восстановить стандартный ключ «default» (минимально защищенный, поскольку он находится в исходном коде для чтения кем угодно) AES128.

Используйте --ch-set psk base64:{key} --ch-index {index}, чтобы установить PSK канала для известной сущности

Все команды ch-set должны иметь указанный параметр ch-index:

meshtastic --ch-index 1 --ch-set name mychan --info

Поддержка радиолюбительского радио

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

```shell title="Expected Output"

You should see a result similar to this:

mydir$ meshtastic --set-ham KI1345 Connected to radio Setting Ham ID to KI1345 and turning off encryption Writing modified channels to device


Переключение `set-ham` изменяет настройки вашего устройства следующим образом.

|   Настройка    | Значение по умолчанию `set-ham` |                                 Обычное значение по умолчанию                                 |
| :------------: | :-----------------------------: | :--------------------------------------------------------------------------------------------: |
| `IsLicensed`   |             `true`              | См. [Конфигурация пользователя - IsLicensed](../../../docs/configuration/radio/user.html#is-licensed-ham) |
|  `LongName`    |      _Ваш CallSign_             |     См. [Конфигурация пользователя - LongName](../../../docs/configuration/radio/user.html#long-name)     |
| `ShortName`    |    _Сокр. CallSign_             |   См. [Конфигурация пользователя - ShortName](../../../docs/configuration/radio/user.html#short-name)    |
|     `PSK`      |              `""`               |              См. [Настройки канала - PSK](#changing-the-preshared-key)                         |

## Изменение предустановленного ключа

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

```shell
meshtastic --ch-set psk 0x1a1a1a1a2b2b2b2b1a1a1a1a2b2b2b2b1a1a1a1a2b2b2b2b1a1a1a1a2b2b2b2b --info

Используйте --ch-set psk none, чтобы отключить шифрование.

Использование --ch-set psk random назначит новый (высококачественный) случайный ключ AES256 основному каналу (аналогично тому, что делает Android-приложение при создании новых каналов).

Использование --ch-set psk default восстановит стандартный ключ «default» (минимально защищенный, поскольку он находится в исходном коде для чтения кем угодно) AES128.

Все команды «ch-set» по умолчанию применяются к основному каналу с индексом 0, но могут быть применены к другим каналам с параметром «ch-index».

Использование BLE через Python CLI

Python CLI поддерживает взаимодействие с устройствами Meshtastic через Bluetooth Low Energy (BLE), помимо стандартных последовательных и TCP/IP-соединений. Для использования BLE потребуется Bluetooth-адаптер на вашем компьютере.

Сканирование BLE-устройств

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

meshtastic --ble-scan

Это выведет список всех устройств Meshtastic, обнаруживаемых по BLE, вместе с их адресами и именами в следующем формате:

Found: name='Meshtastic_1234' address='AA11BB22-CC33-DD44-EE55-FF6677889900'
BLE scan finished

Доступные команды

После получения адреса или имени устройства вы можете использовать его вместе с обычными командами Python CLI, такими как --info, --nodes, --export-config и т. д., но с опцией --ble для взаимодействия через BLE вместо последовательного порта.

Вы можете использовать либо имя, либо адрес для выполнения команд.

meshtastic --ble <name> --info
meshtastic --ble <address> --nodes

Впервые при использовании опции --ble для конкретного устройства вас попросят ввести PIN-код BLE (как обычно для клиента). После сопряжения этот шаг не потребуется, если вы не забудете устройство.

:::note На Linux может потребоваться сначала выполнить сопряжение BLE-устройства с помощью bluetoothctl. Это позволяет ввести требуемый PIN для сопряжения. :::

Дополнительные примеры BLE

Сканирование устройств и получение информации с первого:

meshtastic --ble-scan
# Sample output:
# Found: name='Meshtastic_1234' address='AA11BB22-CC33-DD44-EE55-FF6677889900'
# Found: name='Meshtastic_5678' address='FF00DD00-AA11-BB22-CC33-DD44EE5566FF'
BLE scan finished

meshtastic --ble AA11BB22-CC33-DD44-EE55-FF6677889900 --info

Подключение к устройству по имени и чтение списка узлов:

meshtastic --ble Meshtastic_1234 --nodes

Экспорт конфигурации устройства с --export-config

meshtastic --ble Meshtastic_1234 --export-config > config.yaml

Отправка команды на удаленное устройство с опцией --dest:

meshtastic --dest '!fe1932db4' --set device.is_managed false --ble Meshtastic_9abc

Для отладки вы можете включить подробное логирование BLE, добавив флаг --debug:

meshtastic --ble AA11BB22-CC33-DD44-EE55-FF6677889900 --debug --info

ЧАВО/часто встречающиеся проблемы

Это сборник распространенных вопросов и ответов с нашего дружелюбного форума.

Отказано в доступе: ‘/dev/ttyUSB0’

Это указывает на проблему с разрешениями ОС для доступа вашего пользователя к USB- последовательному порту. Обычно это исправляется следующим образом.

sudo usermod -a -G dialout <username>

Если добавление вашего пользователя в группу dialout не работает, вы можете использовать следующую команду, чтобы узнать, в какую группу добавить вашего пользователя. В этом примере (из Arch Linux) группа была «uucp»

❯ ls -al /dev/ttyACM0
crw-rw---- 1 root uucp 166, 0 Jul 20 21:52 /dev/ttyACM0

Mac OS Big Sur

Существует проблема с Big Sur и pyserial. Обходной путь — установить более новую версию pyserial:

pip3 install -U --pre pyserial