Skip to content

Manual do CLI — SIMUT (perfil completo)

Leia isto antes do resto. Desde a v1.5.6-beta existem dois perfis de CLI, e esta referência cobre o completo; a imagem release traz só o console de emergência de 15 comandos.

Perfil Como obter O que tem
Emergência (padrão) pico_w_release e pico_w_alpha — é o que vem nos zips de release 15 comandos, prompt único SIMUT>
Completo pico_w_test (compilar da fonte) e pico_w_air, desde 18/09/2026 os 56 comandos e os 4 modos descritos abaixo

O Air ficou no console de emergência enquanto a CLI completa (+45.056 B) não cabia na imagem; a dieta da v2.4.9-beta abriu espaço. Ele é justamente o build que mais precisa dela: sem display, o console serial/BT é a única interface local que existe.

Toda configuração vive na interface web. O console serial da imagem de release existe para o caso em que a web não pode ser alcançada: descobrir o IP, ler o log, resetar a senha do admin, formatar, reiniciar.

Se você digitar um comando deste manual e receber “Comando desconhecido. As configurações ficam na interface web”, é isso: o comando existe, mas mudou de lugar.

O console de emergência, na íntegra:

show net status              IP, RSSI, hora — encontrar o dispositivo
show system info             Nome, firmware, serial, SSID do WiFi
show system log              Despeja o log de eventos do flash
debug on | off               Transmite os logs neste console ao vivo
system admin reset [confirm] Nova senha de admin aleatória, mostrada uma vez (gravada na flash)
system format [confirm]      Reformata o LittleFS, mantém o firmware
system https off [confirm]   Apaga o par de certificados e volta p/ HTTP
system factory [confirm]     Apaga TODA a config + reinicia
system ssid <nome>           Grava o SSID na hora (sem write memory); reload confirm p/ reconectar
system pass <senha>          Grava a senha do Wi-Fi na hora; idem
system cors <origem>|off     Origem da página do gerenciador web; grava na hora, vale no próximo boot
ap                           Sobe o ponto de acesso de configuração (WPA2, chave neste console)
time <AAAA-MM-DD> <HH:MM:SS> Acerta o relógio na hora local; vale até o próximo reboot
reload [confirm]             Reinicia agora
help                         Esta lista

O restante deste documento vale para o perfil completo (pico_w_test e pico_w_air; no Air, some a air status|hibernate|stop|idle|charger).

Visão geral

Aplica-se ao perfil completo. Na imagem de release não há modos: o prompt é sempre SIMUT> e os 15 comandos acima valem nele.

O SIMUT adota o modelo Cisco IOS com 4 modos hierárquicos. Cada modo tem seu próprio prompt e conjunto de comandos. O caractere ? mostra os comandos disponíveis no modo atual.

Árvore de modos

SIMUT>                   User EXEC — diagnóstico, telemetria, help
  └── enable ─────────────────────────────────────────────────────┐
SIMUT#                   Privileged EXEC — manutenção, salvar,    │
  │                      reiniciar, sensores, entrada p/ config   │
  ├── configure terminal ────────────────────────────────────┐    │
  │  SIMUT(config)#     Global Config — sistema, rede,       │    │
  │                     telemetria, usuários                 │    │
  │    ├── sensor <N> ─────────────────────────────────┐    │    │
  │    │  SIMUT(config-sensor-N)#  Sensor — tipo,      │    │    │
  │    │                           pinos, alarmes      │    │    │
  │    ├── exit → volta p/ SIMUT#                      │    │    │
  │    └── end ────────────────────────────────────────┘    │    │
  ├── disable → volta p/ SIMUT>                                 │
  └── exit → volta p/ SIMUT>                                    │
Transição Comando
SIMUT> → SIMUT# enable
SIMUT# → SIMUT> disable ou exit
SIMUT# → SIMUT(config)# configure terminal
SIMUT(config)# → SIMUT# exit ou end
SIMUT(config)# → SIMUT(config-sensor-N)# sensor <N>
SIMUT(config-sensor-N)# → SIMUT(config)# exit
SIMUT(config-sensor-N)# → SIMUT# end

1. Modo User EXEC — SIMUT>

Prompt padrão após o boot. Modo somente leitura — nenhum comando altera configuração.

Diagnóstico

Comando Descrição
show sensors Lista todos os slots de sensor ativos com tipo, GPIO, canais, nome, alarmes
show system info Nome do dispositivo, versão do firmware, serial, resolução DS18B20, WiFi, fuso, NTP
show system log Despeja o log de eventos do Flash (até 2000 linhas)
show net status Endereço IP, RSSI (sinal WiFi)
show metrics Métricas operacionais: uptime, heap, heap mínimo, WiFi/MQTT reconexões, telemetria (envios, falhas, bytes), leituras de sensores, saves de config
show storage stats Estatísticas do sistema de arquivos Flash (LittleFS)
show themes Lista temas de UI disponíveis com índice e nome
show sensor types Lista drivers de sensor compilados no firmware com canais e requisitos de pinos
show gpio Mapa dos 16 GPIOs — livre vs. ocupado por slot
gpio Atalho para show gpio

Telemetria

Comando Descrição
tel sync Força envio imediato da telemetria pendente
tel dump Arma dump do próximo payload de telemetria no console (diagnóstico)

Sessão

Comando Descrição
language pt Interface em Português (Brasil)
language en Interface em English
language Mostra o idioma atual
help, ajuda, ? Lista comandos disponíveis neste modo

Relógio

Comando Descrição
time <AAAA-MM-DD> <HH:MM:SS> Ajuste manual do relógio, na hora local. Vale na hora e não sobrevive ao reboot. conf time ... é o mesmo comando. Vale aqui e no SIMUT#, pelo USB ou pelo Bluetooth

O time confere a data como um calendário: ano de 2026 a 2099, e o dia tem de existir no mês. Uma data que o calendário não tem é recusada e o relógio não muda:

SIMUT> time 2026-02-31 12:00:00
ERROR: Data ou hora invalida (ano >= 2026)

Até a v2.8.0 a conferência era campo a campo: qualquer dia de 1 a 31 passava, e 2026-02-31 virava 03/03/2026 em silêncio; um campo fora da faixa respondia Valores fora de range (ano >= 2026), mensagem que não existe mais.

O primeiro acerto depois do boot, com o relógio ainda provisório, desloca pela diferença os blocos do histórico que o boot começou, como o NTP faz (eventos 408 e 409, se a diferença passa de 5 s); o bloco retomado do .wip no boot é selado e não se desloca. O log grava o evento 13, RTC set manually, com contexto 2 (até a v2.8.0, contexto 0).

Num aparelho sem rede configurada e com o relógio provisório, o boot termina com a linha Sem rede, relogio provisorio: conf time AAAA-MM-DD HH:MM:SS (No network, provisional clock: ... em inglês), em toda imagem. O time existe também no console de emergência da release e do alpha (§9); até a v2.8.0, só neste perfil. No alpha, que não tem painel, é o jeito de responder à linha do boot.

Comando Descrição
enable Entra no modo Privileged EXEC (SIMUT#)

2. Modo Privileged EXEC — SIMUT#

Modo de manutenção e porta de entrada para configuração. Todos os comandos do modo User EXEC continuam disponíveis.

Persistência e sistema

Comando Descrição
write memory Salva a configuração RAM no Flash (equivalente ao copy run start do Cisco)
reload Reinicia o sistema. Requer confirmação: reload confirm
clear log Apaga os arquivos de log do Flash. Requer confirmação: clear log confirm

Depuração

Comando Descrição
debug on Ativa stream de logs no console. Prompt e modo não mudam, mas linhas de log aparecem inline
debug off Desativa stream de logs. Console fica limpo
debug Mostra estado atual (ON/OFF)

Sensores — operações

Comando Descrição
sensor scan Varredura de hardware nos GPIOs 0–15 (OneWire → DHT22) + I2C (BME280 nos pinos 4,5)
sensor accept <gpio> Autoriza sensor OneWire (DS18B20) detectado no pino. Lê ROM, aplica calibração do calib.csv, salva no Flash
sensor define <gpio> <rom> <hwid> <nome> Define manualmente um sensor (legado). ROM em hex (16 chars, 0000000000000000 p/ não-OneWire). Ex: sensor define 4 28AA123456789ABC DS4 "Freezer 1"
sensor wipe <gpio> Reseta o epoch do histórico do sensor (gráfico começa do zero). Requer confirmação: sensor wipe <gpio> confirm
sensor remove <gpio> Remove o slot de sensor ligado ao GPIO (desativa e limpa a configuração do slot). Requer confirmação: sensor remove <gpio> confirm
sensor reschema confirm Religa o histórico aos slots como estão configurados agora. Use após trocar o hwid de um sensor: o casamento dos registros é por hwid, então uma troca faz o histórico gravar registros vazios em silêncio até o reschema. Desde o V5, a mudança de schema grava um novo chunk SCHEMA no mesmo arquivo /history/AAAAMMDD.h5 — nenhum registro é perdido. Continua exigindo confirm. O aviso code=515 no log indica que isso é necessário
sensor <slot> <campo> <valor> Configura sensor diretamente do modo privilegiado (atalho). Campos: type, create, name, hwid, pin, active, alarm, tmin, tmax, hmin, hmax. Ver Seção 4

Telemetria

Comando Descrição
tel reset Reseta o cursor de telemetria (cache RAM + arquivo Flash). Próximo envio cobre até 30 dias para trás

Factory e admin

Comando Descrição
conf system factory Factory reset — apaga TODA a config e reinicia. Requer confirmação: conf system factory confirm
conf system admin reset Gera uma senha de admin aleatória, mostrada uma única vez neste console, e a grava na flash na hora (sobrevive ao reinício). O primeiro login pela web é forçado a trocá-la. Requer confirmação: conf system admin reset confirm
conf system touch reset Reseta a calibração do touch para valores de fábrica. Requer confirmação: conf system touch reset confirm
system format Formata o LittleFS (também disponível no console de emergência). Requer confirmação: system format confirm

Tela TFT

Comando Descrição
screen <nome> Navega diretamente para uma tela TFT. Nomes: dash (dashboard), set (configurações), thm (temas), lng (idioma), pwd (senha), lic (licença), sts (status), alm (alarmes), gra (gráfico), touchcal (calibração touch), touchsens (sensibilidade touch), offset (offset do display), clk (data e hora)
touch sim <X> <Y> Injeta toque simulado na tela (X: 0–319, Y: 0–239). Uso: automação de screenshots
touch hold <X> <Y> [ms] Injeta um toque mantido (segurar) por ms (padrão 3500, faixa 100–15000), depois solta. Aciona os gestos de toque longo — como o segurar de 3 s que fixa o cartão de cima — que o tap de touch sim não alcança. Uso: automação de screenshots
Comando Descrição
configure terminal Entra no modo Global Config (SIMUT(config)#)
disable Volta ao modo User EXEC
exit Volta ao modo User EXEC (mesmo que disable)

3. Modo Global Config — SIMUT(config)#

Modo de configuração do sistema. Comandos alteram apenas a RAM — execute write memory (no SIMUT#) para persistir no Flash. Use do <cmd> para executar qualquer comando do modo privilegiado sem sair do config.

Sistema

Comando Descrição Range
system name <nome> Nome do dispositivo (aparece no dashboard, WiFi, etc.) 1–31 chars, sem controle
system theme <id> Tema da UI. <id> pode ser nome (Default) ou índice numérico show themes lista opções
system timezone <offset> Fuso horário UTC −12 a +14
system ntp <servidor> Servidor NTP. Vazio = pool.ntp.org max 31 chars
system history_interval <min> Intervalo entre registros de histórico 1–1440 minutos
language <pt\|en> Idioma da interface CLI e display pt ou en
ds18b20 resolution <bits> Resolução global para sensores DS18B20 9–12 bits

Rede

Comando Descrição Range
wifi ssid <nome> Nome da rede WiFi (case-sensitive) max 31 chars
wifi pass <senha> Senha da rede WiFi max 31 chars
ip dhcp Usar DHCP para obter IP —
ip static Usar IP estático —
ip addr <ipv4> Endereço IP estático formato x.x.x.x
ip mask <ipv4> Máscara de rede formato x.x.x.x
ip gateway <ipv4> Gateway padrão formato x.x.x.x
ip dns <ipv4> Servidor DNS formato x.x.x.x
dns auto DNS via DHCP —
dns manual <ip1> [ip2] DNS manual (primário, secundário opcional) formato x.x.x.x
ntp on Sincronizar relógio via NTP —
ntp off Não sincronizar relógio —
web port <porta> Porta do servidor web (aplica após reload) 1–65535

Numa build cabeada (SIMUT Wire, ver §9.2) wifi ssid e wifi pass não existem: o parser responde “comando desconhecido”.

Telemetria

Comando Descrição Range
tel server <url> URL do servidor de telemetria max 63 chars
tel port <porta> Porta do servidor 1–65535
tel path <caminho> Caminho do endpoint (ex: /api/v1/data) max 31 chars
tel batch <n> Lote máximo: registros por upload 1–250 (limitado pelo heap livre)
tel interval <n> Lote mínimo: registros pendentes que disparam o envio (0 = desligado) 0–20000
tel crypto on Ativar SSL/HTTPS para telemetria —
tel crypto off Desativar SSL/HTTPS —
tel mode json Payload em formato JSON —
tel mode csv Payload em formato CSV —
tel mode custom Payload em formato customizado —

Usuários (web interface)

Comando Descrição
user add <nome> <senha> Criar novo usuário para a interface web
user del <nome> Remover usuário (admin não pode ser removido)
user pass <nome> <nova_senha> Alterar senha de um usuário
user perm <nome> <viewer\|operator\|admin\|0xHEX> Ajusta a máscara de permissões do usuário. É o único caminho (além do admin de fábrica) para conceder PERM_FULL_ADMIN (0xFFFF) — a interface web recusa esse valor por design. Bits do painel: 0x0400 limites, 0x0800 bloqueio, 0x1000 manutenção
user pin <nome> <pin\|off> PIN do painel da conta. O comprimento e o alfabeto são os da política (user policy), não uma constante: 4..16 caracteres de 0-9 ou 0-9A-Z. Único entre as contas; um PIN já usado é recusado com o nome do dono. off remove. Para o admin, um PIN diferente de 1234 desarma a troca forçada
user policy <min> <teclado 1\|2\|3> <alfabeto 0\|1> Política de PIN do painel (config v25). teclado é glifos por tecla: 1 = teclado ORDENADO (numérico, ou alfanumérico de dois toques), 2 e 3 = cartões embaralhados. alfabeto 0 = 0-9, 1 = 0-9A-Z. min vai de 4 ao teto do teclado — 16/12/8 — que é de CPU: resolver a árvore de toques custa S+S²+…+Sⁿ SHA-256. Apertar a política marca toda conta com PIN para trocá-lo, e a resposta diz quantas

Sensor

Comando Descrição
sensor <N> Entra no modo Sensor Config para o slot <N> (0–15)

Sub-comandos de conveniência

Comando Descrição
do <comando> Executa um comando do modo privilegiado sem sair do config. Ex: do show sensors
show <...> Todos os comandos show funcionam diretamente no modo config
exit Volta ao modo Privileged EXEC
end Volta ao modo Privileged EXEC (atalho direto)

4. Modo Sensor Config — SIMUT(config-sensor-N)#

Configuração de um sensor individual. Comandos curtos — o slot <N> é implícito. Todos os comandos show globais continuam disponíveis.

Tipo e criação

Comando Descrição
type <ds18b20\|dht22\|bme280> Define o tipo de driver do sensor
create <ds18b20\|dht22\|bme280> Reseta o slot e configura para o tipo. Mostra requisitos de pinos e GPIOs livres

Identidade

Comando Descrição Range
name <nome> Nome amigável (aparece no dashboard e tabelas) 1–31 chars
hwid <id> Hardware ID interno (chave para calib.csv) max 15 chars

GPIO

Comando Descrição
pin <idx> <gpio> Atribui um GPIO ao pino <idx> do sensor. <idx>: 0–3. <gpio>: 0–15. Ex: pin 0,5 atribui GPIO5 ao pino 0

Requisitos por tipo:

Ativação

Comando Descrição
active on Ativar slot. Requer todos os pinos atribuídos
active off Desativar slot (libera GPIOs)

Alarmes

Comando Descrição Range
alarm on Ativar alarmes para este sensor —
alarm off Desativar alarmes —
tmin <valor> Limite mínimo de temperatura float (ex: -10.0)
tmax <valor> Limite máximo de temperatura float (ex: 50.0)
hmin <valor> Limite mínimo de umidade (DHT22/BME280) float (ex: 30.0)
hmax <valor> Limite máximo de umidade (DHT22/BME280) float (ex: 70.0)
Comando Descrição
show sensors Mostra a tabela completa de sensores
show gpio Mostra o mapa de GPIOs
do <comando> Executa comando do modo privilegiado
exit Volta ao modo Global Config
end Volta direto ao modo Privileged EXEC

5. Comandos de conveniência (qualquer modo)

Comando Descrição
? Lista comandos disponíveis no modo atual
help Mesmo que ?
ajuda Mesmo que ? (atalho PT)

6. Confirmação de comandos destrutivos

Comandos que causam perda de dados ou reinicialização exigem o sufixo ` confirm` (com espaço). Exemplos:

reload confirm
clear log confirm
conf system factory confirm
conf system admin reset confirm
conf system touch reset confirm
sensor wipe 3 confirm

Sem o sufixo, o comando exibe um aviso e não executa.


7. Fluxo de trabalho típico

Primeira configuração de sensores

SIMUT> enable
SIMUT# configure terminal
SIMUT(config)# sensor 0
SIMUT(config-sensor-0)# create bme280
SIMUT(config-sensor-0)# pin 0,0
SIMUT(config-sensor-0)# pin 1,1
SIMUT(config-sensor-0)# name BMP280-Ambiente
SIMUT(config-sensor-0)# active on
SIMUT(config-sensor-0)# exit
SIMUT(config)# sensor 1
SIMUT(config-sensor-1)# create dht22
SIMUT(config-sensor-1)# pin 0,2
SIMUT(config-sensor-1)# name DHT22-Sala
SIMUT(config-sensor-1)# alarm on
SIMUT(config-sensor-1)# tmin 15.0
SIMUT(config-sensor-1)# tmax 35.0
SIMUT(config-sensor-1)# hmin 30.0
SIMUT(config-sensor-1)# hmax 70.0
SIMUT(config-sensor-1)# end
SIMUT# write memory

Configuração de rede

SIMUT> enable
SIMUT# configure terminal
SIMUT(config)# wifi ssid MinhaRede
SIMUT(config)# wifi pass MinhaSenha
SIMUT(config)# ntp on
SIMUT(config)# system timezone -3
SIMUT(config)# end
SIMUT# write memory
SIMUT# reload confirm

Diagnóstico rápido

SIMUT> show sensors
SIMUT> show net status
SIMUT> show metrics
SIMUT> tel dump

8. Referência rápida de modos

Prompt Significado Como sair
SIMUT> User EXEC — só leitura —
SIMUT# Privileged EXEC — manutenção disable ou exit
SIMUT(config)# Global Config — config do sistema exit ou end
SIMUT(config-sensor-N)# Sensor Config — config de 1 sensor exit (p/ config) ou end (p/ #)

9. Console de emergência (imagens pico_w_release, pico_w_alpha e pico_w_air)

As imagens de produção não carregam a CLI hierárquica deste manual (SIMUT_CLI_FULL=0). Elas respondem no prompt único SIMUT> , sem enable nem configure terminal, com este conjunto:

Comando Efeito
show net status IP, SSID, RSSI, estado do NTP
show system info versão do firmware, uptime, heap, sensores
show system log últimas linhas do log binário
debug on / debug off console verboso
system admin reset regenera a senha do admin (mostrada uma vez)
system format [confirm] formata o LittleFS
system factory [confirm] restaura os defaults de fábrica
system https off [confirm] apaga o par TLS e volta para HTTP
system ssid <nome> grava o SSID na hora (sem write memory); reload confirm para reconectar
system pass <senha> grava a senha do Wi-Fi na hora; idem
system cors <origem> | off grava em /config/cors.txt a origem da página do gerenciador web (ex.: http://192.168.1.10:8080); vale no próximo boot, então reload confirm
reload [confirm] reinicia
ap sobe o ponto de acesso de configuração
time <AAAA-MM-DD> <HH:MM:SS> acerta o relógio na hora local; vale até o próximo reboot (ver §1, “Relógio”)
help esta lista, no idioma do pack instalado

9.1 Comandos air (somente pico_w_air)

Comando Efeito
air status Air: phase=<n> wake=<s>s hist=<s>s backoff=<s>s idle=<s>s armed=<0\|1> dirty=<n> tel=<pendentes>/<lote mínimo> skip=<n> radio=<0\|1> chg=<0\|1> bat=<n> cyc=<ms> wip=<n>
air hibernate (ou air sleep) entra no ciclo M1 agora; o USB some quando o aparelho dorme
air stop (ou air wake) cancela o ciclo e volta ao modo operacional M0 — só funciona na janela em que o aparelho está acordado, e só pelo console USB (ver a nota sobre M1 abaixo)
air idle <10..65535> segundos de inatividade da CLI antes de hibernar sozinho (persistido em /config/air.bin)
air charger <0..29\|off> GPIO que lê nível alto enquanto o aparelho carrega (padrão GP17); off desliga a leitura. Persistido em /config/air.bin

Fases reportadas por phase=: 0 OFF (M0), 1 WARMUP, 2 SAMPLE, 3 DECIDE, 4 PERSIST, 5 CONNECT, 6 FLUSH, 7 SLEEP. Com debug on o console mostra [AIR] phase=… a cada transição e [AIR] alarm: HH:MM:SS wakeSec=N antes de dormir.

Sobre wip=: quantas vezes o bloco de histórico aberto foi gravado inteiro em /history/.wip desde o boot. É a única janela que o firmware tem para o próprio desgaste de flash, porque a .wip é reescrita POR COMPLETO a cada vez. Num SIMUT Air todo wake é um boot, então o número se lê direto como “por wake”, e o valor esperado é 1. A linha [AIR] alarm: também o traz, e é onde ele serve: o console responde cedo no wake, antes mesmo de o registro ser gravado, então o air status de dentro de um wake devolve 0.

Sobre air stop por Bluetooth (limitação, plano F12): dentro de um wake do ciclo (M1) o laço só lê o console USB — o canal Bluetooth não é atendido, então air stop digitado pela conexão BT durante um wake não tem efeito. É ausência de funcionalidade, não risco: a sessão BT continua exigindo senha e o lockout vale normalmente. Para cancelar o ciclo pelo BT, segure o aparelho acordado (carregador, chg=1) — aí ele sobe como M0 completo e o console BT responde. Pelo USB, air stop funciona em qualquer janela de wake.

Sobre chg=: com o carregador ligado o aparelho não hiberna — o air idle deixa de valer e um wake que encontre o carregador cancela o ciclo daquele boot e sobe como M0 completo, com servidor web. O ciclo continua armado, então basta desconectar e deixar o idle expirar para voltar a dormir. O divisor de tensão que traz os 5 V ao nível lógico é da placa; nada disso mede corrente de carga, só a presença da fonte.

Sobre o show system log num Air: um wake quase não escreve nada, e isso é o desenho, não um defeito. Todo despertar é um boot inteiro, e a sequência fixa que o setup( ) emite ao subir — relógio provisório, idioma, sensores, calibração, linha de alarmes, transporte HTTP, snapshot do histórico, “pronto” — era reescrita uma vez por minuto e ocupava 68% da janela forense. Desde 07/09/2026 essa sequência é gravada por um boot que não veio da hibernação e pulada por um que veio; sobra um registro por ciclo, o 567 STO_H5_WIP do próprio ciclo, com a contagem do bloco no ctx. Nada mais mudou: um passo do boot que falha continua gravando, e trocar o idioma ou calibrar depois do boot continua gravando.

O sinal a procurar é o 412 (boot frio, não veio da hibernação): num aparelho que deveria estar dormindo entre os wakes, ele é o relato de uma interrupção de energia. ctx=1 boot limpo (energia, RUN, reload, OTA); ctx=0 um watchdog chegou antes. Ao lado dele vem a rajada de oito registros do preâmbulo — as duas coisas juntas são a assinatura de “o aparelho reiniciou de verdade”.

Desde 07/09/2026 o air idle recusa o que o campo não guarda (item F09, fechado). Antes ele aceitava até 86400 e convertia: 86400 virava 20864 e 65536 virava 0, e um ocioso de zero manda o aparelho dormir na passada seguinte do laço — de onde só se volta pegando uma janela de wake pelo console.

9.2 SIMUT Wire (pico_wire e pico_wiretft)

A build cabeada (net = "enc28j60", a rede por um módulo ENC28J60) não tem rádio, e o console de emergência dela perde, na compilação, o que só o rádio tinha: ap (e apmode, ap-mode), system ssid, system pass e os apelidos wifi ssid/wifi pass. No lugar, para que um aparelho numa rede sem DHCP tenha por onde entrar, ela ganha os comandos de endereço do perfil completo (desde 13/10/2026):

Comando Efeito
ip dhcp | ip static como o cabo obtém o endereço
ip addr <ipv4> o endereço fixo
ip mask <ipv4> a máscara
ip gateway <ipv4> o gateway
ip dns <ipv4> o DNS do endereço fixo
dns auto | dns manual <ip1> [ip2] DNS do DHCP, ou estes servidores

Cada um grava na hora, como o SSID numa imagem com rádio (este console não tem write memory), e responde Salvo. Use 'reload confirm' para aplicar.: o módulo toma o endereço quando sobe. Se a gravação falhar, a resposta diz isso, e o comando pode ser repetido.

O que muda no resto do console:

Os testes deste console são a suíte native_lan (pio test -e native_lan).