
Este node permite enviar e receber pacotes de/para uma rede Meshtastic utilizando um dispositivo conectado através de HTTP(S) ou porta serial. É baseado na biblioteca Meshtastic Web.
Destaques #
- Envia e recebe mensagens de/para qualquer dispositivo na Mesh
- Supervisão e monitoramento do status do dispositivo conectado
- Assinar e receber qualquer tipo de evento suportado pela biblioteca Meshtastic Web (exemplos: Atak, Posição, Teste de alcance, mapas, armazenar/enviar, etc…)
- Enviar pacotes para qualquer Meshtastic APP (port num)
- Plug and Play: não requer servidores adicionais, containers, Python, CLI ou arquivos binários
- Suporte indireto ao MQTT através de canais uplink/downlink
- Permite conectar-se a múltiplos rádios Meshtastic simultaneamente
Limitações #
- Conectar através de servidor MQTT: esta função não é suportada pela biblioteca Meshtastic Web
- Conectar ao dispositivo através de porta Bluetooth: função ainda não implementada pela biblioteca Meshtastic Web
Instalação - processo automático (recommendado) #
- Buscar o pacote
@danpeig/node-red-meshtastic-msgna biblioteca comunitária do Node-RED ou no NPM e adicionar.
Instalação manual #
- Incluir todos os arquivos do projeto em uma pasta chamada
node-red-meshtastic-msgdentro do diretório raíz do Node-RED (pasta com o arquivosettings.js) - Executar
npm install ./node-red-meshtastic-msg
Para desinstalar, executar npm remove @danpeig/node-red-meshtastic-msg a partir do mesmo diretório.
Problemas conhecidos #
- Dispositivo conecta, envia mensangens mas não recebe: Este problema está no dispositivo Meshtastic que possívelvelmente está sobrecarregado:
- Reiniciar o dispositivo
- Desligar o TLS
- Desligar o MQTT
- Certificar que nenhum outro equipamento está conectado ao radio (app do celular, por exemplo)
- Desligar o Bluetooth
- Tentar conectar usando o IP ao invés do hostname
- Desligar outros módulos que não estão sendo usados
- Conectar via serial
Exemplos #
Um exemplo de todos os flows pode ser encontrado no sub-diretório examples.
Bonus #
O arquivo fundamentals_meshtastic_web.mjsilustra como usar a biblioteca Meshtastic Web a partir de puro Javascript (Sem TypeScript, sem React, sem compilar).
Licença #
Este software foi criado por Daniel BP e está disponível segundo a licença MIT.
Guia de referência do node #
Esta informação pode ser encontrada nas páginas de ajuda, diretamente a partir da interface do Node-RED.
Node para envio de texto #
Envia uma mensagem de texto a partir do dispositivo conectado
Entradas #
msg.payload(string) : mensagem de texto a ser enviada para a rede[msg.channel](integer): o canal do dispositivo Meshtastic. Padrão é 0 (primary)[msg.destination](integer): o número do node de destino, broadcast ou self. Padrão broadcast[msg.wantAck](boolean): se o dispositivo destino deve reportar o recebimento. Padrão true
[] = campos opcionais
Node para recebimento de texto #
Recebe uma mensagem de texto a partir do dispositivo conectado
Saídas #
msg(json) : objeto com todo o pacotemsg.payload(string): texto da mensagem
Node para status #
Monitora o código de status do dispositivo Meshtastic
Saídas #
msg.payload(integer): código de status do dispositivomsg.text(string): status do dispositivo
Node para recebimento de eventos #
Este node vai monitorar um evento pré-definido e encaminhar o pacote recebido Tipicamente a saída é um campo JSON porém alguns eventos reportam números e outros strings de texto. A lista de eventos pode ser encontrada em Mesthastic.js Event System Class
Configurações #
event(string): evento para monitorar
Saídas #
msg(json): dados do evento
Node para envio de pacote genérico #
Envia um pacote genérico ao dispositivo conectado. O pacote de entrada pode estar na forma de uma string (msg.payload) ou no formato Uint8Array (msg.byteData).
Entradas #
msg.payload(string): Será convertido automaticamente para Uint8Array e utilizado em caso do byteData não definido. Se byteData estiver definido, é ignorado.[msg.byteData](json) : Dados codificados no formato Uint8Array. Se definido, será utilizado no lugar do payload. Exemplo [72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33][msg.portNum](integer): Número do aplicativo. Padrão 1 (text messsage app).[msg.destination](integer string): Número do node de destino, broadcast ou self. Padrão: broadcast[msg.channel](integer): Número do canal, padrão 0 (canal primário)[msg.wantAck](boolean): Confirmação, padrão true[msg.wantResponse](boolean): Padrão false[msg.echoResponse](boolean): Padrão false[msg.replyId](integer): Padrão null[msg.emoji](integer): Padrão null
[] = campos opcionais
Node para leitura do log do Meshtastic.js #
Exibe o log da biblioteca Mesthastic.js. Útil para identificar erros ou monitorar o status. Notas: Este não é o log do Node-RED ou do rádio Lora.
Saídas #
msg(json) : objeto com todas as propriedades da mensagemmsg.payload(string): texto contando apenas a descrição (campos \[0\]e \[1\]concatenados)
Node para configuração do dispositivo #
Este node permite configurar o dispositivo a ser conectado. O protocolo de conexão é HTTP (ou HTTPS). Serial (USB), Bluetooth ou MQTT não são suportados.
Opções #
Connection mode: Selecionar o tipo de conexão. Padrão é http.IP, hostname or device(string) : Endereço IP address ou hostname do dispositivo Meshtastic a ser conectado. Exemplos: 192.168.0.15, meshtastic.local ou /dev/ttyUSB0Fetch interval(integer): Intervalo para atualização do dispositivo. Padrão é 5000ms.Log level(integer): Nível de detalhe do log de informações. Padrão é 3, para produção melhor mudar para 5.
Downloads #
- Versão: 3.4.1
- Plataformas: Linux, Windows, Mac
- Tamanho: 105 KB
- Download links:
- Checksum:
SHA256: 13e71e57cfc0678898b9ab4b9cfe13f7814c8c64c0c1bb9fa9a0987bec9bf884
Galeria #