mesh-test-bot

Começa aqui

Três passos. Não precisas de saber nada sobre Docker: copias umas linhas, colas, e carregas em Enter.

Antes de começar

1. Instala o Docker

O Docker é uma aplicação gratuita que corre o bot por ti, para não teres de instalar mais nada.

2. Escolhe a tua situação

📁 Primeiro, escolhe onde o bot vai ficar. Os comandos abaixo criam uma pasta mesh-test-bot dentro da pasta onde o terminal está. Quando abres um terminal novo, essa é a tua pasta pessoal, e é um bom sítio. Para usar outra pasta, vai primeiro até lá com cd e o nome da pasta. Evita as Transferências e pastas sincronizadas com a nuvem, como o OneDrive ou o iCloud.

Não apagues nem movas esta pasta. Guarda as tuas definições e os teus relatórios, e vais precisar dela sempre que quiseres ver, alterar ou parar o bot.

Um rádio sem WiFi é normalmente um RAK4631 ou um T-Echo. Abre a opção que te serve.

📶 Rádio com WiFi · Mac, Raspberry Pi ou Linux
  1. Liga o rádio ao teu WiFi na app Meshtastic, e aponta o endereço IP (algo como 192.168.1.50). Costuma aparecer no ecrã do rádio, ou na lista de dispositivos do teu router.
  2. Aponta o nome e o número do canal de testes: o primeiro canal na app é o 0, o seguinte é o 1, e assim por diante.
  3. Abre o Terminal e cola esta linha:
    curl -fsSL https://raw.githubusercontent.com/cunhaax/mesh-test-bot/master/install/install.sh | sh
  4. Responde às perguntas. Carrega em Enter para aceitar a sugestão entre [parênteses retos]; só precisas de escrever o IP do rádio, o número e o nome do canal, e a tua cidade. As perguntas aparecem em inglês.
  5. Arranca o bot colando estas linhas. Podes ignorar o texto que o instalador mostrou no fim:
    cd mesh-test-bot
    docker compose pull
    docker compose up -d
    Se escolheste configurar o MeshMonitor, segue antes o texto do instalador.
📶 Rádio com WiFi · Windows
  1. Liga o rádio ao teu WiFi na app Meshtastic, e aponta o endereço IP (algo como 192.168.1.50). Costuma aparecer no ecrã do rádio, ou na lista de dispositivos do teu router.
  2. Aponta o nome e o número do canal de testes: o primeiro canal na app é o 0, o seguinte é o 1, e assim por diante.
  3. Abre o PowerShell a partir do menu Iniciar e cola estas linhas. A última abre um ficheiro no Bloco de Notas:
    mkdir -Force mesh-test-bot\data
    cd mesh-test-bot
    curl.exe -fsSLO https://raw.githubusercontent.com/cunhaax/mesh-test-bot/master/install/docker-compose.yml
    if (!(Test-Path .env)) { curl.exe -fsSL https://raw.githubusercontent.com/cunhaax/mesh-test-bot/master/install/env.example -o .env }
    notepad .env
    Faz isto uma vez. Se a pasta já existir, corre cd mesh-test-bot e depois só notepad .env.
  4. No Bloco de Notas, muda o texto depois do = nestas quatro linhas: MTBOT_HOST (o IP), MTBOT_CHANNEL (o número), MTBOT_CHANNEL_NAME e MTBOT_PLACE (a tua cidade). Guarda e fecha.
  5. De volta ao PowerShell, cola:
    docker compose up -d
🔵 Rádio só com Bluetooth · Raspberry Pi ou Linux

Isto arranca três coisas em conjunto: uma ponte Bluetooth, o MeshMonitor e o bot. Mantém o rádio a cerca de 10 m do computador, no máximo.

Primeiro, desliga o telemóvel do rádio, ou desativa o Bluetooth do telemóvel. O rádio aceita uma ligação Bluetooth de cada vez: enquanto o telemóvel a ocupar, o computador não encontra o rádio, e o telemóvel não o pode usar durante os testes.

  1. Emparelha o rádio, uma vez. Cola estas linhas uma a uma:
    bluetoothctl
    agent on
    default-agent
    scan on
    Espera por Meshtastic_XXXX e aponta o endereço; depois, com o teu endereço:
    pair AA:BB:CC:DD:EE:FF
    trust AA:BB:CC:DD:EE:FF
    exit
    O PIN está no ecrã do rádio. Um rádio sem ecrã usa 123456, a não ser que o tenhas mudado.
  2. Descobre o endereço IP deste computador. É o primeiro número que isto mostra, algo como 192.168.1.60:
    hostname -I
  3. Descarrega os ficheiros e abre as definições:
    mkdir -p mesh-test-bot/data && cd mesh-test-bot
    curl -fsSL https://raw.githubusercontent.com/cunhaax/mesh-test-bot/master/install/with-ble.yml -o docker-compose.yml
    [ -e .env ] || curl -fsSL https://raw.githubusercontent.com/cunhaax/mesh-test-bot/master/install/ble.env.example -o .env
    nano .env
    Faz isto uma vez. Se a pasta já existir, corre cd mesh-test-bot e depois só nano .env.
  4. Muda os cinco valores. Em BLE_ADDRESS, usa o endereço do rádio. Em ALLOWED_ORIGINS, escreve http://, o IP deste computador e :8080, por exemplo http://192.168.1.60:8080. Depois define o número do canal, o nome do canal e a tua cidade. Para guardar e sair do nano: Ctrl+O, Enter, Ctrl+X.
  5. Arranca tudo:
    docker compose up -d
  6. Num navegador, abre exatamente o endereço que escreveste em ALLOWED_ORIGINS. Entra com admin / changeme e muda a palavra-passe.
  7. Vai a Dashboard → Sources, edita a fonte do rádio e ativa Enable Virtual Node, com a porta 4404 e Admin commands desligado.
  8. Espera alguns minutos. No passo 3 abaixo, as linhas Startup check FAILED anteriores a este momento são normais. O bot continua a tentar até veres Startup check OK.

Ninguém testou ainda esta configuração com o bot num rádio real. Se experimentares, conta-nos como correu. Mais detalhes (em inglês).

🔵 Rádio só com Bluetooth · Windows

O Docker Desktop não chega ao Bluetooth, por isso uma pequena aplicação do Windows trata dessa parte. Essa aplicação também tem de estar a correr à hora do teste.

Primeiro, desliga o telemóvel do rádio, ou desativa o Bluetooth do telemóvel. O rádio aceita uma ligação Bluetooth de cada vez.

  1. Emparelha o rádio em Definições → Bluetooth e dispositivos → Adicionar dispositivo. O PIN está no ecrã do rádio. Um rádio sem ecrã usa 123456, a não ser que o tenhas mudado. Depois abre o rádio nessa lista e aponta o endereço Bluetooth.
  2. Descarrega o meshtastic-ble-bridge.exe da página BLE Bridge do MeshMonitor (em inglês) e corre-o. Aparece como um ícone junto ao relógio.
  3. Clica no ícone com o botão direito e abre Settings. Indica o endereço Bluetooth, deixa a porta em 4403, ativa Auto-start e clica em Connect. Depois de reiniciar o computador, abre a aplicação outra vez. Se o Windows perguntar pela firewall, não autorizes outros computadores.
  4. Abre o PowerShell a partir do menu Iniciar e cola estas linhas. A última abre um ficheiro no Bloco de Notas:
    mkdir -Force mesh-test-bot\data
    cd mesh-test-bot
    curl.exe -fsSLO https://raw.githubusercontent.com/cunhaax/mesh-test-bot/master/install/docker-compose.yml
    if (!(Test-Path .env)) { curl.exe -fsSL https://raw.githubusercontent.com/cunhaax/mesh-test-bot/master/install/env.example -o .env }
    notepad .env
    Faz isto uma vez. Se a pasta já existir, corre cd mesh-test-bot e depois só notepad .env.
  5. No Bloco de Notas, muda a linha MTBOT_HOST para MTBOT_HOST=host.docker.internal. Depois muda o texto depois do = em MTBOT_CHANNEL (o número), MTBOT_CHANNEL_NAME e MTBOT_PLACE (a tua cidade). Guarda e fecha.
  6. De volta ao PowerShell, cola:
    docker compose up -d

Ninguém testou ainda esta configuração com o bot. Se experimentares, conta-nos como correu.

🔵 Rádio só com Bluetooth · Mac

O Bluetooth não funciona aqui: o Docker num Mac não lhe chega, e não há aplicação de ponte para Mac. Usa um Raspberry Pi se tiveres um, ou liga o rádio por cabo USB:

  1. Segue estes passos (em inglês) para arrancar o socat. Precisas do Homebrew para o instalar. Deixa essa janela do Terminal aberta, também à hora do teste.
  2. Numa nova janela do Terminal, segue os passos de WiFi para Mac acima. Quando o instalador pedir o IP do rádio, escreve host.docker.internal.

Ninguém testou ainda esta configuração com o bot. Se experimentares, conta-nos como correu.

3. Confirma que funciona

A partir da pasta mesh-test-bot, cola a linha abaixo. Se abriste um terminal novo, volta primeiro à pasta com cd mesh-test-bot (a partir do sítio onde a criaste). Todos os comandos docker compose desta página têm de correr nessa pasta.

docker compose logs -f --no-log-prefix bot

Em cerca de um minuto deves ver Startup check OK. A primeira linha diz quando é a próxima sessão. Carrega em Ctrl+C para deixar de ver: o bot continua a correr.

Se escolheste on-demand no instalador, não há verificação inicial: vais ver Sending at:, e o bot para quando a sessão acaba.

Depois de cada sessão, o relatório fica na pasta data, em report.txt.

Se algo correr mal