ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Docker部署miflora-mqtt-daemon完整教程:多阶段镜像构建与主机网络BLE采集实战

Docker部署miflora-mqtt-daemon完整教程:多阶段镜像构建与主机网络BLE采集实战 Docker部署miflora-mqtt-daemon完整教程多阶段镜像构建与主机网络BLE采集实战【免费下载链接】miflora-mqtt-daemonLinux service to collect and transfer Xiaomi Mi Flora plant sensor data via MQTT to your smart home system, with cluster support 项目地址: https://gitcode.com/gh_mirrors/mi/miflora-mqtt-daemonmiflora-mqtt-daemon 是一款轻量的 Linux 服务用于持续采集小米 Mi Flora 植物传感器数据并通过 MQTT 协议推送到 Broker让 Home Assistant、openHAB 等智能家居平台随时掌握植物状态。本文带你完成 Docker 部署全流程多阶段镜像构建、config.ini 配置以及使用主机网络模式实现稳定的 BLE 采集半小时内即可搭建好家庭植物健康监测系统。什么是 miflora-mqtt-daemon一句话概括它是 Mi Flora 传感器与 MQTT 世界之间的翻译官。传感器通过BLE低功耗蓝牙把数据发给树莓派等 Linux 主机程序解析后按配置的报文格式发布到 MQTT Broker。每个传感器周期上报 5 项核心指标指标含义单位temperature空气温度°Clight光照强度luxmoisture土壤湿度%conductivity土壤肥力EC 值µS/cmbattery传感器电量%为什么选择 Docker 部署主程序依赖bluepy、btlewrap、paho-mqtt等 Python 包以及系统级的bluez工具直接安装容易踩到编译依赖的坑。项目内置了现成的Dockerfile两步就能产出干净的小体积镜像非常适合树莓派长期运行。多阶段镜像构建两步产出精简镜像打开Dockerfile可以清晰看到多阶段构建的设计思路builder 构建阶段基于python:3.10.7-slim安装bluez gcc libglib2.0-dev build-essential等编译依赖将requirements.txt中的依赖编译安装到/root/.local。app 生产阶段同样基于 slim 镜像仅安装运行所需的bluetooth bluez通过COPY --frombuilder只取走编译好的依赖和miflora-mqtt-daemon.py构建工具链全部丢弃默认启动命令为python3 ./miflora-mqtt-daemon.py --config_dir /config配置目录统一约定为/config。这样最终镜像体积小、无编译垃圾是构建与运行分离的典型实践。一键构建镜像获取代码并执行 docker buildgit clone https://gitcode.com/gh_mirrors/mi/miflora-mqtt-daemon.git /opt/miflora-mqtt-daemon cd /opt/miflora-mqtt-daemon docker build -t miflora-mqtt-daemon .构建耗时视网速约几分钟。完成后执行docker images确认列表中出现miflora-mqtt-daemon即可。最快配置方法准备好 config.ini运行容器前先创建配置文件cp config.ini.dist config.ini vim config.ini重点配置三处对应config.ini.dist中的注释说明[MQTT] 段hostname填 Broker 地址port默认 1883username/password支持通过MQTT_USERNAME、MQTT_PASSWORD等环境变量注入[General] 段reporting_method默认mqtt-json数据会发布到miflora/传感器名主题[Sensors] 段必填添加传感器名称与 MAC 地址例如PetuniaBalcony C4:7C:8D:77:88:99名称中可用附带位置信息。不知道传感器 MAC 地址时在主机上扫描附近的 BLE 设备sudo hcitool lescan找到显示为Flower care的设备记下对应 MAC 地址。放心此过程不会改动传感器固件官方 App 仍可正常使用。主机网络模式运行BLE 采集的关键一步这是 Docker 部署 Mi Flora 最容易被忽略的坑Mi Flora 依赖 BLE 无线信号容器必须加--network host共享主机网络栈否则传感器搜不到、MQTT Broker 也连不上。推荐启动命令docker run -d --name miflora-mqtt-daemon \ --network host \ -v $(pwd):/config \ miflora-mqtt-daemon参数说明--network host复用主机网络确保蓝牙通信与 MQTT 连接畅通-v $(pwd):/config把config.ini所在目录挂载到容器内/config对应启动参数的--config_dir-d后台守护模式运行。启动后查看日志验证docker logs -f miflora-mqtt-daemon若看到形如{light: 5424, moisture: 30, temperature: 21.4, conductivity: 1020, battery: 100}的 JSON 数据说明采集成功并已推送到 MQTT Broker。常见问题排查清单症状可能原因解决办法找不到 BLE 设备主机蓝牙服务未启动sudo systemctl enable --now bluetooth通信频繁超时传感器距离过远BLE 覆盖范围有限将主机挪近一些连不上 Broker未用 host 网络或地址错误确认--network host或把hostname指向主机 IP重建后占用变大冗余镜像未清理docker image prune小结借助双阶段Dockerfile你得到一个精简便携的采集镜像配合--network host容器就能完整借用主机的蓝牙能力与网络把 Mi Flora 的数据稳定送入 MQTT 世界。数据上 Broker 后接入 Home Assistant 或 openHAB 只需订阅miflora/主题即可采集端无需任何改动——这正是采集与展示解耦的魅力所在 【免费下载链接】miflora-mqtt-daemonLinux service to collect and transfer Xiaomi Mi Flora plant sensor data via MQTT to your smart home system, with cluster support 项目地址: https://gitcode.com/gh_mirrors/mi/miflora-mqtt-daemon创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表