# Custom CLI Commands This page covers the EastMesh-specific CLI commands added in this repository. It does not try to repeat the full upstream MeshCore CLI surface. ## Repeater MQTT Commands These commands are available on `*_repeater_mqtt` firmware targets. ### MQTT Status And Routing - `get mqtt.status`: shows WiFi, NTP, IATA, endpoint status, status publishing state, and TX state. - `get mqtt.statuscfg`: shows whether periodic status messages are enabled as a simple `on` or `off` value. Most users can just use `get mqtt.status`. - `get mqtt.iata`: shows the IATA/location code used in MQTT topics. - `set mqtt.iata `: sets the IATA/location code, for example `MEL`. ### MQTT Identity - `get mqtt.owner`: shows the configured owner public key. - `set mqtt.owner <64-hex-char-public-key>`: sets the owner public key used in JWT metadata. - `mqtt.owner <64-hex-char-public-key>`: shorthand for setting the owner public key. - `get mqtt.email`: shows the configured owner email. - `set mqtt.email `: sets the owner email used in JWT metadata. - `mqtt.email `: shorthand for setting the owner email. ### MQTT Message Controls - `get mqtt.packets`: shows whether packet messages are published. - `set mqtt.packets on|off`: enables or disables packet publishing. - `get mqtt.raw`: shows whether raw packet payloads are published. - `set mqtt.raw on|off`: enables or disables the separate `raw` MQTT topic. - `set mqtt.status on|off`: enables or disables periodic MQTT status publishing. - `get mqtt.tx`: shows whether TX packets are included. - `set mqtt.tx on|off`: enables or disables TX packet publishing. ### MQTT Endpoints - `get mqtt.eastmesh-au` - `set mqtt.eastmesh-au on|off` - `get mqtt.letsmesh-eu` - `set mqtt.letsmesh-eu on|off` - `get mqtt.letsmesh-us` - `set mqtt.letsmesh-us on|off` Legacy dotted aliases are also accepted: - `mqtt.eastmesh.au` - `mqtt.letsmesh.eu` - `mqtt.letsmesh.us` ### WiFi Settings For MQTT Repeaters - `get wifi.status`: shows SSID, connection state, raw WiFi status code, and IP when connected. - `get wifi.ssid`: shows the configured WiFi SSID. - `set wifi.ssid `: sets the WiFi SSID. - `set wifi.pwd `: sets the WiFi password. - `get wifi.powersaving`: shows the current WiFi power save mode. - `set wifi.powersaving none|min|max`: sets WiFi power saving mode. ### Web Panel Controls - `get web` - `get web.status`: shows whether the local HTTPS panel is available. - `set web on|off` - `set.web on|off`: enables or disables the local HTTPS panel. ### Runtime Diagnostics - `memory`: shows current heap and PSRAM usage. - `stats-core`: shows battery, uptime, sticky error count, and outbound queue depth. - `stats-radio`: shows radio noise floor, last RSSI, last SNR, and TX/RX airtime. - `stats-packets`: shows packet receive/send totals, flood/direct breakdown, and receive errors. ### Board Battery Reporting - `get battery.reporting`: shows whether board battery reporting is enabled. Support is board-dependent. - `set battery.reporting on|off`: enables or disables battery voltage reporting on supported boards. This is currently useful for Heltec V3 boards where USB-only power can produce misleading battery readings. If your board needs this too, open an issue and support can be added board-by-board. ## Web Panel Allowlisted Commands When the repeater web panel is enabled, it only allows a limited command set. That allowlist currently includes: - `clock` - `get mqtt.status` - `get web` - `get web.status` - `advert` - `reboot` - `start ota` - `memory` - `stats-core` - `stats-radio` - `stats-packets` - `get wifi.status` - `get wifi.powersaving` - `get mqtt.iata` - `set mqtt.iata ` - `get mqtt.owner` - `set mqtt.owner <64-hex-char-public-key>` - `get mqtt.email` - `set mqtt.email ` - `get mqtt.packets` - `set mqtt.packets on|off` - `get mqtt.raw` - `set mqtt.raw on|off` - `get mqtt.statuscfg` - `set mqtt.status on|off` - `get mqtt.tx` - `set mqtt.tx on|off` - `get mqtt.eastmesh-au` - `set mqtt.eastmesh-au on|off` - `get mqtt.letsmesh-eu` - `set mqtt.letsmesh-eu on|off` - `get mqtt.letsmesh-us` - `set mqtt.letsmesh-us on|off` - `set web on|off` - `get name` - `set name ` - `get lat` - `set lat ` - `get lon` - `set lon ` - `get guest.password` - `set guest.password ` - `set prv.key <64-hex-char-private-key>` - `get advert.interval` - `set advert.interval ` - `get flood.advert.interval` - `set flood.advert.interval ` - `get flood.max` - `set flood.max ` - `get owner.info` - `set owner.info ` ## Companion WiFi Rescue Commands These commands are available in the serial rescue CLI for `*_companion_radio_wifi` builds. To enter `CLI Rescue`: - open a serial monitor at `115200` baud - reboot the device - long-press the user button within the first 8 seconds after boot - wait for `========= CLI Rescue =========` - `get wifi.status`: shows configured SSID, connection status, raw WiFi status code, and IP when connected. - `get wifi.ssid`: shows the configured WiFi SSID. - `get wifi.powersaving`: shows the current WiFi power saving mode. - `set wifi.ssid `: saves a WiFi SSID and immediately retries connection. - `set wifi.pwd `: saves a WiFi password and immediately retries connection. - `set wifi.powersaving none|min|max`: changes the WiFi power save mode. Companion WiFi builds also still support the existing rescue commands such as: - `set pin <6-digit-pin>` - `rebuild` - `erase` - `ls ...` - `cat ...` - `rm ...` - `reboot`