Custom CLI
Dies sind die Befehle, die DMC zusätzlich zu Upstream-MeshCore bereitstellt. Die
vollständige CLI-Referenz findest du in
docs/cli_commands.md
und
docs/packet_filter_reference.md.
Packet-Filter
filter ... (nur Repeater). Standardmäßig aus. Direkt geroutete Pakete und
ACL-Kontaktpakete werden übersprungen. Der Zustand wird in /filter_prefs gespeichert.
filter: Status und Summen je Grundfilter helpfilter on/filter offfilter resetfilter dryrun on|off(Drops zählen, aber weiterhin weiterleiten; Statuszeile endet auf(dry-run))filter typesfilter countfilter hops <type> <max_hops>(Typ00-11, Hops0-64)filter rate <type> <limit> <seconds> [soft](soft= probabilistische weiche Kappung, muss kleiner alslimitsein;0= harte Kappung)filter channel list|add|remove <#name|Public>(bis zu 16, nur GRP_TXT)filter hash <min_bytes>(1-3, minimale Path-Hash-Größe)filter malformed on|off(UTF-8-/Strukturvalidierung von öffentlichem GRP_TXT)filter advert <stunden>(0-720; das Advert jedes Knotens höchstens einmal pro Fenster weitergeleitet,0= aus) /filter advert clearfilter path list|add|remove <hex>(bis zu 8 Präfixe mit 2-8 Hex-Ziffern; verwirft alles, was über einen Repeater mit diesem ID-Präfix kam)filter sender add <name> [secs] [prob]/remove/list(bis zu 8; Name exakt,Bot*= Präfix;secs0 = blockieren, sonst eine Nachricht prosecsdurchlassen;prob1-100 = Anteil, den die Regel entscheidet)filter text add <muster> [secs] [prob]/remove/list(bis zu 8; Teilstring,^= Nachrichtenanfang)filter watch add|remove|list <#name>(bis zu 4 Kanäle, die die Regeln lesen dürfen, neben Public)filter age <Minuten>|off(1-10080; verwirft Gruppennachrichten auf Public und beobachteten Kanälen, die älter sind, nach der Uhr des Repeaters; inaktiv, solange die Uhr nicht gestellt ist)filter stats <topic>mit topic =hops|rate|hash|channel|malformed|top|advert|path|air|sender|text|age(air= geschätzte eingesparte Sendezeit)
Pakettypen
| ID | Typ | ID | Typ |
|---|---|---|---|
00 |
REQ | 06 |
GRP_DATA |
01 |
RESPONSE | 07 |
ANON_REQ |
02 |
TXT_MSG | 08 |
PATH |
03 |
ACK | 09 |
TRACE |
04 |
ADVERT | 10 |
MULTIPART |
05 |
GRP_TXT | 11 |
CONTROL |
Duty-Cycle-Region-Gating
dc.gate.*. Standardmäßig aus. Wirft Inter-Regions-Flood-Verkehr ab, wenn der
Repeater den größten Teil seines Duty-Cycle-Budgets verbraucht hat. Transient: wird nie in
die Regionskonfiguration geschrieben. Läuft vor dem Packet-Filter, daher erscheinen diese
Drops nicht in filter stats.
set dc.gate <on|off>/get dc.gate(1/0funktionieren auch)set dc.gate.thresh <1-100>/get dc.gate.thresh(Standard 70)set dc.gate.hyst <0-50>/get dc.gate.hyst(Standard 10)get dc.gate.status(z. B.duty 74%, gate level 2/4)
Schwelle, Hysterese und duty sind ein Prozentsatz des Duty-Cycle-Budgets
(set dutycycle), nicht der Uhrzeit. Mit dutycycle 10 darf der Repeater 360 Sekunden
pro Stunde senden; dc.gate.thresh 70 beginnt mit dem Gating, sobald 252 dieser Sekunden
verbraucht sind. Die Schwelle muss also nicht unter dem Duty-Cycle-Limit liegen.
Duty-Cycle
DMC ergänzte auto und änderte die Vorgabe von 50% auf auto.
set dutycycle auto: liest die Sub-Band-Tabelle von ETSI EN 300 220-2 für 863-870 MHz und berechnet beiset freq/set radioneu. Standard.- Ein explizites Prozent oder
set afschaltetautoaus (af/Airtime-Factor ist der veraltete Upstream-Mechanismus). get dutycycle: zeigt die aktuelle Einstellung.
Observer / MQTT
Nur auf ESP32-Observer-Builds.
- WiFi:
set wifi.ssid <ssid>,set wifi.pwd <pwd>,set wifi.powersave ...,get wifi.status - MQTT-Identität und -Routing:
set mqtt.iata <code>,set mqtt.email <email>,set mqtt.owner <64-hex>,set mqtt<N>.preset <name>/set mqtt<N>.server <...>,set mqtt.rx|tx <on|off|advert>,get mqtt.status - MQTT-Extras:
set mqtt.config <on|off>(veröffentlicht nicht sensible Node-Konfig insconfig-Topic, gespeichert in/mqtt.json),set mqtt.filter.interval <60-600>,set mqtt.neighbors <on|off>+set mqtt.neighbors.interval <Stunden>(nur mit PSRAM) - NTP:
set mqtt.ntp <host|none>,get mqtt.ntp.diag
Veröffentlichte Topics (Suffixe an einem gemeinsamen Prefix): status, packets,
filter, neighbors, config.