Configure parameters with MQTT

AB BLE Gateway V4从固件v1.4.14开始支持通过MQTT方式更新网关的配置,支持更新单个网关或同时更新多个网关的参数,从而实现更便捷的部署以及维护网关。

如何实现MQTT配置参数

必须满足以下条件

  • 下载配置工具v1.3.4以上
  • 网关必须配置以MQTT Client方式工作
  • 开启Config by MQTT选项, 并配置了对应的Topic

必须配置以下三个相关的Topic

  • Config Topic
  • Topic Prefix For Device Inbox
  • Device Outbox Topic

Config Topic

如果配置了Config topic, 网关在联网后会subscribe这个topic,用于接收配置参数并实现远程修改配置. Config Topic一般用于批量配置网关的参数

配置信息示例(JSON格式)

{
    "event": "update",
    "version": 1,
    "config": {
        "app": {
            "mqtt-host": "mqtt.bconimg.com",
            "mqtt-port": 1883,
            "mqtt-topic": "new/topic",
        },
        "network": {
            "ssid": "hello",
            "passcode": "12345678"
        },
        "filter-mac": [
            "123B00000000",
            "CC0000000000"
        ]
    }
}

查询app配置示例

{
    "event": "query/app",
    "version": 1
}

查询网络配置示例

{
    "event": "query/net",
    "version": 1
}

重启设备示例

{
    "event": "restart",
    "version": 1
}

注意:

  • version必须等于1
  • event必须是update

Topic Prefix For Device Inbox

如果配置了Topic Prefix For Device Inbox, 网关会订阅带有MAC地址后缀的Topic,一般用于配置指定网关的参数

  • 假设配置了前缀为device/config/
  • 假定网关的MAC地址为AB123456FDEC
  • 网关在联网后会订阅的实际topic为device/config/AB123456FDEC

配置信息格式见Config Topic

Device Outbox Topic

如果配置了Device Outbox Topic, 网关如果收到查询请求,会将反馈信息publish到这个topic

事件query/app的反馈信息示例

{
    "event": "app",
    "mac": "AB123456FDEC",
    "data": {
        ......
    }
}

事件query/net的反馈信息示例

{
    "event": "net",
    "mac": "AB123456FDEC",
    "data": {
        ......
    }
}

支持的配置参数

app参数

参数类型说明
conn-typeuint8连接类型, 1=WebSocket, 2=HTTP, 3=MQTT
req-intuint16上传间隔,单位为秒,范围是1 ~ 180秒
min-rssiint8RSSI过滤值,默认为-127
adv-filteruint8广播过滤选项, 0=不过滤, 1=iBeacon only, 2=Eddystone UID only, 3=Eddystone URL only, 11=iBeacon+Eddystone TLM, 12=Eddystone UID+Eddystone TLM, 13=Eddystone URL+Eddystone TLM
dup-filteruint8是否开启排重过滤器, 默认为0
scan-actuint8是否开启主动扫描,默认为0
mqtt-portuint32MQTT Broker的端口
http-portuint32HTTP server的端口
ws-portuint32WebSocket Server的端口
ota-urlstringOTA更新的URL
http-hoststringHTTP server的主机名
mqtt-hoststringMQTT Broker的主机名
ws-hoststringWebSocket server的主机名
httpsuint8是否开启HTTPS,默认为0
mqttsuint8是否开启MQTTS,默认为0
wssuint8是否开启WSS,默认为0
mqtt-topicstringMQTT Topic
mqtt-usernamestringMQTT用户名
mqtt-passwordstringMQTT密码
mqtt-id-prefixstringMQTT的Client ID前缀
cfg-topicstringMQTT配置功能的topic
one-cfg-topicstringMQTT配置单个网关的topic前缀
mqtt-configuint8是否开启MQTT的配置参数功能,默认为0
http-urlstringHTTP server的URL
filter-uuidstring如果开启了iBeacon的广播过滤选项,可以通过iBeacon UUID过滤,每行一个
req-formatuint8请求格式,0=msgpack, 1=json
ntp-enableduint8是否启用NTP时间服务器,默认为0
ntp1string首选ntp服务器
ntp2string第二ntp服务器

网络参数

参数类型说明
wifi-typeuint8WiFi类型, 0=WAP, 1=WPA2 Enterprise
ssidstringWiFi的SSID
passcodestringWiFi的密码
eap-identitystringEAP的identify
eap-usernamestringEAP的username
eap-passcodestringEAP的passcode
eth-dhcpuint8是否启用以太网络的DHCP,默认为1
eth-ipuint32静态IP地址,当eth-dhcp=0的时候生效
eth-gatewayuint32静态IP时的网关IP
eth-netmaskuint32静态IP时的子网掩码
dns-mainuint32主DNS,仅当eth-dhcp=0时生效
dns-backupuint32备用DNS
dns-fallbackuint32次DNS

mac address filter

mac address filter在配置示例中使用了filter-mac这个key,它是一个数组类型。其中每一项都是一个mac address。

Last Updated:
Contributors: volca, yanc