Kconfig
Path: Component config → IOTMER
Core options
| Option | Purpose |
|---|---|
IOTMER_PROVISION_API_URL | Provision API base (default https://console.iotmer.com/api/v1) |
IOTMER_PROVISION_AUTH_CODE | API key (iotmer-auth-code header). Empty + complete NVS → HTTPS skipped |
IOTMER_WORKSPACE_ID | Workspace UUID. Required when auth code is set |
IOTMER_WORKSPACE_SLUG | Optional override. Production: use value from provision JSON → NVS |
IOTMER_WIFI_SSID / PASSWORD | Station credentials |
IOTMER_NVS_NAMESPACE | NVS namespace (default iotmer_creds) |
IOTMER_DEVICE_HTTP_TOKEN | Dev-only fallback for NVS dht. Production: leave empty |
IOTMER_PROVISION_TIMEOUT_MS | HTTPS provision timeout |
OTA
HTTP(S) auto-OTA after provision. MQTT command OTA is implemented in the application — see OTA.
| Option | Purpose |
|---|---|
IOTMER_AUTO_OTA | HTTP(S) OTA when provision returns URL + SHA256. Set n if field updates are MQTT-only |
IOTMER_OTA_APPLY_EVEN_IF_SAME_SHA | Re-download even when SHA matches NVS |
IOTMER_OTA_TIMEOUT_MS | HTTP(S) download timeout |
IOTMER_FIRMWARE_POLL | Background re-provision when firmware fields missing or OTA rejected |
IOTMER_FIRMWARE_POLL_* | Poll interval, stack, priority |
MQTT / TLS
| Option | Purpose |
|---|---|
IOTMER_MQTT_RX_ASSEMBLY_MAX | Max reassembled inbound message (default 8192; 0 = drop oversized) |
IOTMER_MQTT_OUTBOX_LIMIT | Outbox cap in bytes (default 16384; 0 = unbounded) |
IOTMER_TLS_MIN_HEAP_GUARD | Abort TLS connect when free internal heap is below threshold (0 = off) |
NVS keys
| Key | Content |
|---|---|
device_id, device_key, mqtt_*, workspace_slug | MQTT session |
dht | device_http_token for POST …/devices/auth/* (not MQTT) |
Public APIs: iotmer_nvs_load_creds, iotmer_nvs_save_creds, iotmer_provision, iotmer_device_auth_bind_claim.
Enable mbedTLS certificate bundle options to match your examples (CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL, cross-signed verify for console.iotmer.com).
IOTMER BLE (optional)
When iotmer_ble is in the project: Component config → IOTMER BLE
| Option | Purpose |
|---|---|
CONFIG_IOTMER_BLE | Master switch |
CONFIG_IOTMER_BLE_GAP_NAME_PREFIX | GAP name prefix (default MER-) |
CONFIG_IOTMER_BLE_MAX_RX_LEN | Max JSON per RX write (default 512) |
CONFIG_IOTMER_BLE_RESTART_ADV_ON_DISCONNECT | Resume advertising after disconnect |
CONFIG_IOTMER_BLE_SMP_IO_CAP | Pairing IO capability |
CONFIG_IOTMER_BLE_REQUIRE_ENC | Require encrypted link for RX writes |
Wire format: BLE JSON channel