
theengs/gatewayTheengs Gateway 是一个多平台、多设备的蓝牙低功耗(BLE)转 MQTT 网关,基于 Theengs Decoder 库 开发。它能够从多种 BLE 传感器(如 LYWSD03MMC、CGD1、RuuviTag、MiScale、MiFlora 等)获取数据,将其转换为可读的 JSON 格式,并推送至 MQTT 代理(broker),支持与多种物联网平台和家庭自动化控制器集成。
!Gateway
以下是使用最小化参数运行 Theengs Gateway 的示例,仅需指定 MQTT 代理地址:
shelldocker run --rm \ --network host \ -e MQTT_HOST=<host_ip> \ -v /var/run/dbus:/var/run/dbus \ --name TheengsGateway \ theengs/gateway
包含详细配置参数的运行示例:
shelldocker run --rm \ --network host \ -e MQTT_HOST=<host_ip> \ -e MQTT_USERNAME=<username> \ -e MQTT_PASSWORD=<password> \ -e MQTT_PUB_TOPIC=home/TheengsGateway/BTtoMQTT \ -e MQTT_SUB_TOPIC=home/TheengsGateway/commands \ -e PUBLISH_ALL=true \ -e TIME_BETWEEN=60 \ -e SCAN_TIME=60 \ -e LOG_LEVEL=DEBUG \ -e HASS_DISCOVERY=true \ -e DISCOVERY=true \ -e DISCOVERY_TOPIC=homeassistant/sensor \ -e DISCOVERY_DEVICE_NAME=TheengsGateway \ -e DISCOVERY_FILTER="[IBEACON,GAEN,MS-CDP]" \ -e SCANNING_MODE=active \ -e ADAPTER=hci0 \ -e TIME_SYNC="[]" \ -e TIME_FORMAT=0 \ -e BINDKEYS='{"00:11:22:33:44:55:66":"0dc540f3025b474b9ef1085e051b1add","AA:BB:CC:DD:EE:FF":"6385424e1b0341109942ad2a6bb42e58"}' \ -e ENABLE_TLS=false \ -e ENABLE_WEBSOCKET=false \ -e IDENTITIES='{"00:11:22:33:44:55:66":"sensor_1","AA:BB:CC:DD:EE:FF":"sensor_2"}' \ -v /var/run/dbus:/var/run/dbus \ --name TheengsGateway \ theengs/gateway
yamlversion: '3' services: theengs-gateway: image: theengs/gateway network_mode: host environment: - MQTT_HOST=<host_ip> - MQTT_USERNAME=<username> - MQTT_PASSWORD=<password> - MQTT_PUB_TOPIC=home/TheengsGateway/BTtoMQTT - SCAN_TIME=60 - LOG_LEVEL=INFO - HASS_DISCOVERY=true - ADAPTER=hci0 volumes: - /var/run/dbus:/var/run/dbus restart: unless-stopped name: TheengsGateway
| 参数 | 描述 | 可选值及示例 |
|---|---|---|
MQTT_HOST | MQTT 代理服务器的 IP 地址或主机名 | 192.168.1.100、mqtt.example.com |
MQTT_USERNAME | MQTT 代理认证用户名(若需要) | mqtt_user |
MQTT_PASSWORD | MQTT 代理认证密码(若需要) | mqtt_password |
MQTT_PUB_TOPIC | 传感器数据发布的 MQTT 主题 | home/TheengsGateway/BTtoMQTT |
MQTT_SUB_TOPIC | 命令接收的 MQTT 主题 | home/TheengsGateway/commands |
PUBLISH_ALL | 是否发布所有扫描到的设备数据(即使未识别) | true / false |
TIME_BETWEEN | 两次扫描间隔时间(秒) | 60(默认)、30 |
SCAN_TIME | 单次扫描持续时间(秒) | 60(默认)、120 |
LOG_LEVEL | 日志输出级别 | DEBUG、INFO(默认)、WARNING、ERROR |
HASS_DISCOVERY | 是否启用 Home Assistant 自动发现 | true / false(默认) |
DISCOVERY | 是否启用设备自动发现功能 | true(默认)/ false |
DISCOVERY_TOPIC | 自动发现消息发布主题 | homeassistant/sensor(默认) |
DISCOVERY_DEVICE_NAME | 自动发现设备名称 | TheengsGateway(默认) |
DISCOVERY_FILTER | 发现时过滤的设备类型列表(JSON 数组) | [IBEACON,GAEN,MS-CDP] |
SCANNING_MODE | BLE 扫描模式 | active(主动)/ passive(被动,默认) |
ADAPTER | 蓝牙适配器名称 | hci0(默认)、hci1 |
TIME_SYNC | 需要同步时间的设备 MAC 地址列表(JSON 数组) | [](默认)、["00:11:22:33:44:55"] |
TIME_FORMAT | 时间格式(0: Unix 时间戳,1: ISO 格式) | 0(默认)/ 1 |
BINDKEYS | 加密设备绑定密钥(JSON 对象,键为设备 MAC,值为密钥) | {"00:11:22:33:44:55":"密钥字符串"} |
ENABLE_TLS | 是否启用 MQTT over TLS | true / false(默认) |
ENABLE_WEBSOCKET | 是否启用 MQTT over WebSocket | true / false(默认) |
IDENTITIES | 设备身份标识(JSON 对象,键为设备 MAC,值为标识名称) | {"00:11:22:33:44:55":"温湿度传感器"} |




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务