CLI-referentie¶
COMMANDOREGEL · ROLLEN · STANDAARDWAARDEN · AFWIJKINGEN
Repeaters, room servers en sensoren hebben een commandoregel, via de seriële console of op afstand vanuit een app. Deze sectie beschrijft elk commando dat de firmware kent, per categorie: voor welke rol het werkt, de standaardwaarde, een voorbeeld en, waar die is afgesproken, de Nederlandse invulling. De companion heeft zo'n commandoregel niet, alleen een console voor noodgevallen.
Opmerking
Bron. Deze pagina is geverifieerd tegen de firmware zelf: MeshCore
v1.17.1, commit d929643, 14 augustus 2026 — bestanden
src/helpers/CommonCLI.cpp, src/helpers/CommonCLI.h,
examples/simple_repeater/MyMesh.cpp, examples/simple_repeater/main.cpp,
examples/simple_room_server/MyMesh.cpp,
examples/simple_sensor/SensorMesh.cpp, examples/simple_sensor/main.cpp,
platformio.ini, en de officiële docs/cli_commands.md. Regelnummers
verwijzen naar deze commit en zijn te reproduceren met
tools/cli-commands.py.
Waar de commando's vandaan komen¶
Repeater, room server en sensor gebruiken dezelfde commandoverwerking:
src/helpers/CommonCLI.cpp. Daarvóór handelt elke rol in zijn eigen
handleCommand() een paar commando's af: setperm en get acl bij alle drie,
discover.neighbors bij de repeater, en io en magic bij de sensor.
CommonCLI kijkt nergens naar de rol. Verschillen tussen rollen ontstaan op
twee andere plekken: callbacks die per rol anders zijn ingevuld, en instellingen
die alleen sommige rollen lezen.
De companion gebruikt CommonCLI niet. Zijn instellingen lopen via het
companion-protocol, zie De companion-interface.
Wel is er een console voor noodgevallen:
Companion: CLI Rescue.
Hoe je een commando geeft¶
Via de seriële console typ je het commando en druk je op Enter. De repeater zet
-> voor elk antwoord (simple_repeater/main.cpp r.154); een antwoord is
hoogstens 159 tekens (r.144). Bij een antwoord over meerdere regels krijgt
alleen de eerste regel dat voorvoegsel.
Op afstand stuurt een beheerder hetzelfde commando vanuit een app, zie
Remote Bediening en
Requests en CLI. Dan is de
afzendertijd niet 0, en daardoor werken de commando's in de kolom Alleen
serieel niet. Een commando mag beginnen met een voorvoegsel van drie tekens
zoals 01|; de node zet dat terug voor het antwoord (repeater r.1233, room
server r.937, sensor r.385).
Markeringen¶
Elke categoriepagina begint met een overzichtstabel. De kolom Rol is leeg als het commando op repeater, room server en sensor hetzelfde werkt. Anders staat er een van deze markeringen:
| Markering | Betekenis |
|---|---|
alleen <rol> |
Alleen die rol voert het commando uit; de andere rollen kennen het niet of antwoorden met not supported |
niet <rol> |
Die rol accepteert het commando, maar het werkt daar niet |
effect: <rol> |
Elke rol accepteert en bewaart de instelling, maar alleen de genoemde rol gebruikt hem |
build flag |
Het commando bestaat alleen in een build met een bepaalde optie; de pagina noemt welke |
Of een rol een instelling gebruikt, is vastgesteld door te zoeken waar de rol de instelling buiten zijn constructor leest. In de kolom Standaard staat R voor repeater, RS voor room server en S voor sensor. De kolom Alleen serieel is gevuld als de firmware controleert dat het commando van de seriële console komt.
De categorieën¶
- Bediening — herstarten, klok, adverts, OTA, wissen
- Buren — de burenlijst van de repeater
- Statistieken — tellers en meetwaarden
- Logging — het ontvangstlog
- Informatie — firmwareversie en board
- Radio — frequentie, SF, zendvermogen
- Systeem — naam, locatie, sleutels, wachtwoorden
- Routing — doorsturen, duty cycle, adverts, hop-limieten
- ACL — rechten van clients
- Regio's — regioboom en scope
- GPS — GPS-ontvanger
- Sensoren — sensorinstellingen, GPIO
- Bridge — RS232- en ESP-NOW-bridge
- Energiebeheer (nRF52) — nRF52-voeding en bootloader
- Companion: CLI Rescue — de console voor noodgevallen van de companion
- Ethernet — status van de Ethernet-verbinding
Standaardwaarden per rol¶
Deze waarden zet de firmware in de constructor van elke rol
(simple_repeater/MyMesh.cpp r.861–941, simple_room_server/MyMesh.cpp
r.630–694, simple_sensor/SensorMesh.cpp r.700–741). Ze gelden voor een vers
geflashte node; heeft de node al een instellingenbestand, dan overschrijft
loadPrefs() ze (CommonCLI.cpp r.30–47). Sinds v1.17.0 staat dat bestand in
JSON-formaat in /prefs.json; bestaat dat nog niet, dan leest loadPrefs()
eenmalig het oude binaire /com_prefs en schrijft de JSON-versie weg. Het oude
bestand blijft staan. Een ⚠ betekent dat de officiële
documentatie iets anders noemt.
| Instelling | Repeater | Room server | Sensor |
|---|---|---|---|
radio ⚠ |
869.618,62.5,8,5 |
idem | idem |
tx |
per board, terugvalwaarde 20 |
per board, terugvalwaarde 20 |
per board, terugvalwaarde 20 |
radio.rxgain ⚠ |
on (SX1262/SX1268) |
on (SX1262/SX1268) |
off |
radio.fem.rxgain |
on |
on |
on |
radio.fem.txgain |
off |
off |
off |
name |
repeater |
Test BBS |
sensor |
lat / lon |
0.0 |
0.0 |
0.0 |
password |
password |
password |
password |
guest.password ⚠ |
leeg | ROOM_PASSWORD of leeg |
leeg |
owner.info |
leeg | leeg | leeg |
adc.multiplier |
0.0 |
0.0 |
0.0 |
powersaving |
off |
off |
off |
repeat ⚠ |
on |
off |
off |
path.hash.mode |
0 |
0 |
0 |
loop.detect |
off |
off |
off |
txdelay |
0.5 |
0.5 |
0.5 |
direct.txdelay ⚠ |
0.3 |
0.2 |
0.2 |
rxdelay |
0.0 |
0.0 |
0.0 |
dutycycle / af |
50 / 1.0 |
50 / 1.0 |
50 / 1.0 |
int.thresh |
0 |
0 |
0 |
cad |
off |
off |
off |
agc.reset.interval |
0 |
0 |
0 |
multi.acks |
0 |
0 |
0 |
flood.advert.interval ⚠ |
47 |
47 |
0 |
advert.interval ⚠ |
2 → 0 |
2 → 0 |
2 → 0 |
flood.max |
64 |
64 |
64 |
flood.max.unscoped ⚠ |
64 |
64 |
0 |
flood.max.advert |
8 |
8 |
0 |
allow.read.only |
off |
off |
off |
gps / gps advert |
off / prefs |
off / prefs |
off / prefs |
bridge.enabled ⚠ |
on |
— | — |
bridge.delay / bridge.source |
500 / logTx |
— | — |
bridge.baud / bridge.channel |
115200 / 1 |
— | — |
bridge.secret ⚠ |
LVSITANOS |
— | — |
advert.interval staat op 2 minuten tot de eerste opgeslagen wijziging en
daarna op 0; zie Routing. De naam is de terugvalwaarde van
ADVERT_NAME; de meeste builds zetten een eigen naam.
Afwijkingen van de officiële documentatie¶
Deze referentie volgt de firmware. Waar docs/cli_commands.md op dezelfde
commit iets anders zegt, staat dat bij het commando. Het overzicht:
| Onderwerp | Officiële documentatie | Firmware op d929643 |
Pagina |
|---|---|---|---|
standaard radio |
869.525,250,11,5 |
869.618,62.5,8,5 |
Radio |
standaard radio.rxgain |
on |
on bij repeater en room server in SX1262/SX1268-builds, off bij de sensor |
Radio |
extra.sf |
ontbreekt | get en set bestaan, set alleen in USE_LR2021-builds |
Radio |
eth.status |
onder Ethernet | niet in CommonCLI.cpp maar in nrf52/EthernetCLI.h |
Ethernet |
grenzen tempradio |
300–2500 MHz, 7,8–500 kHz | 150–2500 MHz, 7–500 kHz | Radio |
neighbors, tweede veld |
timestamp | seconden geleden | Buren |
set prv.key |
64 hextekens | 128 hextekens | Systeem |
standaard guest.password |
leeg | ROOM_PASSWORD op de room server, als die flag is gezet |
Systeem |
standaard repeat |
on |
off op room server en sensor |
Routing |
standaard direct.txdelay |
0.2 |
0.3 op de repeater |
Routing |
standaard flood.advert.interval |
12 (repeater) |
47 |
Routing |
standaard advert.interval |
0 |
2, na de eerste opgeslagen wijziging 0 |
Routing |
flood.max.unscoped |
0xFF volgt flood.max |
geen 0xFF-logica |
Routing |
setperm zonder rechten |
verwijdert de client | Err - bad params; verwijderen gaat met 0 |
ACL |
region list |
alleen serieel | ook op afstand | Regio's |
region load <name> [flag] |
argumenten | argumenten worden genegeerd | Regio's |
standaard bridge.enabled |
off |
on |
Bridge |
waarden bridge.source |
logRx, logTx |
alleen een waarde die met rx begint zet logRx |
Bridge |
standaard bridge.secret |
per board | LVSITANOS |
Bridge |
bootloader.ver, pwrmgt.* |
onder Bridge | nRF52-platform | Energiebeheer |
io, magic |
ontbreken | sensorcommando's | Sensoren |
Nederlandse invulling in het kort¶
De afspraken komen uit Regelgeving & Duty Cycle en Aan de Slag. Bij elk commando staat de invulling ook op de categoriepagina.
| Commando | Nederlandse invulling | Pagina |
|---|---|---|
set radio |
869.618,62.5,7,5 |
Radio |
set dutycycle |
10 |
Routing |
set af |
9 (firmware ouder dan v1.15.0) |
Routing |
set loop.detect |
minimal |
Routing |
set flood.advert.interval |
49 |
Routing |
set advert.interval |
240 |
Routing |
set flood.max.advert |
8 |
Routing |
set flood.max.unscoped |
bijvoorbeeld 3 |
Routing |
set txdelay / set direct.txdelay |
standaard | Routing |
set repeat |
on op een repeater |
Routing |
region put / region default |
eu → nl → provincie |
Regio's |
Nieuwere firmware¶
Deze sectie is gepind op de release v1.17.1. De commando's die eerder apart
stonden onder "Na de gepinde commit" — cad, radio.fem.rxgain,
radio.fem.txgain, extra.sf en eth.status — horen bij deze release en staan
nu op Radio en Ethernet. Die pagina is daarmee
vervallen.
Wat er na v1.17.1 op main en dev bij komt, staat hier niet. Zie
Wijzigingen in v1.17.1 voor wat deze release
ten opzichte van de vorige pin verandert.
Bronnen¶
- MeshCore firmware —
src/helpers/CommonCLI.cpp - MeshCore firmware —
src/helpers/CommonCLI.h - MeshCore firmware —
examples/simple_repeater/MyMesh.cpp - MeshCore firmware —
examples/simple_repeater/main.cpp - MeshCore firmware —
examples/simple_room_server/MyMesh.cpp - MeshCore firmware —
examples/simple_sensor/SensorMesh.cpp - MeshCore firmware —
examples/simple_sensor/main.cpp - MeshCore firmware —
platformio.ini - MeshCore firmware —
docs/cli_commands.md