news 2026/8/24 11:07:33

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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-daemon

miflora-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空气温度°C
light光照强度lux
moisture土壤湿度%
conductivity土壤肥力(EC 值)µS/cm
battery传感器电量%

为什么选择 Docker 部署?主程序依赖bluepybtlewrappaho-mqtt等 Python 包以及系统级的bluez工具,直接安装容易踩到编译依赖的坑。项目内置了现成的Dockerfile,两步就能产出干净的小体积镜像,非常适合树莓派长期运行。

多阶段镜像构建:两步产出精简镜像

打开Dockerfile可以清晰看到多阶段构建的设计思路:

  1. builder 构建阶段
    • 基于python:3.10.7-slim
    • 安装bluez gcc libglib2.0-dev build-essential等编译依赖,将requirements.txt中的依赖编译安装到/root/.local
  2. app 生产阶段
    • 同样基于 slim 镜像,仅安装运行所需的bluetooth bluez
    • 通过COPY --from=builder只取走编译好的依赖和miflora-mqtt-daemon.py,构建工具链全部丢弃;
    • 默认启动命令为python3 ./miflora-mqtt-daemon.py --config_dir /config,配置目录统一约定为/config

这样最终镜像体积小、无编译垃圾,是"构建"与"运行"分离的典型实践。

一键构建镜像:获取代码并执行 docker build

git 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默认 1883;username/password支持通过MQTT_USERNAMEMQTT_PASSWORD等环境变量注入;
  • [General] 段reporting_method默认mqtt-json,数据会发布到miflora/传感器名主题;
  • [Sensors] 段(必填):添加传感器名称与 MAC 地址,例如Petunia@Balcony = 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 11:07:01

SkinLayer Studio:图层化蒙皮工作流,4.5天变1天的效率革命

你有没有过这样的经历:在3ds Max里,对着一个高精度角色模型,一坐就是好几天,鼠标在密密麻麻的顶点权重上反复涂抹、修正、平滑,只为让骨骼的每一次弯曲都显得自然流畅?蒙皮,这个连接模型与动画的…

作者头像 李华
网站建设 2026/8/24 11:06:34

零成本AI智能体开发:基于Inkling与OpenRouter的免费测试平台全指南

这次我们来看一个对开发者非常友好的项目:Inkling。这是一个免费开放的智能体测试平台,它最大的亮点是直接集成了OpenRouter的模型服务。这意味着,你可以不花一分钱,直接在这个平台上调用包括GPT-4、Claude、DeepSeek等在内的多种…

作者头像 李华
网站建设 2026/8/24 11:03:07

基于微信小程序的茶文化商城系统(源码+lw+部署文档+讲解等)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

作者头像 李华
网站建设 2026/8/24 10:58:40

OpenRouter与Ori Harness实战:一站式大模型路由与编排系统搭建指南

在探索大模型应用开发时,你是否遇到过这样的困境:想快速调用多个顶尖模型进行对比测试,却苦于每个平台都要单独注册、充值、管理API密钥?或者,想搭建一个智能体应用,却卡在了复杂的模型接口适配和路由逻辑上…

作者头像 李华
网站建设 2026/8/24 10:58:30

多IRS系统建模与协同优化:从信道模型到算法实现

1. 项目概述:从“镜子”到“智能透镜”的通信革命最近几年,无线通信圈子里有个词特别火,叫“智能反射面”,英文缩写IRS。乍一听可能觉得有点玄乎,但你可以把它想象成一面能编程控制的“智能镜子”,或者更准…

作者头像 李华
网站建设 2026/8/24 10:58:07

计算机单片机毕设实战-基于 51/STM32 单片机的农业大棚环境感知与自动执行系统设计 基于 51/STM32 单片机的 LCD1602 显示温室智能调控终端设计(017704)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华