global.json
global.json is loaded at every boot and provides the fundamental
device behaviour, network definitions, and server endpoints.
It is stored on the USB filesystem at config/global.json and must
always be present.
{ "data": { "global": { "dev": { "core": { "update_period_mins": 15 }, "nfc": { "ndef": "https://www.infrafon.com", "mode": 0, "emul": true } } }, "network": { "networks": { "k1": { "type": "wifi", "auth": { "ssid": "kiosk", "wpa2_password": "infrafon-2022" }, "checkPeriodSecs": 900 } }, "networkOrder": ["k1"], "entityMgrServer": { "url": "mqtt://mqtt.infrafon.cloud", "auth": { "mqttUser": null, "mqttPassword": "none" }, "kmgr": { "url": "https://api.infrafon.cloud/kmgr/rest/v1", "auth": { "type": "devicetoken" } } }, "ap": { "ssid": "kiosk", "wpa2_password": "infrafon-2022" } } }}The top‑level wrapper that contains all sections.
Configuration variables
- Type: object
- Required: yes
{ "data": { /* … */ } }data.global
Section titled “data.global”Contains device‑wide default settings. Any key under devcfg can
appear here. This is merged with the per‑state allocdata.json /
unallocdata.json files; the state‑specific file takes priority.
Configuration variables
- Type: object
- Required: yes
{ "data": { "global": { "dev": { "core": { "update_period_mins": 10 } } } }}data.global.dev
Section titled “data.global.dev”A container for all devcfg keys that should be active when no
other configuration overrides them. See the Device Config
section for the full list of available keys.
{ "data": { "global": { "dev": { "core": { "update_period_mins": 15 }, "alert": { "enabled": true, "onRed": true } } } }}All keys inside
devare optional. If a key is present in bothglobal.jsonand the active state file, the state file wins.
data.network
Section titled “data.network”Holds everything related to network connections.
Configuration variables
- Type: object
- Required: yes (at least
networkOrder)
{ "data": { "network": { "networks": {}, "networkOrder": ["k1"], "entityMgrServer": { "url": "mqtt://mqtt.infrafon.cloud" } } }}data.network.networks
Section titled “data.network.networks”Defines one or more named networks. Each key is the network name
used in networkOrder, netact / netdeact actions, and the
devcfg.fw.prov_net field.
Configuration variables
- Type: object of network objects
- Required: no (can be empty)
{ "data": { "network": { "networks": { "k1": { "type": "wifi", "auth": { "ssid": "kiosk", "wpa2_password": "infrafon-2022" }, "checkPeriodSecs": 900 } } } }}Valid network types:
| Type | Description |
|---|---|
wifi | Standard Wi‑Fi (WPA2‑PSK, WPA3‑SAE, EAP‑TLS) |
ble | Bluetooth Low Energy (nRF53) |
bleperi | BLE peripheral (nRF52), requires state |
loraperi | LoRaWAN peripheral (nRF52), requires auth with nwkkey etc. |
data.network.networkOrder
Section titled “data.network.networkOrder”An ordered array of network names. The device will attempt to
connect to networks in this order. All networks listed must be
defined in networks.
Configuration variables
- Type: array of strings
- Required: yes
{ "data": { "network": { "networkOrder": ["k1", "b1", "q1"] } }}data.network.entityMgrServer
Section titled “data.network.entityMgrServer”Address and credentials for the MQTT broker and the IES (Infrafon Entity Server) used for allocation/return operations.
Configuration variables
- Type: object
- Required: yes (required for alloc/return)
{ "data": { "network": { "entityMgrServer": { "url": "mqtt://mqtt.infrafon.cloud", "auth": { "mqttUser": null, "mqttPassword": "none" }, "kmgr": { "url": "https://api.infrafon.cloud/kmgr/rest/v1", "auth": { "type": "devicetoken" } } } } }}
auth.mqttUser/mqttPasswordcan benullif the broker does not require authentication.
data.network.ap
Section titled “data.network.ap”Fallback access point used when no other WiFi network is active
(e.g., during provisioning or DFU). It uses the same auth object
format as a WiFi network.
Configuration variables
- Type: object
- Required: no
{ "data": { "network": { "ap": { "ssid": "kiosk", "wpa2_password": "infrafon-2022" } } }}The
apobject does not includetypeorcheckPeriodSecs; it only contains theauthfields directly.
Related
Section titled “Related”- Allocdata.json – the per‑user allocated configuration
- Unallocdata.json – the idle‑state configuration
- Device Config – all keys available inside
dev