Ga naar inhoud

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

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